chuong 3 - lop transport

112
Transport Layer 3-1 Chương 3 Lớp Transport Computer Networking: A Top Down Approach Featuring the Internet, 3 rd edition. Jim Kurose, Keith Ross Addison-Wesley, July 2004.

Upload: huyen-duong

Post on 23-Oct-2015

25 views

Category:

Documents


1 download

TRANSCRIPT

Transport Layer 3-1

Chương 3Lớp Transport

Computer Networking A Top Down Approach Featuring the Internet 3rd edition Jim Kurose Keith RossAddison-Wesley July 2004

Transport Layer 3-2

Chương 3 Lớp TransportMục tiecircu hiểu caacutec nguyecircn

tắc đằng sau caacutec dịch vụ lớp transport multiplexing

demultiplexing truyền dữ liệu tin

cậy điều khiển luồng điều khiển tắc

nghẽn

nghiecircn cứu về caacutec giao thức lớp Transport trecircn Internet UDP vận chuyển khocircng

kết nối (connectionless) TCP vận chuyển hướng

kết nối (connection-oriented)

điều khiển tắc nghẽn TCP

Transport Layer 3-3

Chương 3 Nội dung trigravenh bagravey

31 Caacutec dịch vụ lớp Transport

32 Multiplexing vagrave demultiplexing

33 Vận chuyển khocircng kết nối UDP

34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy

35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối

36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn

37 Điều khiển tắc nghẽn TCP

Transport Layer 3-4

Caacutec dịch vụ vagrave giao thức Transport cung cấp truyền thocircng logic

chạy trecircn caacutec host khaacutec nhau

caacutec giao thức transport chạy trecircn caacutec hệ thống đầu cuối phiacutea gửi cắt caacutec thocircng

điệp ứng dụng thagravenh caacutec đoạn chuyển cho lớp network

phiacutea nhận taacutei kết hợp caacutec đoạn thagravenh caacutec thocircng điệp chuyển cho lớp application

coacute nhiều hơn 1 giao thức transport dagravenh cho caacutec ứng dụng Internet TCP vagrave UDP

application

transportnetworkdata linkphysical

application

transportnetworkdata linkphysical

networkdata linkphysical

networkdata linkphysical

networkdata linkphysical

networkdata linkphysicalnetwork

data linkphysical

logical end-end transport

Transport Layer 3-5

Lớp Transport với lớp network lớp network truyền

thocircng logic giữa caacutec host

lớp transport truyền thocircng logic giữa caacutec tiến trigravenh dựa vagraveo vagrave lagravem nổi

bật caacutec dịch vụ lớp network

Tigravenh huống tự nhiecircn tương tự

12 đứa trẻ gửi thư đến 12 đứa trẻ khaacutec

caacutec tiến trigravenh = caacutec đứa trẻ

caacutec thocircng điệp = thư trong bao thư

caacutec host = caacutec gia đigravenh giao thức transport =

Ann vagrave Bill giao thức lớp network

= dịch vụ bưu điện

Transport Layer 3-6

Caacutec giao thức lớp transport trecircn Internet tin cậy truyền theo

thứ tự (TCP) điều khiển tắc nghẽn điều khiển luồng thiết lập kết nối

khocircng tin cậy truyền khocircng theo thứ tự UDP mở rộng của giao thức

IP

khocircng coacute caacutec dịch vụ bảo đảm trễ bảo đảm bandwidth

application

transportnetworkdata linkphysical

application

transportnetworkdata linkphysical

networkdata linkphysical

networkdata linkphysical

networkdata linkphysical

networkdata linkphysicalnetwork

data linkphysical

logical end-end transport

Transport Layer 3-7

Chương 3 Nội dung trigravenh bagravey

31 Caacutec dịch vụ lớp Transport

32 Multiplexing vagrave demultiplexing

33 Vận chuyển khocircng kết nối UDP

34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy

35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối

36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn

37 Điều khiển tắc nghẽn TCP

Transport Layer 3-8

Multiplexingdemultiplexing

application

transport

network

link

physical

P1 application

transport

network

link

physical

application

transport

network

link

physical

P2P3 P4P1

host 1 host 2 host 3

= tiến trigravenh = socket

vận chuyển caacutec đoạn đatilde nhận được đến đuacuteng socket

Demultiplexing tại host nhậnthu nhặt dữ liệu từ nhiều socket đoacuteng goacutei dữ liệu vớiheader (sẽ dugraveng sau đoacute chodemultiplexing)

Multiplexing tại host gửi

Transport Layer 3-9

Demultiplexing lagravem việc như thế nagraveo host nhận caacutec IP datagrams

mỗi datagram coacute địa chỉ IP nguồn vagrave IP điacutech

mỗi datagram mang 1 đoạn của lớp transport

mỗi đoạn coacute số port nguồn vagrave điacutech

host dugraveng địa chỉ IP amp số port để điều hướng đoạn đến socket thiacutech hợp

port nguồn port điacutech

32 bits

dữ liệu ứng dụng(thocircng điệp)

caacutec header fields khaacutec

dạng thức đoạn TCPUDP

Transport Layer 3-10

Demultiplexing khocircng kết nối

Tạo caacutec sockets với caacutec số port

DatagramSocket mySocket1 = new DatagramSocket(12534)

DatagramSocket mySocket2 = new DatagramSocket(12535)

UDP socket được xaacutec định bởi bộ 2

(địa chỉ IP số port điacutech)

Khi host nhận đoạn UDP kiểm tra port điacutech trong

đoạn điều hướng đoạn UDP

đến socket nagraveo phugrave hợp với số port đoacute

IP datagrams với địa chỉ IP nguồn vagravehoặc số port khaacutec nhau coacute thể được điều hướng đến cugraveng socket

Transport Layer 3-11

Demultiplexing khocircng kết nối (tiếp)

DatagramSocket serverSocket = new DatagramSocket(6428)

ClientIPB

P2

client IP A

P1P1P3

serverIP C

SP 6428

DP 9157

SP 9157

DP 6428

SP 6428

DP 5775

SP 5775

DP 6428

SP cung cấp ldquođịa chỉ trở vềrdquo

Transport Layer 3-12

Demultiplexing hướng kết nối

TCP socket được xaacutec định bởi bộ 4 địa chỉ IP nguồn số port nguồn địa chỉ IP điacutech số port điacutech

host nhận dugraveng cả 4 giaacute trị trecircn để điều hướng đoạn đến socket thiacutech hợp

Host server coacute thể hỗ trợ nhiều TCP socket đồng thời mỗi socket được xaacutec

định bởi bộ 4 của noacute

Web server coacute caacutec socket khaacutec nhau cho mỗi kết nối từ client kết nối HTTP khocircng bền

vững sẽ coacute socket khaacutec nhau cho mỗi yecircu cầu

Transport Layer 3-13

Demultiplexing hướng kết nối (tiếp)

ClientIPB

P1

client IP A

P1P2P4

serverIP C

SP 9157

DP 80

SP 9157

DP 80

P5 P6 P3

D-IPCS-IP A

D-IPC

S-IP B

SP 5775

DP 80

D-IPCS-IP B

Transport Layer 3-14

Demultiplexing hướng kết nối Threaded Web Server

ClientIPB

P1

client IP A

P1P2

serverIP C

SP 9157

DP 80

SP 9157

DP 80

P4 P3

D-IPCS-IP A

D-IPC

S-IP B

SP 5775

DP 80

D-IPCS-IP B

Transport Layer 3-15

Chương 3 Nội dung trigravenh bagravey

31 Caacutec dịch vụ lớp Transport

32 Multiplexing vagrave demultiplexing

33 Vận chuyển khocircng kết nối UDP

34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy

35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối

36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn

37 Điều khiển tắc nghẽn TCP

Transport Layer 3-16

UDP User Datagram Protocol [RFC 768]

giao thức Internet transport ldquođơn giản hoacuteardquo

dịch vụ ldquobest effortrdquo caacutec đoạn UDP coacute thể mất maacutet vận chuyển khocircng thứ

tự đến ứng dụng connectionless (khocircng

kết nối) khocircng bắt tay giữa

người nhận vagrave người gửi UDP

mỗi đoạn UDP được quản lyacute độc lập

Coacute UDP để lagravem gigrave khocircng thiết lập kết nối

(giuacutep coacute thể thecircm delay) đơn giản khocircng trạng

thaacutei kết nối tại nơi gửi nơi nhận

header của đoạn nhỏ khocircng điều khiển tắc

nghẽn UDP coacute thể gửi nhanh nhất theo mong muốn

Transport Layer 3-17

UDP (tt)

thường dugraveng cho caacutec ứng dụng streaming multimedia chịu mất maacutet cảm nhận tốc độ

ngoagravei ra UDP dugraveng DNS SNMP

truyền tin cậy trecircn UDP thecircm khả năng nagravey tại lớp application sửa lỗi

source port dest port

32 bits

dữ liệu ứng dụng

(thocircng điệp)

dạng thức đoạn UDP

length checksumĐộ dagravei

đoạn UDPbao gồm cả

header

Transport Layer 3-18

UDP checksum

Người gửi đối xử caacutec nội dung

đoạn như một chuỗi caacutec số nguyecircn 16-bit

checksum bổ sung(tổng bugrave 1) của caacutec nội dung đoạn

đặt giaacute trị checksum vagraveo trường UDP checksum

Người nhận tiacutenh toaacuten checksum của

đoạn đatilde nhận kiểm tra giaacute trị trecircn coacute bằng

với giaacute trị trong trường checksum NO ndash coacute lỗi xảy ra YES ndash khocircng coacute lỗi Nhưng coacute thể cograven lỗi

khaacutec nữa Xem tiếp phần sau hellip

Mục tiecircu kiểm tra caacutec ldquolỗirdquo (caacutec bit cờ đatilde bật lecircn) trong caacutec đoạn đatilde truyền

Transport Layer 3-19

Viacute dụ Checksum Lưu yacute

Khi cộng caacutec số một bit nhớ ở phiacutea cao nhất coacute thể sẽ phải thecircm vagraveo kết quả

Viacute dụ cộng hai số nguyecircn 16-bit

1 1 1 1 0 0 1 1 0 0 1 1 0 0 1 1 01 1 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1

1 1 0 1 1 1 0 1 1 1 0 1 1 1 0 1 1

1 1 0 1 1 1 0 1 1 1 0 1 1 1 1 0 01 0 1 0 0 0 1 0 0 0 1 0 0 0 0 1 1

bit dư

tổngchecksum

Transport Layer 3-20

Chương 3 Nội dung trigravenh bagravey

31 Caacutec dịch vụ lớp Transport

32 Multiplexing vagrave demultiplexing

33 Vận chuyển khocircng kết nối UDP

34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy

35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối

36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn

37 Điều khiển tắc nghẽn TCP

Transport Layer 3-21

Caacutec nguyecircn lyacute truyền dữ liệu tin cậy quan trọng trong caacutec lớp application transport link lagrave danh saacutech 10 vấn đề quan trọng nhất của mạng

caacutec đặc thugrave của kecircnh truyền khocircng tin cậy sẽ xaacutec định sự phức tạp của giao thức truyền dữ liệu data transfer protocol (rdt)

Transport Layer 3-22

Caacutec nguyecircn lyacute truyền dữ liệu tin cậy quan trọng trong caacutec lớp application transport link lagrave danh saacutech 10 vấn đề quan trọng nhất của mạng

caacutec đặc thugrave của kecircnh truyền khocircng tin cậy sẽ xaacutec định sự phức tạp của giao thức truyền dữ liệu data transfer protocol (rdt)

Transport Layer 3-23

Caacutec nguyecircn lyacute truyền dữ liệu tin cậy quan trọng trong caacutec lớp application transport link lagrave danh saacutech 10 vấn đề quan trọng nhất của mạng

caacutec đặc thugrave của kecircnh truyền khocircng tin cậy sẽ xaacutec định sự phức tạp của giao thức truyền dữ liệu data transfer protocol (rdt)

Transport Layer 3-24

Truyền dữ liệu tin cậy

sendside

receiveside

rdt_send() được gọi bởi lớp app Chuyển dữ liệu cần truyền

đến lớp cao hơn becircn nhận

udt_send() được gọi bởi rdt để truyền caacutec goacutei trecircn kecircnh khocircng tin cậy đến nơi

nhận

rdt_rcv() được gọi khi goacutei đến kecircnh becircn nhận

deliver_data() được gọi bởi rdt để truyền dữ liệu

đến lớp cao hơn

Transport Layer 3-25

Truyền dữ liệu tin cậy

Sẽ chỉ xem xeacutet truyền dữ liệu theo 1 hướng duy

nhất nhưng điều khiển luồng thocircng tin sẽ theo cả 2

chiều

dugraveng maacutey trạng thaacutei hữu hạn (finite state machines-FSM) để xaacutec định người gửi người nhận

trthaacutei1

trthaacutei2

sự kiện gacircy ra trạng thaacutei truyềncaacutec hagravenh động xảy ra khi truyền

trạng thaacutei khi ở ldquotrạng thaacuteirdquo nagravey thigrave

trạng thaacutei kế tiếp duy nhất được xaacutec định bởi sự kiện kế

tiếp

sự kiệncaacutec hagravenh động

Transport Layer 3-26

Rdt10 truyền dữ liệu tin cậy trecircn 1 kecircnh truyền tin cậy

kecircnh ưu tiecircn tin cậy hoagraven toagraven khocircng coacute caacutec lỗi khocircng mất maacutet caacutec goacutei

caacutec FSM phacircn biệt cho người gửi người nhận người gửi gửi dữ liệu vagraveo kecircnh ưu tiecircn người nhận nhận dữ liệu từ kecircnh ưu tiecircn

chờ gọi từ lớp trecircn packet = make_pkt(data)

udt_send(packet)

rdt_send(data)

extract (packetdata)deliver_data(data)

chờ gọi từ lớp dưới

rdt_rcv(packet)

người gửi người nhận

Transport Layer 3-27

Rdt20 kecircnh với caacutec lỗi

kecircnh ưu tiecircn coacute thể bật lecircn một số bit trong goacutei checksum để kiểm tra caacutec lỗi

Hỏi lagravem sao khocirci phục caacutec lỗi acknowledgements (ACKs) becircn nhận rotilde ragraveng thocircng

baacuteo cho becircn gửi rằng quaacute trigravenh nhận goacutei tốt negative acknowledgements (NAKs) becircn nhận rotilde ragraveng

thocircng baacuteo cho becircn gửi rằng quaacute trigravenh nhận goacutei coacute lỗi người gửi gửi lại goacutei nagraveo được xaacutec nhận lagrave NAK

caacutec cơ chế mới trong rdt20 (sau rdt10) kiểm tra lỗi nhận phản hồi caacutec thocircng điệp điều khiển (ACKNAK)

becircn nhận becircn gửi

Transport Layer 3-28

rdt20 đặc tả FSM

chờ gọi từ lớp trecircn

snkpkt = make_pkt(data checksum)udt_send(sndpkt)

extract(rcvpktdata)deliver_data(data)udt_send(ACK)

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)

rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp isNAK(rcvpkt)

udt_send(NAK)

rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)

chờ ACK hoặc NAK

chờ gọi từ lớp dưới

người gửi

người nhậnrdt_send(data)

Transport Layer 3-29

rdt20 hoạt động khi khocircng lỗi

chờ gọi từ lớp dưới

snkpkt = make_pkt(data checksum)udt_send(sndpkt)

extract(rcvpktdata)deliver_data(data)udt_send(ACK)

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)

rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp isNAK(rcvpkt)

udt_send(NAK)

rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)

chờ ACK hoặc NAK

chờ gọi từ lớp dưới

rdt_send(data)

Transport Layer 3-30

rdt20 hoạt động khi coacute lỗi

chờ gọi từ lớp dưới

snkpkt = make_pkt(data checksum)udt_send(sndpkt)

extract(rcvpktdata)deliver_data(data)udt_send(ACK)

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)

rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp isNAK(rcvpkt)

udt_send(NAK)

rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)

chờ ACK hoặc NAK

chờ gọi từ lớp dưới

rdt_send(data)

Transport Layer 3-31

rdt20 coacute lỗ hổng nghiecircm trọngĐiều gigrave xảy ra nếu

ACKNAK bị hỏng người gửi khocircng biết điều

gigrave đatilde xảy ra tại becircn nhận

khocircng thể đơn phương truyền lại khả năng trugraveng lặp

Quản lyacute trugraveng lặp người gửi truyền lại goacutei

hiện tại nếu ACKNAK bị hỏng

người gửi thecircm số thứ tự vagraveo mỗi goacutei

người nhận hủy (khocircng nhận) goacutei trugraveng lặp

Người gửi gửi 1 goacutei sau đoacute dừng lại chờ phản hồitừ người nhận

dừng vagrave chờ

Transport Layer 3-32

rdt21 người gửi quản lyacute caacutec ACKNAK bị hỏng

chờ gọi 0 từ lớp trecircn

sndpkt = make_pkt(0 data checksum)udt_send(sndpkt)

rdt_send(data)

chờ ACK hoặc NAK

0 udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) ||isNAK(rcvpkt) )

sndpkt = make_pkt(1 data checksum)udt_send(sndpkt)

rdt_send(data)

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) ||isNAK(rcvpkt) )

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt)

chờ gọi 1 từ lớp trecircn

chờ ACK hoặc NAK

1

Transport Layer 3-33

rdt21 người gửi quản lyacute caacutec ACKNAK bị hỏng

chờ 0 từ dưới

sndpkt = make_pkt(NAK chksum)udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp not corrupt(rcvpkt) ampamp has_seq0(rcvpkt)

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp has_seq1(rcvpkt)

extract(rcvpktdata)deliver_data(data)sndpkt = make_pkt(ACK chksum)udt_send(sndpkt)

chờ 1 từ dưới

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp has_seq0(rcvpkt)

extract(rcvpktdata)deliver_data(data)sndpkt = make_pkt(ACK chksum)udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp (corrupt(rcvpkt)

sndpkt = make_pkt(ACK chksum)udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp not corrupt(rcvpkt) ampamp has_seq1(rcvpkt)

rdt_rcv(rcvpkt) ampamp (corrupt(rcvpkt)

sndpkt = make_pkt(ACK chksum)udt_send(sndpkt)

sndpkt = make_pkt(NAK chksum)udt_send(sndpkt)

Transport Layer 3-34

rdt21 thảo luận

người gửi số thứ tự thecircm vagraveo

goacutei chỉ cần hai số thứ tự

(01) lagrave đủ Tại sao phải kiểm tra nếu việc

nhận ACKNAK bị hỏng

số trạng thaacutei tăng lecircn 2 lần trạng thaacutei phải ldquonhớrdquo

goacutei ldquohiện tạirdquo coacute số thứ tự lagrave 0 hay 1

người nhận phải kiểm tra coacute

nhận trugraveng goacutei khocircng trạng thaacutei chỉ rotilde coacute

hay khocircng mong chờ số thứ tự 0 hoặc 1

chuacute yacute người nhận khocircng biết ACKNAK vừa rồi của noacute coacute được người gửi nhận tốt hay khocircng

Transport Layer 3-35

rdt22 một giao thức khocircng cần NAK

chức năng giống như rdt21 chỉ dugraveng caacutec ACK thay cho NAK người nhận gửi ACK cho goacutei vừa

rồi đatilde nhận tốt người nhận phải rotilde ragraveng chegraven số thứ tự của goacutei vừa ACK

trugraveng ACK tại người gửi hậu quả giống như hagravenh động của NAK truyền lại goacutei vừa rồi

Transport Layer 3-36

rdt22 gửi nhận caacutec mảnh

Chờ cho gọi 0 từ

trecircn

sndpkt = make_pkt(0 data checksum)udt_send(sndpkt)

rdt_send(data)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) || isACK(rcvpkt1) )

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt0)

Chờ cho ACK

0

gửi phacircn mảnhFSM

Chờ cho gọi

0 từ dưới

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp has_seq1(rcvpkt)

extract(rcvpktdata)deliver_data(data)sndpkt = make_pkt(ACK1 chksum)udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp (corrupt(rcvpkt) || has_seq1(rcvpkt))

udt_send(sndpkt)

nhận phacircn mảnhFSM

Transport Layer 3-37

rdt30 caacutec kecircnh với lỗi vagrave mất maacutet

Giả định mới kecircnh ưu tiecircn cũng coacute thể lagravem mất caacutec goacutei (dữ liệu hoặc caacutec ACK) checksum số thứ tự

caacutec ACK caacutec việc truyền lại sẽ hỗ trợ nhưng khocircng đủ

Caacutech tiếp cận người gửi chờ ACK trong khoảng thời gian ldquochấp nhận đượcrdquo

truyền lại nếu khocircng nhận ACK trong khoảng thời gian nagravey

nếu goacutei (hoặc ACK) chỉ trễ (khocircng mất) truyền lại sẽ gacircy trugraveng

nhưng dugraveng số thứ tự sẽ giải quyết được

người nhận phải xaacutec định số thứ tự của goacutei vừa gửi ACK

cần bộ định thigrave đếm lugravei

Transport Layer 3-38

rdt30 gửi

sndpkt = make_pkt(0 data checksum)udt_send(sndpkt)start_timer

rdt_send(data)

Chờ cho

ACK 0

rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) ||isACK(rcvpkt1) )

Chờ cho gọi 1 từ trecircn

sndpkt = make_pkt(1 data checksum)udt_send(sndpkt)start_timer

rdt_send(data)

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt0)

rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) ||isACK(rcvpkt0) )

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt1)

stop_timerstop_timer

udt_send(sndpkt)start_timer

timeout

udt_send(sndpkt)start_timer

timeout

rdt_rcv(rcvpkt)

Chờ cho gọi 0 từ trecircn

Chờ cho

ACK 1

rdt_rcv(rcvpkt)

Transport Layer 3-39

hagravenh động của rdt30

Transport Layer 3-40

hagravenh động của rdt30

Transport Layer 3-41

Hiệu suất của rdt30

rdt30 lagravem việc được nhưng đaacutenh giaacute hiệu suất hơi rắc rối viacute dụ liecircn kết 1 Gbps trễ lan truyền giữa hai đầu cuối lagrave 15

ms goacutei 1KB

T truyền = 8kbpkt109 bsec

= 8 microsec

U sender độ khả dụng ndash

U sender

= 008

30008 = 000027

microseconds

L R

RTT + L R =

L (độ dagravei goacutei tiacutenh bằng bits)R (tốc độ truyền bps)

=

goacutei 1KB mỗi 30 msec -gt 33kBs trecircn đường truyền 1 Gbps giao thức network hạn chế việc dugraveng caacutec tagravei nguyecircn vật

lyacute

Transport Layer 3-42

rdt30 hoạt động dừng-vagrave-chờ

goacutei đầu tiecircn đatilde truyền t = 0

gửi nhận

RTT

goacutei cuối cugraveng đatilde truyền t = L R

goacutei đầu tiecircn đatilde đếngoacutei cuối cugraveng đatilde đến gửi ACK

ACK đến gửi goacutei kế tiếp t = RTT + L R

U sender

= 008

30008 = 000027

microseconds

L R

RTT + L R =

Transport Layer 3-43

Caacutec giao thức Pipelined

Pipelining người gửi cho pheacutep gửi nhiều goacutei đồng thời khocircng cần chờ baacuteo nhận được nhoacutem caacutec số thứ tự phải tăng dần phải coacute bộ nhớ đệm tại nơi gửi vagravehoặc nơi nhận

hai dạng phổ biến của caacutec giao thức pipelined go-Back-N Lặp coacute lựa chọn

Transport Layer 3-44

Pipelining độ khả dụng tăng

goacutei đầu tiecircn đatilde truyền t = 0

sender receiver

RTT

goacutei cuối cugraveng đatilde truyền t = L R

goacutei đầu tiecircn đatilde đếngoacutei cuối cugraveng đatilde đến gửi ACK

ACK đến gửi goacuteikế tiếp t = RTT + L R

bit cuối của goacutei thứ 2 đến gửi ACKbit cuối của goacutei thứ 3 đến gửi ACK

U sender

= 024

30008 = 00008

microseconds

3 L R

RTT + L R =

Độ khả dụng tăng lecircngấp 3 lần

Transport Layer 3-45

Go-Back-NBecircn gửi k-bit số thứ tự trong header của goacutei ldquocửa sổrdquo tăng lecircn đến N cho pheacutep gửi caacutec goacutei liecircn tục khocircng cần ACK

ACK(n) ACKs tất cả caacutec goacutei đến chứa số thứ tự n ndash ldquoACK tiacutech lũyrdquo coacute thể nhận caacutec ACK trugraveng lặp (xem becircn nhận)

định thigrave cho mỗi goacutei trecircn đường truyền timeout(n) gửi lại goacutei n vagrave tất cả caacutec goacutei coacute số thứ tự cao

hơn trong cửa sổ

Transport Layer 3-46

GBN becircn gửi mở rộng FSM

chờ start_timerudt_send(sndpkt[base])udt_send(sndpkt[base+1])hellipudt_send(sndpkt[nextseqnum-1])

timeout

rdt_send(data)

if (nextseqnum lt base+N) sndpkt[nextseqnum] = make_pkt(nextseqnumdatachksum) udt_send(sndpkt[nextseqnum]) if (base == nextseqnum) start_timer nextseqnum++ else refuse_data(data)

base = getacknum(rcvpkt)+1If (base == nextseqnum) stop_timer else start_timer

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)

base=1nextseqnum=1

rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)

Transport Layer 3-47

GBN becircn nhận mở rộng FSM

ACK-duy nhất luocircn luocircn gửi ACK cho goacutei đatilde nhận đuacuteng với số thứ tự xếp hạng cao nhất coacute thể sinh ra caacutec ACK trugraveng nhau chỉ cần nhớ expectedseqnum

goacutei khocircng theo thứ tự hủy -gt khocircng nhận vagraveo bộ đệm gửi lại ACK với số thứ tự xếp hạng cao nhất

chờ

udt_send(sndpkt)

default

rdt_rcv(rcvpkt) ampamp notcurrupt(rcvpkt) ampamp hasseqnum(rcvpktexpectedseqnum)

extract(rcvpktdata)deliver_data(data)sndpkt = make_pkt(expectedseqnumACKchksum)udt_send(sndpkt)expectedseqnum++

expectedseqnum=1sndpkt = make_pkt(expectedseqnumACKchksum)

Transport Layer 3-48

GBN hoạt động

Transport Layer 3-49

Lặp coacute lựa chọn

becircn nhận thocircng baacuteo đatilde nhận đuacuteng tất cả từng goacutei một đệm (buffer) caacutec goacutei nếu cần thiết

becircn gửi chỉ gửi lại caacutec goacutei nagraveo khocircng nhận được ACK becircn gửi định thigrave đối với mỗi goacutei khocircng gửi ACK

cửa sổ becircn gửi N số thứ tự liecircn tục hạn chế số thứ tự caacutec goacutei khocircng gửi ACK

Transport Layer 3-50

Lặp coacute lựa chọn caacutec cửa sổ gửi nhận

Transport Layer 3-51

Lặp coacute lựa chọn

dữ liệu từ lớp trecircn nếu số thứ tự kế tiếp sẵn

sagraveng trong cửa sổ gửi goacutei

timeout(n) gửi lại goacutei n taacutei khởi tạo

bộ định thigrave

ACK(n) trong [sendbasesendbase+N]

đaacutenh dấu goacutei n lagrave đatilde nhận nếu goacutei khocircng ACK coacute n

nhỏ nhất dịch chuyển cửa sổ base đến số thứ tự khocircng ACK kế tiếp

Gửigoacutei n trong [rcvbase

rcvbase+N-1]

gửi ACK(n) khocircng thứ tự đệm

(buffer) coacute thứ tự truyền (cũng

truyền caacutec goacutei đatilde đệm coacute thứ tự) dịch chuyển cửa sổ đến goacutei chưa nhận kế tiếp

goacutei n trong [rcvbase-Nrcvbase-1]

ACK(n)

ngược lại lờ đi

Nhận

Transport Layer 3-52

Hoạt động của lặp coacute lựa chọn

Transport Layer 3-53

Lặp coacute lựa chọntigravenh trạng khoacute giải quyếtViacute dụ Số thứ tự 0 1 2 3 Kiacutech thước cửa sổ = 3

becircn nhận khocircng thấy sự khaacutec nhau trong 2 tigravenh huống

chuyển khocircng chiacutenh xaacutec dữ liệu trugraveng lặp như dữ liệu mới trong (a)

Hỏi quan hệ giữa datildey số thứ tự vagrave kiacutech thước cửa sổ

Transport Layer 3-54

Chương 3 Nội dung trigravenh bagravey

31 Caacutec dịch vụ lớp Transport

32 Multiplexing vagrave demultiplexing

33 Vận chuyển khocircng kết nối UDP

34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy

35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối

36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn

37 Điều khiển tắc nghẽn TCP

Transport Layer 3-55

TCP Tổng quan RFCs 793 1122 1323 2018 2581

dữ liệu full duplex luồng dữ liệu đi 2 chiều

trong cugraveng một kết nối MSS maximum

segment size ndash kiacutech thước đoạn tối đa

hướng kết nối bắt tay (trao đổi caacutec

thocircng điệp điều khiển) trạng thaacutei becircn gửi becircn nhận trước khi trao đổi dữ liệu

điều khiển luồng becircn gửi sẽ khocircng lấn aacutet

becircn nhận

point-to-point một becircn gửi một becircn

nhận tin cậy dograveng byte coacute

thứ tự khocircng ldquoranh giới thocircng

điệprdquo kecircnh liecircn lạc

TCP điều khiển luồng vagrave tắc nghẽn thiết lập kiacutech thước cửa sổ

caacutec bộ đệm gửi amp nhận

socketdoor

T C Psend buffer

T C Preceive buffer

socketdoor

segm ent

applicationwrites data

applicationreads data

Transport Layer 3-56

TCP cấu truacutec đoạn

port nguồn port điacutech

32 bits

dữ liệu ứng dụng(độ dagravei thay đổi)

số thứ tự

số ACKcửa sổ nhận

con trỏ URGchecksum

FSRPAUheadlen

notused

Tugravey chọn (độ dagravei thay đổi)

URG dữ liệu khẩn cấp(thường khocircng dugraveng)

ACK ACK hợp lệ

PSH push data now(thường khocircng dugraveng)

RST SYN FINthiết lập kết nối

(caacutec lệnh thiết lậpchia nhỏ)

số byte becircn nhận sẵn sagraveng chấp nhận

đếm bởi số bytecủa dữ liệu

Internetchecksum

(giống UDP)

Transport Layer 3-57

Caacutec số thứ tự TCP vagrave ACKCaacutec số thứ tự

dograveng byte ldquođaacutenh sốrdquo byte đầu tiecircn trong dữ liệu của đoạn

caacutec ACK số thứ tự của byte

kế tiếp được chờ đợi từ phiacutea becircn kia

ACK tiacutech lũyHỏi lagravem thế nagraveo becircn

nhận quản lyacute caacutec đoạn khocircng thứ tự Trả lời TCP khocircng

đề cập tugravey thuộc người hiện thực

Host A Host B

Seq=42 ACK=79 data = lsquoCrsquo

Seq=79 ACK=43 data = lsquoCrsquo

Seq=43 ACK=80

UsernhậplsquoCrsquo

host ACKsnhận phản hồi

lsquoCrsquo

host ACKsbaacuteo nhận

lsquoCrsquo phản hồingược lại lsquoCrsquo

timetigravenh huống telnet đơn giản

Transport Layer 3-58

TCP Round Trip Time vagraveTimeout

Hỏi Lagravem thế nagraveo để thiết lập giaacute trị TCP timeout

dagravei hơn RTT khaacutec với RTT

quaacute ngắn timeout sớm truyền lại khocircng

cần thiết quaacute dagravei phản ứng

chậm đối với việc mất maacutet goacutei

Hỏi Lagravem thế nagraveo để thiết lập RTT

SampleRTT thời gian được đo từ khi truyền đoạn đến khi baacuteo nhận ACK lờ đi việc truyền lại

SampleRTT sẽ thay đổi muốn ước lượng RTT ldquomượt hơnrdquo tiacutenh trung bigravenh một số giaacute

trị đo được gần đoacute khocircng chỉ SampleRTT hiện tại

Transport Layer 3-59

TCP Round Trip Time vagrave Timeout

EstimatedRTT = (1- )EstimatedRTT + SampleRTT

giaacute trị đặc trưng = 0125

Transport Layer 3-60

Viacute dụ đaacutenh giaacute RTTRTT gaiacsumassedu to fantasiaeurecomfr

100

150

200

250

300

350

1 8 15 22 29 36 43 50 57 64 71 78 85 92 99 106

time (seconnds)

RTT

(mill

isec

onds

)

SampleRTT Estimated RTT

Transport Layer 3-61

TCP Round Trip Time vagrave Timeout

Thiết lập timeout EstimtedRTT cộng ldquohệ số dự trữ an toagravenrdquo

sự biến thiecircn lớn trong EstimatedRTT -gt hệ số dự trữ an toagraven lớn hơn ước lượng đầu tiecircn về sự biến thiecircn của SampleRTT từ EstimatedRTT

TimeoutInterval = EstimatedRTT + 4DevRTT

DevRTT = (1-)DevRTT + |SampleRTT-EstimatedRTT|

(tiecircu biểu = 025)

Sau đoacute thiết lập timeout interval

Transport Layer 3-62

TCP truyền dữ liệu tin cậy

TCP tạo dịch vụ rdt trecircn dịch vụ khocircng tin cậy IP

caacutec đoạn Pipelined caacutec ACK tiacutech lũy TCP dugraveng bộ định thigrave

truyền lại đơn

Truyền lại được kiacutech hoạt bởi caacutec sự kiện timeout caacutec ack trugraveng lặp

luacutec đầu khảo saacutet caacutec becircn gửi TCP đơn giản lờ đi caacutec ack trugraveng lặp lờ đi điều khiển luồng

điều khiển tắc nghẽn

Transport Layer 3-63

TCP caacutec sự kiệndữ liệu đatilde nhận từ ứng

dụng tạo đoạn với số thứ

tự của noacute số thứ tự lagrave số theo

byte dữ liệu đầu tiecircn khởi động bộ định thigrave

nếu chưa chạy khoảng thời gian hết

hạn TimeOutInterval

timeout gửi lại đoạn nagraveo gacircy

ra timeout khởi động lại bộ định

thigrave Ack đatilde nhận

cập nhật caacutei gigrave sẽ được ACK

khởi động bộ định thigrave nếu coacute caacutec đoạn cograven chờ

Transport Layer 3-64

TCP becircn gửi(đơn giản)

NextSeqNum = InitialSeqNum SendBase = InitialSeqNum

loop (forever) switch(event)

event data received from application above create TCP segment with sequence number NextSeqNum if (timer currently not running) start timer pass segment to IP NextSeqNum = NextSeqNum + length(data)

event timer timeout retransmit not-yet-acknowledged segment with smallest sequence number start timer

event ACK received with ACK field value of y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer

end of loop forever

Chuacute thiacutechbull SendBase-1 byte vừa được ACK tiacutech lũy Viacute dụbull SendBase-1 = 71y= 73 vigrave thế becircn nhận muốn 73+ y gt SendBase vigrave thế dữ liệu mới được chấp nhận

Transport Layer 3-65

TCP caacutec tigravenh huống truyền lại

Host A

Seq=100 20 bytes data

ACK=100

timetimeout sớm

Host B

Seq=92 8 bytes data

ACK=120

Seq=92 8 bytes data

Seq=

92

tim

eout

ACK=120

Host A

Seq=92 8 bytes data

ACK=100

loss

tim

eout

tigravenh huống mất ACK

Host B

X

Seq=92 8 bytes data

ACK=100

time

Seq=

92

tim

eout

SendBase= 100

SendBase= 120

SendBase= 120

Sendbase= 100

Transport Layer 3-66

TCP caacutec tigravenh huống truyền lại (tt)Host A

Seq=92 8 bytes data

ACK=100

loss

tim

eout

Cumulative ACK scenario

Host B

X

Seq=100 20 bytes data

ACK=120

time

SendBase= 120

Transport Layer 3-67

TCP sinh ra ACK [RFC 1122 RFC 2581]

Sự kiện tại becircn nhận

Đoạn đến với đuacuteng số thứ tự mong muốn Tất cả dữ liệu đếnđatilde được ACK

Đoạn đến với đuacuteng số thứ tự mong muốn Một đoạn khaacutec đangchờ ACK

Caacutec đoạn đến khocircng thứ tựlớn hơn số thứ tự đoạn mong muốnCoacute khoảng trống

Đoạn đếnlấp đầy từng phần hoặc toagraven bộkhoảng trống

TCP becircn nhận hagravenh động

ACK trễ Chờ đến 500mscho đoạn kế tiếp Nếu khocircng coacute đoạnkế tiếp gửi ACK

Gửi ngay một ACK tiacutech lũy chấp nhậncho cả caacutec đoạn theo thứ tự

Gửi ngay ACK trugraveng lặp chỉ thị số thứ tựđoạn của byte kế tiếp đang mong chờ

Gửi ngay ACK với điều kiện lagrave đoạnbắt đầu ngay điểm coacute khoảng trống

Transport Layer 3-68

Truyền lại nhanh

Chu kỳ Time-out thường tương đối dagravei độ trễ dagravei trước khi gửi

lại goacutei đatilde mất

Xaacutec nhận caacutec đoạn đatilde mất bằng caacutec ACK trugraveng lặp becircn gửi thường gửi

nhiều đoạn song song Nếu đoạn bị mất sẽ

xảy ra tigravenh trạng giống như nhiều ACK trugraveng nhau

Nếu becircn gửi nhận 3 ACK của cugraveng một dữ liệu noacute cho lagrave đoạn sau dữ liệu đatilde ACK bị mất Truyền lại nhanh gửi

lại đoạn trước khi bộ định thigrave hết hạn

Transport Layer 3-69

sự kiện ACK đatilde nhận với trường lagrave y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer else increment count of dup ACKs received for y if (count of dup ACKs received for y = 3) resend segment with sequence number y

Giải thuật truyền lại nhanh

một ACK trugraveng lặp cho đoạn đatilde được ACK

Truyền lại nhanh

Transport Layer 3-70

Chương 3 Nội dung trigravenh bagravey

31 Caacutec dịch vụ lớp Transport

32 Multiplexing vagrave demultiplexing

33 Vận chuyển khocircng kết nối UDP

34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy

35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối

36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn

37 Điều khiển tắc nghẽn TCP

Transport Layer 3-71

TCP điều khiển luồng

becircn nhận của kết nối TCP coacute một bộ đệm nhận

dịch vụ so trugraveng tốc độ so trugraveng tốc độ gửi với tốc độ nhận của ứng dụng

tiến trigravenh ứng dụng coacute thể chậm tại luacutec đọc bộ đệm

becircn gửi sẽ khocircng lagravem tragraven bộ đệm vigrave truyền quaacute nhiều vagrave

quaacute nhanh

điều khiển luồng

Transport Layer 3-72

TCP điều khiển luồng caacutech lagravem

(Giả sử becircn nhận TCP loại bỏ caacutec đoạn khocircng coacute thứ tự)

dự phograveng trong bộ đệm= RcvWindow

= RcvBuffer-[LastByteRcvd - LastByteRead]

Becircn nhận thocircng baacuteo khoảng dự trữ nhờ giaacute trị RcvWindow trong caacutec đoạn

Becircn gửi hạn chế dữ liệu khocircng được ACK vagraveo RcvWindow bảo đảm bộ đệm nhận

khocircng tragraven

Transport Layer 3-73

Chương 3 Nội dung trigravenh bagravey

31 Caacutec dịch vụ lớp Transport

32 Multiplexing vagrave demultiplexing

33 Vận chuyển khocircng kết nối UDP

34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy

35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối

36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn

37 Điều khiển tắc nghẽn TCP

Transport Layer 3-74

TCP quản lyacute kết nối

Chuacute yacute Becircn gửi vagrave becircn nhận TCP thiết lập ldquokết nốirdquo trước khi trao đổi dữ liệu

khởi tạo caacutec biến TCP caacutec số thứ tự đoạn thocircng tin caacutec bộ đệm điều

khiển luồng (như RcvWindow)

client người khởi xướng kết nối

Socket clientSocket = new Socket(hostnameport

number) server được tiếp xuacutec bởi

client Socket connectionSocket =

welcomeSocketaccept()

3 phương phaacutep bắt tay

Bước 1 client host gửi đoạnTCP SYN đến server xaacutec định số thứ tự khởi đầu khocircng phải dữ liệu

Bước 2 server host nhận SYN trả lời với đoạn SYNACK

server cấp phaacutet caacutec bộ đệm

xaacutec định số thứ tự khởi đầuBước 3 client nhận SYNACK trả

lời với đoạn ACK (coacute thể chứa dữ liệu)

Transport Layer 3-75

TCP quản lyacute kết nối (tt)

Đoacuteng một kết nối

client đoacuteng socket clientSocketclose()

Bước 1 client gửi đoạn điều khiển TCP FIN đến server

Bước 2 server nhận FIN trả lời với ACK Đoacuteng kết nối gửi FIN

client

FIN

server

ACK

ACK

FIN

đoacuteng

đoacuteng

đatilde đoacutengthời g

ian c

hờ

Transport Layer 3-76

TCP quản lyacute kết nối (tt)

Bước 3 client nhận FIN trả lời với ACK

Trong khoảng ldquothời gian chờrdquo ndash sẽ phản hồi với ACK để nhận caacutec FIN

Bước 4 server nhận ACK Kết nối đatilde đoacuteng

Chuacute yacute với một sửa đổi nhỏ coacute thể quản lyacute nhiều FIN đồng thời

client

FIN

server

ACK

ACK

FIN

đang đoacuteng

đang đoacuteng

đatilde đoacuteng

thời g

ian c

hờ

đatilde đoacuteng

Transport Layer 3-77

TCP quản lyacute kết nối (tt)

chu kỳ sống củaTCP client

chu kỳ sống củaTCP server

Transport Layer 3-78

Chương 3 Nội dung trigravenh bagravey

31 Caacutec dịch vụ lớp Transport

32 Multiplexing vagrave demultiplexing

33 Vận chuyển khocircng kết nối UDP

34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy

35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối

36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn

37 Điều khiển tắc nghẽn TCP

Transport Layer 3-79

Caacutec nguyecircn lyacute điều khiển tắc nghẽn

Tắc nghẽn ldquoquaacute nhiều nguồn gửi quaacute nhanh vagrave quaacute nhiều

dữ liệu đến mạngrdquo khaacutec với điều khiển luồng caacutec biểu hiện

caacutec goacutei bị mất (tragraven bộ đệm tại caacutec router) caacutec độ trễ quaacute dagravei (xếp hagraveng trong bộ đệm

của router) lagrave 1 trong 10 vấn đề nan giải nhất

Transport Layer 3-80

Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 1

2 gửi 2 nhận 1 router caacutec bộ

đệm khocircng giới hạn

khocircng coacute truyền lại

caacutec độ trễ lớn hơn khi tắc nghẽn

năng suất coacute thể đạt tối đa

unlimited shared output link buffers

Host Ain original data

Host B

out

Transport Layer 3-81

Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 2

1 router caacutec bộ đệm coacute giới hạn becircn gửi truyền lại caacutec goacutei đatilde mất

chia sẻ vocirc hạncaacutec bộ đệm ouput

Host A in dữ liệu gốc

Host B

out

in dữ liệu gốc cugraveng với dữ liệu truyền lại

Transport Layer 3-82

Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 2 luocircn luocircn

truyền lại ldquohoagraven toagravenrdquo chỉ khi mất maacutet

truyền lại vigrave trễ (khocircng mất) lagravem cho lớn hơn với cugraveng

in

out

=

in

out

gt

in

out

ldquocaacutec chi phiacuterdquo của tắc nghẽn nhiều việc (truyền lại) caacutec truyền lại khocircng cần thiết liecircn kết nhiều bản sao của

goacutei

R2

R2in

ou

t

b

R2

R2in

ou

t

a

R2

R2in

ou

t

c

R4

R3

Transport Layer 3-83

Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 3 4 người gửi caacutec đường qua nhiều hop timeouttruyền lại

in

Hỏi điều gigrave xảy ra nếu vagrave tăng lecircn

in

chia sẻ vocirc hạncaacutec bộ đệm ouput

Host Ain dữ liệu gốc

Host B

out

in dữ liệu gốc cugraveng với dữ liệu truyền lại

Transport Layer 3-84

Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 3

ldquochi phiacuterdquo khaacutec của tắc nghẽn khi caacutec goacutei bị bỏ bất kỳ ldquokhả năng truyền

upstream dugraveng cho goacutei đoacute sẽ bị latildeng phiacuterdquo

Host A

Host B

o

u

t

Transport Layer 3-85

Caacutec caacutech tiếp cận đối với điều khiển tắc nghẽn

điều khiển tắc nghẽn end-end

khocircng coacute phản hồi rotilde ragraveng từ mạng

tắc nghẽn được suy ra từ việc quan saacutet caacutec hệ thống đầu cuối coacute mất maacutet trễ

tiếp cận được quản lyacute bởi TCP

điều khiển tắc nghẽn coacute sự hỗ trợ của mạng

caacutec router cung cấp phản hồi về caacutec hệ thống đầu cuối 1 bit duy nhất chỉ thị

tắc nghẽn (SNA DECbit TCPIP ECN ATM)

tốc độ sẽ gửi được xaacutec định rotilde ragraveng

2 caacutech

Transport Layer 3-86

Viacute dụ điều khiển tắc nghẽn ATM ABR

ABR tốc độ bit sẵn sagraveng

ldquodịch vụ mềm dẻordquo nếu đường gửi ldquochưa

hếtrdquo becircn gửi sẽ dugraveng

băng thocircng sẵn sagraveng nếu đường gửi tắc

nghẽn becircn gửi điều tiết với

tốc độ tối thiểu

RM (resource management)

gửi bởi becircn gửi rải raacutec với caacutec ocirc dữ liệu

caacutec bit trong ocirc thiết lập bởi caacutec switch bit NI khocircng tăng tốc độ

(tắc nghẽn nhẹ) bit CI tắc nghẽn rotilde rệt

Caacutec ocirc RM được trả về becircn gửi từ becircn nhận với nguyecircn vẹn caacutec bit

Transport Layer 3-87

Viacute dụ điều khiển tắc nghẽn ATM ABR

trường 2-byte ER trong ocirc RM switch đatilde tắc nghẽn coacute thể coacute giaacute trị ER thấp hơn trong ocirc tốc độ gửi do đoacute coacute thể được hỗ trợ tối đa trecircn đường

EFCI bit trong caacutec ocirc dữ liệu được cagravei giaacute trị 1 trong switch đatilde tắc nghẽn nếu ocirc dữ liệu đứng trước ocirc RM coacute cagravei EFCI becircn gửi sẽ cagravei

bit CI trong ocirc RM trả về

Transport Layer 3-88

Chương 3 Nội dung trigravenh bagravey

31 Caacutec dịch vụ lớp Transport

32 Multiplexing vagrave demultiplexing

33 Vận chuyển khocircng kết nối UDP

34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy

35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối

36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn

37 Điều khiển tắc nghẽn TCP

Transport Layer 3-89

TCP điều khiển tắc nghẽn additive tăng lecircn multiplicative giảm xuống

8 Kbytes

16 Kbytes

24 Kbytes

time

congestionwindow

Caacutech tiếp cận tăng tốc độ truyền (kiacutech thước cửa sổ) tigravem khả năng băng thocircng coacute thể cho đến khi coacute mất maacutet xảy ra additive tăng lecircn tăng CongWin bởi 1 MSS

mỗi RTT cho đến khi coacute mất maacutet xảy ra multiplicative giảm xuống bỏ CongWin trong

nửa giai đoạn sau khi mất maacutet

timekiacutech

thư

ớc

cửa

sổ

tắc

nghẽ

n

Tigravem kiếm băng thocircng

Transport Layer 3-90

TCP điều khiển tắc nghẽn chi tiết

becircn gửi hạn chế việc truyền LastByteSent-LastByteAcked

CongWin Cocircng thức

CongWin thay đổi chức năng lagrave nhận biết tắc nghẽn trecircn mạng

Lagravem thế nagraveo becircn gửi nhận biết tắc nghẽn

mất maacutet xảy ra = timeout hoặc 3 ack trugraveng lặp

becircn gửi giảm tốc độ (CongWin) sau khi mất maacutet xảy ra

3 cơ chế AIMD khởi động chậm thận trọng sau khi coacute

caacutec sự kiện timeout

tốc độ = CongWin

RTT Bytess

Transport Layer 3-91

TCP khởi động chậm

Khi kết nối bắt đầu CongWin = 1 MSS Viacute dụ MSS = 500 bytes

amp RTT = 200 ms tốc độ khởi tạo = 20

kbps

băng thocircng sẵn sagraveng coacute thể gtgt MSSRTT mong muốn nhanh

choacuteng tăng tốc lecircn tốc độ coacute thể đaacutep ứng

Khi kết nối bắt đầu tăng tốc lecircn rất nhanh cho đến khi sự cố mất maacutet xảy ra đầu tiecircn

Transport Layer 3-92

TCP khởi động chậm (tt)

Khi kết nối bắt đầu tăng tốc lecircn rất nhanh cho đến khi sự cố mất maacutet xảy ra đầu tiecircn nhacircn đocirci CongWin mỗi

RTT hoagraven thagravenh nhờ tăng CongWin ứng với mỗi ACK đatilde nhận

Tổng kết tốc độ khởi đầu lagrave chậm nhưng sau đoacute tăng tốc rất nhanh

Host A

1 đoạn

RTT

Host B

thời gian

2 đoạn

4 đoạn

Transport Layer 3-93

Tinh chếHỏi Khi nagraveo việc tăng

tốc trở thagravenh tuyến tiacutenh

Trả lời Khi CongWin đạt đến 12 giaacute trị của noacute trước khi timeout

Hiện thực Ngưỡng thay đổi Tại thời điểm coacute sự cố

mất maacutet ngưỡng được cagravei giaacute trị bằng frac12 của CongWin ngay trước đoacute

Transport Layer 3-94

Tinh chế nhận biết mất maacutet

Sau 3 ACK trugraveng lặp CongWin sẽ giảm 12 kiacutech thước cửa sổ

tăng tuyến tiacutenh nhưng sau sự cố

timeout CongWin thay giaacute trị

bằng 1 MSS kiacutech thước cửa sổ

tăng cấp lũy thừa khi đến một ngưỡng

thigrave tăng tuyến tiacutenh

3 ACK trugraveng nhau chỉ ra khả năng truyền của mạng timeout chỉ thị ldquonhiều cảnh baacuteordquo về tigravenh huống tắc nghẽn

Nguyecircn lyacute

Transport Layer 3-95

Tổng kết TCP điều khiển tắc nghẽn

Khi CongWin dưới Threshold becircn gửi đang trong giai đoạn khởi động chậm kiacutech thước cửa sổ tăng nhanh theo cấp lũy thừa

Khi CongWin trecircn Threshold becircn gửi đang trong giai đoạn traacutenh tắc nghẽn kiacutech thước cửa sổ tăng nhanh theo cấp tuyến tiacutenh

Khi coacute 3 ACK trugraveng lặp xảy ra Threshold = CongWin2 vagrave CongWin = Threshold

Khi timeout xảy ra Threshold = CongWin2 vagrave CongWin = 1 MSS

Transport Layer 3-96

TCP điều khiển tắc nghẽn becircn gửi

Trạng thaacutei Sự kiện TCP becircn gửi hagravenh động Diễn giải

Slow Start (SS)-Khởi động chậm

ACK baacuteo nhận cho dữ liệu chưa ACK trước đoacute

CongWin = CongWin + MSS If (CongWin gt Threshold) cagravei đặt trạng thaacutei ldquoTraacutenh tắc nghẽnrdquo

Hậu quả lagravem tăng gấp đocirci CongWin mỗi RTT

CongestionAvoidance (CA) ndashTraacutenh tắc nghẽn

ACK baacuteo nhận cho dữ liệu chưa ACK trước đoacute

CongWin = CongWin+MSS (MSSCongWin)

Additive tăng lecircn lagravem tăng CongWin lecircn 1 MSS mỗi RTT

SS hoặc CA Sự cố mất maacutet xảy ra khi thấy coacute 3 ACK trugraveng lặp

Threshold = CongWin2 CongWin = Thresholdcagravei đặt trạng thaacutei ldquoTraacutenh tắc nghẽnrdquo

Khocirci phục nhanh hiện thực giảm xuống multiplicative CongWin sẽ khocircng giảm xuống dưới 1 MSS

SS hoặc CA Timeout Threshold = CongWin2 CongWin = 1 MSScagravei đặt trạng thaacutei ldquoKhởi động chậmrdquo

Vagraveo chế độ ldquoKhởi động chậmrdquo

SS hoặc CA ACK trugraveng lặp

Đếm ACK tăng lecircn cho đoạn vừa được ACK

CongWin vagrave Threshold khocircng thay đổi

Transport Layer 3-97

TCP throughput

Throughout trung bigravenh của TCP biểu diễn qua kiacutech thước của sổ vagrave RTT Bỏ qua trạng thaacutei ldquoKhởi động chậmrdquo

Cho W lagrave kiacutech thước cửa sổ khi coacute mất maacutet xảy ra

Khi kiacutech thước cửa sổ = W lưu lượng = WRTT

Chỉ ngay sau khi mất maacutet cửa sổ giảm xuống = W2 lưu lượng = W2RTT

throughout trung bigravenh 075 WRTT

Transport Layer 3-98

TCP tương lai

Viacute dụ caacutec đoạn dagravei 1500 byte RTT 100ms lưu lượng 10 Gbps

Kiacutech thước cửa sổ yecircu cầu W = 83333 đoạn trecircn đường truyền

Lưu lượng trong caacutec trường hợp mất maacutet

L = 210-10

Phiecircn bản mới của TCP dagravenh cho nhu cầu tốc độ cao

LRTT

MSS221

Transport Layer 3-99

Mục tiecircu nếu K phiecircn lagravem việc TCP chia sẻ kết nối cổ chai của băng thocircng lagrave R mỗi phiecircn coacute tốc độ trung bigravenh lagrave RK

TCP kết nối 1

router cổ chaikhả năng R

TCP kết nối 2

TCP tiacutenh cocircng bằng

Transport Layer 3-100

Tại sao phải TCP cocircng bằng

2 phiecircn lagravem việc cạnh tranh nhau Additive tăng lưu lượng tăng multiplicative giảm lưu lượng tương xứng

R

R

chia sẻ băng thocircng bằng nhau

Connection 1 throughputConnect

ion 2

th

roughput

traacutenh tắc nghẽn additive tăng lecircnmất maacutet giảm cửa sổ bằng 12

traacutenh tắc nghẽn additive tăng lecircnmất maacutet giảm cửa sổ bằng 12

Transport Layer 3-101

TCP tiacutenh cocircng bằng (tt)

Tiacutenh cocircng bằng amp UDP nhiều ứng dụng

thường khocircng dugraveng TCP khocircng muốn tốc độ bị

điều tiết do điều khiển tắc nghẽn

Thay bằng dugraveng UDP truyền audiovideo với

tốc độ ổn định chịu được mất maacutet

Nghiecircn cứu giao thức thacircn thiện với TCP

Tiacutenh cocircng bằng amp caacutec kết nối TCP song song

khocircng coacute gigrave ngăn cản việc ứng dụng mở caacutec kết nối song song giữa 2 host

Trigravenh duyệt Web lagravem giống như thế

Viacute dụ tốc độ R hỗ trợ 9 kết nối ứng dụng mới yecircu cầu 1

TCP coacute tốc độ R10 ứng dụng mới yecircu cầu 11

TCP coacute tốc độ R2

Transport Layer 3-102

Mocirc higravenh trễ

Hỏi Mất bao lacircu để nhận 1 đối tượng từ Web server sau khi gửi yecircu cầu

Bỏ qua tắc nghẽn trễ bị ảnh hưởng bởi

thiết lập kết nối TCP trễ truyền dữ liệu khởi động chậm

Notation caacutec giả định Giả sử một kết nối giữa

client vagrave server coacute tốc độ R

S MSS (bits) O kiacutech thước đối tượng

(bits) khocircng truyền lại (khocircng

mất maacutet khocircng hỏng)

Kiacutech thước cửa sổ Giả định 1 cửa sổ tắc

nghẽn cố định coacute W đoạn Sau đoacute cửa sổ thay đổi

mocirc higravenh khởi động chậm

Transport Layer 3-103

Cửa sổ tắc nghẽn cố định (1)

Trường hợp đầu tiecircnWSR gt RTT + SR cho

đoạn đầu tiecircn trong cửa sổ trả về trước khi cửa sổ dữ liệu gửi ACK

trễ = 2RTT + OR

Transport Layer 3-104

Cửa sổ tắc nghẽn cố định (2)

Trường hợp thứ hai WSR lt RTT + SR sent

chờ cho ACK sau khi gửi dữ liệu

trễ = 2RTT + OR+ (K-1)[SR + RTT - WSR]

Transport Layer 3-105

TCP Mocirc higravenh trễ Khởi động chậm (1)

Bacircy giờ giả sử kiacutech thước cửa sổ tăng lecircn tugravey theo quaacute trigravenh khởi động chậm

Độ trễ của một đối tượng sẽ lagrave

R

S

R

SRTTP

R

ORTTLatency P )12(2

trong đoacute P lagrave số lần TCP rảnh ở tại server

1min KQP

- trong đoacute Q lagrave số lần server rảnh nếu đối tượng đatilde khởi tạo kiacutech thước

- vagrave K lagrave số lượng cửa sổ bao trugravem đối tượng

Transport Layer 3-106

TCP Mocirc higravenh trễ Khởi động chậm (2)

RTT

initia te TCPconnection

requestobject

first w indow= S R

second w indow= 2S R

third w indow= 4S R

fourth w indow= 8S R

com pletetransm issionobject

delivered

tim e atc lient

tim e atserver

Viacute dụbull OS = 15 đoạnbull K = 4 cửa sổbull Q = 2bull P = minK-1Q = 2

Server rảnh P=2 lần

Caacutec thagravenh phần trễbull 2 RTT dagravenh cho thiết lập kết nối vagrave yecircu cầubull OR để truyền đối tượngbullthời gian server rảnh bởi vigrave khởi động chậm

Server rảnh P = minK-1Q lần

Transport Layer 3-107

TCP Mocirc higravenh trễ(3)

R

S

R

SRTTPRTT

R

O

R

SRTT

R

SRTT

R

O

idleTimeRTTR

O

P

kP

k

P

pp

)12(][2

]2[2

2delay

1

1

1

th window after the timeidle 2 1 kR

SRTT

R

S k

ementacknowledg receivesserver until

segment send tostartsserver when from time RTTR

S

window kth the transmit totime2 1

R

Sk

RTT

initia te TCPconnection

requestobject

first w indow= S R

second w indow= 2S R

third w indow= 4S R

fourth w indow= 8S R

com pletetransm issionobject

delivered

tim e atc lient

tim e atserver

Transport Layer 3-108

TCP Mocirc higravenh trễ (4)

)1(log

)1(logmin

12min

222min

222min

2

2

110

110

S

OS

Okk

S

Ok

SOk

OSSSkK

k

k

k

caacutech tiacutenh toaacuten Q tương tự (xem HW)

K = số lượng cửa sổ bao trugravem đối tượngLagravem thế nagraveo tiacutenh được K

Transport Layer 3-109

HTTP Mocirc higravenh Giả sử trang Web chứa

1 trang HTML (kiacutech thước O bits) M higravenh ảnh (mỗi caacutei kiacutech thướcO bits)

HTTP khocircng bền vững M+1 TCP kết nối Thời gian đaacutep ứng = (M+1)OR + (M+1)2RTT + tổng số thời

gian rảnh HTTP bền vững

2 RTT để yecircu cầu vagrave nhận file HTML 1 RTT để yecircu cầu vagrave nhận M higravenh ảnh Thời gian đaacutep ứng = (M+1)OR + 3RTT + tổng số thời gian

rảnh HTTP khocircng bền vững với X kết nối song song

Giả sử MX lagrave số nguyecircn 1 TCP kết nối cho file MX thiết lập caacutec kết nối song song cho caacutec higravenh ảnh Thời gian đaacutep ứng = (M+1)OR + (MX + 1)2RTT + tổng số

thời gian rảnh

Transport Layer 3-110

02468

101214161820

28Kbps

100Kbps

1Mbps

10Mbps

non-persistent

persistent

parallel non-persistent

HTTP thời gian đaacutep ứng (giacircy)RTT = 100 msec O = 5 Kbytes M=10 vagrave X=5

Với băng thocircng thấp thời gian kết nối amp đaacutep ứng trội hơn thời gian truyền

Caacutec kết nối bền vững chỉ cho sự cải thiện khocircng đaacuteng kể trecircn caacutec kết nối song song

Transport Layer 3-111

0

10

20

30

40

50

60

70

28Kbps

100Kbps

1Mbps

10Mbps

non-persistent

persistent

parallel non-persistent

HTTP thời gian đaacutep ứng (giacircy)

RTT =1 sec O = 5 Kbytes M=10 and X=5

Với RTT lớn hơn thời gian đaacutep ứng trội hơn thời gian trễ chờ thiết lập kết nốiTCP amp khởi động chậm Caacutec kết nối bền vững bacircy giờ cho thấy cải thiện rotilde rệt đặc biệtvới caacutec mạng băng thocircng cao

Transport Layer 3-112

Chương 3 Tổng kết caacutec nguyecircn lyacute của caacutec

dịch vụ lớp transport multiplexing

demultiplexing truyền dữ liệu tin cậy điều khiển luồng điều khiển tắc nghẽn

khởi tạo vagrave hiện thực trong Internet UDP TCP

Tiếp theo nghiecircn cứu xong

caacutec vấn đề ldquongoagravei biecircnrdquo (caacutec lớp application transport)

chuẩn bị vagraveo phần ldquolotildeirdquo của mạng

  • Slide 1
  • Chương 3 Lớp Transport
  • Chương 3 Nội dung trigravenh bagravey
  • Caacutec dịch vụ vagrave giao thức Transport
  • Lớp Transport với lớp network
  • Caacutec giao thức lớp transport trecircn Internet
  • Slide 7
  • Multiplexingdemultiplexing
  • Demultiplexing lagravem việc như thế nagraveo
  • Demultiplexing khocircng kết nối
  • Demultiplexing khocircng kết nối (tiếp)
  • Demultiplexing hướng kết nối
  • Demultiplexing hướng kết nối (tiếp)
  • Demultiplexing hướng kết nối Threaded Web Server
  • Slide 15
  • UDP User Datagram Protocol [RFC 768]
  • UDP (tt)
  • UDP checksum
  • Viacute dụ Checksum
  • Slide 20
  • Caacutec nguyecircn lyacute truyền dữ liệu tin cậy
  • Slide 22
  • Slide 23
  • Truyền dữ liệu tin cậy
  • Slide 25
  • Rdt10 truyền dữ liệu tin cậy trecircn 1 kecircnh truyền tin cậy
  • Rdt20 kecircnh với caacutec lỗi
  • rdt20 đặc tả FSM
  • rdt20 hoạt động khi khocircng lỗi
  • rdt20 hoạt động khi coacute lỗi
  • rdt20 coacute lỗ hổng nghiecircm trọng
  • rdt21 người gửi quản lyacute caacutec ACKNAK bị hỏng
  • Slide 33
  • rdt21 thảo luận
  • rdt22 một giao thức khocircng cần NAK
  • rdt22 gửi nhận caacutec mảnh
  • rdt30 caacutec kecircnh với lỗi vagrave mất maacutet
  • rdt30 gửi
  • hagravenh động của rdt30
  • Slide 40
  • Hiệu suất của rdt30
  • rdt30 hoạt động dừng-vagrave-chờ
  • Caacutec giao thức Pipelined
  • Pipelining độ khả dụng tăng
  • Go-Back-N
  • GBN becircn gửi mở rộng FSM
  • GBN becircn nhận mở rộng FSM
  • GBN hoạt động
  • Lặp coacute lựa chọn
  • Lặp coacute lựa chọn caacutec cửa sổ gửi nhận
  • Slide 51
  • Hoạt động của lặp coacute lựa chọn
  • Lặp coacute lựa chọn tigravenh trạng khoacute giải quyết
  • Slide 54
  • TCP Tổng quan RFCs 793 1122 1323 2018 2581
  • TCP cấu truacutec đoạn
  • Caacutec số thứ tự TCP vagrave ACK
  • TCP Round Trip Time vagraveTimeout
  • TCP Round Trip Time vagrave Timeout
  • Viacute dụ đaacutenh giaacute RTT
  • Slide 61
  • TCP truyền dữ liệu tin cậy
  • TCP caacutec sự kiện
  • TCP becircn gửi (đơn giản)
  • TCP caacutec tigravenh huống truyền lại
  • TCP caacutec tigravenh huống truyền lại (tt)
  • TCP sinh ra ACK [RFC 1122 RFC 2581]
  • Truyền lại nhanh
  • Giải thuật truyền lại nhanh
  • Slide 70
  • TCP điều khiển luồng
  • TCP điều khiển luồng caacutech lagravem
  • Slide 73
  • TCP quản lyacute kết nối
  • TCP quản lyacute kết nối (tt)
  • Slide 76
  • Slide 77
  • Slide 78
  • Caacutec nguyecircn lyacute điều khiển tắc nghẽn
  • Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 1
  • Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 2
  • Slide 82
  • Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 3
  • Slide 84
  • Caacutec caacutech tiếp cận đối với điều khiển tắc nghẽn
  • Viacute dụ điều khiển tắc nghẽn ATM ABR
  • Slide 87
  • Slide 88
  • TCP điều khiển tắc nghẽn additive tăng lecircn multiplicative giảm xuống
  • TCP điều khiển tắc nghẽn chi tiết
  • TCP khởi động chậm
  • TCP khởi động chậm (tt)
  • Tinh chế
  • Tinh chế nhận biết mất maacutet
  • Tổng kết TCP điều khiển tắc nghẽn
  • TCP điều khiển tắc nghẽn becircn gửi
  • TCP throughput
  • TCP tương lai
  • TCP tiacutenh cocircng bằng
  • Tại sao phải TCP cocircng bằng
  • TCP tiacutenh cocircng bằng (tt)
  • Mocirc higravenh trễ
  • Cửa sổ tắc nghẽn cố định (1)
  • Cửa sổ tắc nghẽn cố định (2)
  • TCP Mocirc higravenh trễ Khởi động chậm (1)
  • TCP Mocirc higravenh trễ Khởi động chậm (2)
  • TCP Mocirc higravenh trễ(3)
  • TCP Mocirc higravenh trễ (4)
  • HTTP Mocirc higravenh
  • Slide 110
  • Slide 111
  • Chương 3 Tổng kết

Transport Layer 3-2

Chương 3 Lớp TransportMục tiecircu hiểu caacutec nguyecircn

tắc đằng sau caacutec dịch vụ lớp transport multiplexing

demultiplexing truyền dữ liệu tin

cậy điều khiển luồng điều khiển tắc

nghẽn

nghiecircn cứu về caacutec giao thức lớp Transport trecircn Internet UDP vận chuyển khocircng

kết nối (connectionless) TCP vận chuyển hướng

kết nối (connection-oriented)

điều khiển tắc nghẽn TCP

Transport Layer 3-3

Chương 3 Nội dung trigravenh bagravey

31 Caacutec dịch vụ lớp Transport

32 Multiplexing vagrave demultiplexing

33 Vận chuyển khocircng kết nối UDP

34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy

35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối

36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn

37 Điều khiển tắc nghẽn TCP

Transport Layer 3-4

Caacutec dịch vụ vagrave giao thức Transport cung cấp truyền thocircng logic

chạy trecircn caacutec host khaacutec nhau

caacutec giao thức transport chạy trecircn caacutec hệ thống đầu cuối phiacutea gửi cắt caacutec thocircng

điệp ứng dụng thagravenh caacutec đoạn chuyển cho lớp network

phiacutea nhận taacutei kết hợp caacutec đoạn thagravenh caacutec thocircng điệp chuyển cho lớp application

coacute nhiều hơn 1 giao thức transport dagravenh cho caacutec ứng dụng Internet TCP vagrave UDP

application

transportnetworkdata linkphysical

application

transportnetworkdata linkphysical

networkdata linkphysical

networkdata linkphysical

networkdata linkphysical

networkdata linkphysicalnetwork

data linkphysical

logical end-end transport

Transport Layer 3-5

Lớp Transport với lớp network lớp network truyền

thocircng logic giữa caacutec host

lớp transport truyền thocircng logic giữa caacutec tiến trigravenh dựa vagraveo vagrave lagravem nổi

bật caacutec dịch vụ lớp network

Tigravenh huống tự nhiecircn tương tự

12 đứa trẻ gửi thư đến 12 đứa trẻ khaacutec

caacutec tiến trigravenh = caacutec đứa trẻ

caacutec thocircng điệp = thư trong bao thư

caacutec host = caacutec gia đigravenh giao thức transport =

Ann vagrave Bill giao thức lớp network

= dịch vụ bưu điện

Transport Layer 3-6

Caacutec giao thức lớp transport trecircn Internet tin cậy truyền theo

thứ tự (TCP) điều khiển tắc nghẽn điều khiển luồng thiết lập kết nối

khocircng tin cậy truyền khocircng theo thứ tự UDP mở rộng của giao thức

IP

khocircng coacute caacutec dịch vụ bảo đảm trễ bảo đảm bandwidth

application

transportnetworkdata linkphysical

application

transportnetworkdata linkphysical

networkdata linkphysical

networkdata linkphysical

networkdata linkphysical

networkdata linkphysicalnetwork

data linkphysical

logical end-end transport

Transport Layer 3-7

Chương 3 Nội dung trigravenh bagravey

31 Caacutec dịch vụ lớp Transport

32 Multiplexing vagrave demultiplexing

33 Vận chuyển khocircng kết nối UDP

34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy

35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối

36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn

37 Điều khiển tắc nghẽn TCP

Transport Layer 3-8

Multiplexingdemultiplexing

application

transport

network

link

physical

P1 application

transport

network

link

physical

application

transport

network

link

physical

P2P3 P4P1

host 1 host 2 host 3

= tiến trigravenh = socket

vận chuyển caacutec đoạn đatilde nhận được đến đuacuteng socket

Demultiplexing tại host nhậnthu nhặt dữ liệu từ nhiều socket đoacuteng goacutei dữ liệu vớiheader (sẽ dugraveng sau đoacute chodemultiplexing)

Multiplexing tại host gửi

Transport Layer 3-9

Demultiplexing lagravem việc như thế nagraveo host nhận caacutec IP datagrams

mỗi datagram coacute địa chỉ IP nguồn vagrave IP điacutech

mỗi datagram mang 1 đoạn của lớp transport

mỗi đoạn coacute số port nguồn vagrave điacutech

host dugraveng địa chỉ IP amp số port để điều hướng đoạn đến socket thiacutech hợp

port nguồn port điacutech

32 bits

dữ liệu ứng dụng(thocircng điệp)

caacutec header fields khaacutec

dạng thức đoạn TCPUDP

Transport Layer 3-10

Demultiplexing khocircng kết nối

Tạo caacutec sockets với caacutec số port

DatagramSocket mySocket1 = new DatagramSocket(12534)

DatagramSocket mySocket2 = new DatagramSocket(12535)

UDP socket được xaacutec định bởi bộ 2

(địa chỉ IP số port điacutech)

Khi host nhận đoạn UDP kiểm tra port điacutech trong

đoạn điều hướng đoạn UDP

đến socket nagraveo phugrave hợp với số port đoacute

IP datagrams với địa chỉ IP nguồn vagravehoặc số port khaacutec nhau coacute thể được điều hướng đến cugraveng socket

Transport Layer 3-11

Demultiplexing khocircng kết nối (tiếp)

DatagramSocket serverSocket = new DatagramSocket(6428)

ClientIPB

P2

client IP A

P1P1P3

serverIP C

SP 6428

DP 9157

SP 9157

DP 6428

SP 6428

DP 5775

SP 5775

DP 6428

SP cung cấp ldquođịa chỉ trở vềrdquo

Transport Layer 3-12

Demultiplexing hướng kết nối

TCP socket được xaacutec định bởi bộ 4 địa chỉ IP nguồn số port nguồn địa chỉ IP điacutech số port điacutech

host nhận dugraveng cả 4 giaacute trị trecircn để điều hướng đoạn đến socket thiacutech hợp

Host server coacute thể hỗ trợ nhiều TCP socket đồng thời mỗi socket được xaacutec

định bởi bộ 4 của noacute

Web server coacute caacutec socket khaacutec nhau cho mỗi kết nối từ client kết nối HTTP khocircng bền

vững sẽ coacute socket khaacutec nhau cho mỗi yecircu cầu

Transport Layer 3-13

Demultiplexing hướng kết nối (tiếp)

ClientIPB

P1

client IP A

P1P2P4

serverIP C

SP 9157

DP 80

SP 9157

DP 80

P5 P6 P3

D-IPCS-IP A

D-IPC

S-IP B

SP 5775

DP 80

D-IPCS-IP B

Transport Layer 3-14

Demultiplexing hướng kết nối Threaded Web Server

ClientIPB

P1

client IP A

P1P2

serverIP C

SP 9157

DP 80

SP 9157

DP 80

P4 P3

D-IPCS-IP A

D-IPC

S-IP B

SP 5775

DP 80

D-IPCS-IP B

Transport Layer 3-15

Chương 3 Nội dung trigravenh bagravey

31 Caacutec dịch vụ lớp Transport

32 Multiplexing vagrave demultiplexing

33 Vận chuyển khocircng kết nối UDP

34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy

35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối

36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn

37 Điều khiển tắc nghẽn TCP

Transport Layer 3-16

UDP User Datagram Protocol [RFC 768]

giao thức Internet transport ldquođơn giản hoacuteardquo

dịch vụ ldquobest effortrdquo caacutec đoạn UDP coacute thể mất maacutet vận chuyển khocircng thứ

tự đến ứng dụng connectionless (khocircng

kết nối) khocircng bắt tay giữa

người nhận vagrave người gửi UDP

mỗi đoạn UDP được quản lyacute độc lập

Coacute UDP để lagravem gigrave khocircng thiết lập kết nối

(giuacutep coacute thể thecircm delay) đơn giản khocircng trạng

thaacutei kết nối tại nơi gửi nơi nhận

header của đoạn nhỏ khocircng điều khiển tắc

nghẽn UDP coacute thể gửi nhanh nhất theo mong muốn

Transport Layer 3-17

UDP (tt)

thường dugraveng cho caacutec ứng dụng streaming multimedia chịu mất maacutet cảm nhận tốc độ

ngoagravei ra UDP dugraveng DNS SNMP

truyền tin cậy trecircn UDP thecircm khả năng nagravey tại lớp application sửa lỗi

source port dest port

32 bits

dữ liệu ứng dụng

(thocircng điệp)

dạng thức đoạn UDP

length checksumĐộ dagravei

đoạn UDPbao gồm cả

header

Transport Layer 3-18

UDP checksum

Người gửi đối xử caacutec nội dung

đoạn như một chuỗi caacutec số nguyecircn 16-bit

checksum bổ sung(tổng bugrave 1) của caacutec nội dung đoạn

đặt giaacute trị checksum vagraveo trường UDP checksum

Người nhận tiacutenh toaacuten checksum của

đoạn đatilde nhận kiểm tra giaacute trị trecircn coacute bằng

với giaacute trị trong trường checksum NO ndash coacute lỗi xảy ra YES ndash khocircng coacute lỗi Nhưng coacute thể cograven lỗi

khaacutec nữa Xem tiếp phần sau hellip

Mục tiecircu kiểm tra caacutec ldquolỗirdquo (caacutec bit cờ đatilde bật lecircn) trong caacutec đoạn đatilde truyền

Transport Layer 3-19

Viacute dụ Checksum Lưu yacute

Khi cộng caacutec số một bit nhớ ở phiacutea cao nhất coacute thể sẽ phải thecircm vagraveo kết quả

Viacute dụ cộng hai số nguyecircn 16-bit

1 1 1 1 0 0 1 1 0 0 1 1 0 0 1 1 01 1 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1

1 1 0 1 1 1 0 1 1 1 0 1 1 1 0 1 1

1 1 0 1 1 1 0 1 1 1 0 1 1 1 1 0 01 0 1 0 0 0 1 0 0 0 1 0 0 0 0 1 1

bit dư

tổngchecksum

Transport Layer 3-20

Chương 3 Nội dung trigravenh bagravey

31 Caacutec dịch vụ lớp Transport

32 Multiplexing vagrave demultiplexing

33 Vận chuyển khocircng kết nối UDP

34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy

35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối

36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn

37 Điều khiển tắc nghẽn TCP

Transport Layer 3-21

Caacutec nguyecircn lyacute truyền dữ liệu tin cậy quan trọng trong caacutec lớp application transport link lagrave danh saacutech 10 vấn đề quan trọng nhất của mạng

caacutec đặc thugrave của kecircnh truyền khocircng tin cậy sẽ xaacutec định sự phức tạp của giao thức truyền dữ liệu data transfer protocol (rdt)

Transport Layer 3-22

Caacutec nguyecircn lyacute truyền dữ liệu tin cậy quan trọng trong caacutec lớp application transport link lagrave danh saacutech 10 vấn đề quan trọng nhất của mạng

caacutec đặc thugrave của kecircnh truyền khocircng tin cậy sẽ xaacutec định sự phức tạp của giao thức truyền dữ liệu data transfer protocol (rdt)

Transport Layer 3-23

Caacutec nguyecircn lyacute truyền dữ liệu tin cậy quan trọng trong caacutec lớp application transport link lagrave danh saacutech 10 vấn đề quan trọng nhất của mạng

caacutec đặc thugrave của kecircnh truyền khocircng tin cậy sẽ xaacutec định sự phức tạp của giao thức truyền dữ liệu data transfer protocol (rdt)

Transport Layer 3-24

Truyền dữ liệu tin cậy

sendside

receiveside

rdt_send() được gọi bởi lớp app Chuyển dữ liệu cần truyền

đến lớp cao hơn becircn nhận

udt_send() được gọi bởi rdt để truyền caacutec goacutei trecircn kecircnh khocircng tin cậy đến nơi

nhận

rdt_rcv() được gọi khi goacutei đến kecircnh becircn nhận

deliver_data() được gọi bởi rdt để truyền dữ liệu

đến lớp cao hơn

Transport Layer 3-25

Truyền dữ liệu tin cậy

Sẽ chỉ xem xeacutet truyền dữ liệu theo 1 hướng duy

nhất nhưng điều khiển luồng thocircng tin sẽ theo cả 2

chiều

dugraveng maacutey trạng thaacutei hữu hạn (finite state machines-FSM) để xaacutec định người gửi người nhận

trthaacutei1

trthaacutei2

sự kiện gacircy ra trạng thaacutei truyềncaacutec hagravenh động xảy ra khi truyền

trạng thaacutei khi ở ldquotrạng thaacuteirdquo nagravey thigrave

trạng thaacutei kế tiếp duy nhất được xaacutec định bởi sự kiện kế

tiếp

sự kiệncaacutec hagravenh động

Transport Layer 3-26

Rdt10 truyền dữ liệu tin cậy trecircn 1 kecircnh truyền tin cậy

kecircnh ưu tiecircn tin cậy hoagraven toagraven khocircng coacute caacutec lỗi khocircng mất maacutet caacutec goacutei

caacutec FSM phacircn biệt cho người gửi người nhận người gửi gửi dữ liệu vagraveo kecircnh ưu tiecircn người nhận nhận dữ liệu từ kecircnh ưu tiecircn

chờ gọi từ lớp trecircn packet = make_pkt(data)

udt_send(packet)

rdt_send(data)

extract (packetdata)deliver_data(data)

chờ gọi từ lớp dưới

rdt_rcv(packet)

người gửi người nhận

Transport Layer 3-27

Rdt20 kecircnh với caacutec lỗi

kecircnh ưu tiecircn coacute thể bật lecircn một số bit trong goacutei checksum để kiểm tra caacutec lỗi

Hỏi lagravem sao khocirci phục caacutec lỗi acknowledgements (ACKs) becircn nhận rotilde ragraveng thocircng

baacuteo cho becircn gửi rằng quaacute trigravenh nhận goacutei tốt negative acknowledgements (NAKs) becircn nhận rotilde ragraveng

thocircng baacuteo cho becircn gửi rằng quaacute trigravenh nhận goacutei coacute lỗi người gửi gửi lại goacutei nagraveo được xaacutec nhận lagrave NAK

caacutec cơ chế mới trong rdt20 (sau rdt10) kiểm tra lỗi nhận phản hồi caacutec thocircng điệp điều khiển (ACKNAK)

becircn nhận becircn gửi

Transport Layer 3-28

rdt20 đặc tả FSM

chờ gọi từ lớp trecircn

snkpkt = make_pkt(data checksum)udt_send(sndpkt)

extract(rcvpktdata)deliver_data(data)udt_send(ACK)

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)

rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp isNAK(rcvpkt)

udt_send(NAK)

rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)

chờ ACK hoặc NAK

chờ gọi từ lớp dưới

người gửi

người nhậnrdt_send(data)

Transport Layer 3-29

rdt20 hoạt động khi khocircng lỗi

chờ gọi từ lớp dưới

snkpkt = make_pkt(data checksum)udt_send(sndpkt)

extract(rcvpktdata)deliver_data(data)udt_send(ACK)

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)

rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp isNAK(rcvpkt)

udt_send(NAK)

rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)

chờ ACK hoặc NAK

chờ gọi từ lớp dưới

rdt_send(data)

Transport Layer 3-30

rdt20 hoạt động khi coacute lỗi

chờ gọi từ lớp dưới

snkpkt = make_pkt(data checksum)udt_send(sndpkt)

extract(rcvpktdata)deliver_data(data)udt_send(ACK)

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)

rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp isNAK(rcvpkt)

udt_send(NAK)

rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)

chờ ACK hoặc NAK

chờ gọi từ lớp dưới

rdt_send(data)

Transport Layer 3-31

rdt20 coacute lỗ hổng nghiecircm trọngĐiều gigrave xảy ra nếu

ACKNAK bị hỏng người gửi khocircng biết điều

gigrave đatilde xảy ra tại becircn nhận

khocircng thể đơn phương truyền lại khả năng trugraveng lặp

Quản lyacute trugraveng lặp người gửi truyền lại goacutei

hiện tại nếu ACKNAK bị hỏng

người gửi thecircm số thứ tự vagraveo mỗi goacutei

người nhận hủy (khocircng nhận) goacutei trugraveng lặp

Người gửi gửi 1 goacutei sau đoacute dừng lại chờ phản hồitừ người nhận

dừng vagrave chờ

Transport Layer 3-32

rdt21 người gửi quản lyacute caacutec ACKNAK bị hỏng

chờ gọi 0 từ lớp trecircn

sndpkt = make_pkt(0 data checksum)udt_send(sndpkt)

rdt_send(data)

chờ ACK hoặc NAK

0 udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) ||isNAK(rcvpkt) )

sndpkt = make_pkt(1 data checksum)udt_send(sndpkt)

rdt_send(data)

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) ||isNAK(rcvpkt) )

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt)

chờ gọi 1 từ lớp trecircn

chờ ACK hoặc NAK

1

Transport Layer 3-33

rdt21 người gửi quản lyacute caacutec ACKNAK bị hỏng

chờ 0 từ dưới

sndpkt = make_pkt(NAK chksum)udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp not corrupt(rcvpkt) ampamp has_seq0(rcvpkt)

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp has_seq1(rcvpkt)

extract(rcvpktdata)deliver_data(data)sndpkt = make_pkt(ACK chksum)udt_send(sndpkt)

chờ 1 từ dưới

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp has_seq0(rcvpkt)

extract(rcvpktdata)deliver_data(data)sndpkt = make_pkt(ACK chksum)udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp (corrupt(rcvpkt)

sndpkt = make_pkt(ACK chksum)udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp not corrupt(rcvpkt) ampamp has_seq1(rcvpkt)

rdt_rcv(rcvpkt) ampamp (corrupt(rcvpkt)

sndpkt = make_pkt(ACK chksum)udt_send(sndpkt)

sndpkt = make_pkt(NAK chksum)udt_send(sndpkt)

Transport Layer 3-34

rdt21 thảo luận

người gửi số thứ tự thecircm vagraveo

goacutei chỉ cần hai số thứ tự

(01) lagrave đủ Tại sao phải kiểm tra nếu việc

nhận ACKNAK bị hỏng

số trạng thaacutei tăng lecircn 2 lần trạng thaacutei phải ldquonhớrdquo

goacutei ldquohiện tạirdquo coacute số thứ tự lagrave 0 hay 1

người nhận phải kiểm tra coacute

nhận trugraveng goacutei khocircng trạng thaacutei chỉ rotilde coacute

hay khocircng mong chờ số thứ tự 0 hoặc 1

chuacute yacute người nhận khocircng biết ACKNAK vừa rồi của noacute coacute được người gửi nhận tốt hay khocircng

Transport Layer 3-35

rdt22 một giao thức khocircng cần NAK

chức năng giống như rdt21 chỉ dugraveng caacutec ACK thay cho NAK người nhận gửi ACK cho goacutei vừa

rồi đatilde nhận tốt người nhận phải rotilde ragraveng chegraven số thứ tự của goacutei vừa ACK

trugraveng ACK tại người gửi hậu quả giống như hagravenh động của NAK truyền lại goacutei vừa rồi

Transport Layer 3-36

rdt22 gửi nhận caacutec mảnh

Chờ cho gọi 0 từ

trecircn

sndpkt = make_pkt(0 data checksum)udt_send(sndpkt)

rdt_send(data)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) || isACK(rcvpkt1) )

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt0)

Chờ cho ACK

0

gửi phacircn mảnhFSM

Chờ cho gọi

0 từ dưới

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp has_seq1(rcvpkt)

extract(rcvpktdata)deliver_data(data)sndpkt = make_pkt(ACK1 chksum)udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp (corrupt(rcvpkt) || has_seq1(rcvpkt))

udt_send(sndpkt)

nhận phacircn mảnhFSM

Transport Layer 3-37

rdt30 caacutec kecircnh với lỗi vagrave mất maacutet

Giả định mới kecircnh ưu tiecircn cũng coacute thể lagravem mất caacutec goacutei (dữ liệu hoặc caacutec ACK) checksum số thứ tự

caacutec ACK caacutec việc truyền lại sẽ hỗ trợ nhưng khocircng đủ

Caacutech tiếp cận người gửi chờ ACK trong khoảng thời gian ldquochấp nhận đượcrdquo

truyền lại nếu khocircng nhận ACK trong khoảng thời gian nagravey

nếu goacutei (hoặc ACK) chỉ trễ (khocircng mất) truyền lại sẽ gacircy trugraveng

nhưng dugraveng số thứ tự sẽ giải quyết được

người nhận phải xaacutec định số thứ tự của goacutei vừa gửi ACK

cần bộ định thigrave đếm lugravei

Transport Layer 3-38

rdt30 gửi

sndpkt = make_pkt(0 data checksum)udt_send(sndpkt)start_timer

rdt_send(data)

Chờ cho

ACK 0

rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) ||isACK(rcvpkt1) )

Chờ cho gọi 1 từ trecircn

sndpkt = make_pkt(1 data checksum)udt_send(sndpkt)start_timer

rdt_send(data)

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt0)

rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) ||isACK(rcvpkt0) )

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt1)

stop_timerstop_timer

udt_send(sndpkt)start_timer

timeout

udt_send(sndpkt)start_timer

timeout

rdt_rcv(rcvpkt)

Chờ cho gọi 0 từ trecircn

Chờ cho

ACK 1

rdt_rcv(rcvpkt)

Transport Layer 3-39

hagravenh động của rdt30

Transport Layer 3-40

hagravenh động của rdt30

Transport Layer 3-41

Hiệu suất của rdt30

rdt30 lagravem việc được nhưng đaacutenh giaacute hiệu suất hơi rắc rối viacute dụ liecircn kết 1 Gbps trễ lan truyền giữa hai đầu cuối lagrave 15

ms goacutei 1KB

T truyền = 8kbpkt109 bsec

= 8 microsec

U sender độ khả dụng ndash

U sender

= 008

30008 = 000027

microseconds

L R

RTT + L R =

L (độ dagravei goacutei tiacutenh bằng bits)R (tốc độ truyền bps)

=

goacutei 1KB mỗi 30 msec -gt 33kBs trecircn đường truyền 1 Gbps giao thức network hạn chế việc dugraveng caacutec tagravei nguyecircn vật

lyacute

Transport Layer 3-42

rdt30 hoạt động dừng-vagrave-chờ

goacutei đầu tiecircn đatilde truyền t = 0

gửi nhận

RTT

goacutei cuối cugraveng đatilde truyền t = L R

goacutei đầu tiecircn đatilde đếngoacutei cuối cugraveng đatilde đến gửi ACK

ACK đến gửi goacutei kế tiếp t = RTT + L R

U sender

= 008

30008 = 000027

microseconds

L R

RTT + L R =

Transport Layer 3-43

Caacutec giao thức Pipelined

Pipelining người gửi cho pheacutep gửi nhiều goacutei đồng thời khocircng cần chờ baacuteo nhận được nhoacutem caacutec số thứ tự phải tăng dần phải coacute bộ nhớ đệm tại nơi gửi vagravehoặc nơi nhận

hai dạng phổ biến của caacutec giao thức pipelined go-Back-N Lặp coacute lựa chọn

Transport Layer 3-44

Pipelining độ khả dụng tăng

goacutei đầu tiecircn đatilde truyền t = 0

sender receiver

RTT

goacutei cuối cugraveng đatilde truyền t = L R

goacutei đầu tiecircn đatilde đếngoacutei cuối cugraveng đatilde đến gửi ACK

ACK đến gửi goacuteikế tiếp t = RTT + L R

bit cuối của goacutei thứ 2 đến gửi ACKbit cuối của goacutei thứ 3 đến gửi ACK

U sender

= 024

30008 = 00008

microseconds

3 L R

RTT + L R =

Độ khả dụng tăng lecircngấp 3 lần

Transport Layer 3-45

Go-Back-NBecircn gửi k-bit số thứ tự trong header của goacutei ldquocửa sổrdquo tăng lecircn đến N cho pheacutep gửi caacutec goacutei liecircn tục khocircng cần ACK

ACK(n) ACKs tất cả caacutec goacutei đến chứa số thứ tự n ndash ldquoACK tiacutech lũyrdquo coacute thể nhận caacutec ACK trugraveng lặp (xem becircn nhận)

định thigrave cho mỗi goacutei trecircn đường truyền timeout(n) gửi lại goacutei n vagrave tất cả caacutec goacutei coacute số thứ tự cao

hơn trong cửa sổ

Transport Layer 3-46

GBN becircn gửi mở rộng FSM

chờ start_timerudt_send(sndpkt[base])udt_send(sndpkt[base+1])hellipudt_send(sndpkt[nextseqnum-1])

timeout

rdt_send(data)

if (nextseqnum lt base+N) sndpkt[nextseqnum] = make_pkt(nextseqnumdatachksum) udt_send(sndpkt[nextseqnum]) if (base == nextseqnum) start_timer nextseqnum++ else refuse_data(data)

base = getacknum(rcvpkt)+1If (base == nextseqnum) stop_timer else start_timer

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)

base=1nextseqnum=1

rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)

Transport Layer 3-47

GBN becircn nhận mở rộng FSM

ACK-duy nhất luocircn luocircn gửi ACK cho goacutei đatilde nhận đuacuteng với số thứ tự xếp hạng cao nhất coacute thể sinh ra caacutec ACK trugraveng nhau chỉ cần nhớ expectedseqnum

goacutei khocircng theo thứ tự hủy -gt khocircng nhận vagraveo bộ đệm gửi lại ACK với số thứ tự xếp hạng cao nhất

chờ

udt_send(sndpkt)

default

rdt_rcv(rcvpkt) ampamp notcurrupt(rcvpkt) ampamp hasseqnum(rcvpktexpectedseqnum)

extract(rcvpktdata)deliver_data(data)sndpkt = make_pkt(expectedseqnumACKchksum)udt_send(sndpkt)expectedseqnum++

expectedseqnum=1sndpkt = make_pkt(expectedseqnumACKchksum)

Transport Layer 3-48

GBN hoạt động

Transport Layer 3-49

Lặp coacute lựa chọn

becircn nhận thocircng baacuteo đatilde nhận đuacuteng tất cả từng goacutei một đệm (buffer) caacutec goacutei nếu cần thiết

becircn gửi chỉ gửi lại caacutec goacutei nagraveo khocircng nhận được ACK becircn gửi định thigrave đối với mỗi goacutei khocircng gửi ACK

cửa sổ becircn gửi N số thứ tự liecircn tục hạn chế số thứ tự caacutec goacutei khocircng gửi ACK

Transport Layer 3-50

Lặp coacute lựa chọn caacutec cửa sổ gửi nhận

Transport Layer 3-51

Lặp coacute lựa chọn

dữ liệu từ lớp trecircn nếu số thứ tự kế tiếp sẵn

sagraveng trong cửa sổ gửi goacutei

timeout(n) gửi lại goacutei n taacutei khởi tạo

bộ định thigrave

ACK(n) trong [sendbasesendbase+N]

đaacutenh dấu goacutei n lagrave đatilde nhận nếu goacutei khocircng ACK coacute n

nhỏ nhất dịch chuyển cửa sổ base đến số thứ tự khocircng ACK kế tiếp

Gửigoacutei n trong [rcvbase

rcvbase+N-1]

gửi ACK(n) khocircng thứ tự đệm

(buffer) coacute thứ tự truyền (cũng

truyền caacutec goacutei đatilde đệm coacute thứ tự) dịch chuyển cửa sổ đến goacutei chưa nhận kế tiếp

goacutei n trong [rcvbase-Nrcvbase-1]

ACK(n)

ngược lại lờ đi

Nhận

Transport Layer 3-52

Hoạt động của lặp coacute lựa chọn

Transport Layer 3-53

Lặp coacute lựa chọntigravenh trạng khoacute giải quyếtViacute dụ Số thứ tự 0 1 2 3 Kiacutech thước cửa sổ = 3

becircn nhận khocircng thấy sự khaacutec nhau trong 2 tigravenh huống

chuyển khocircng chiacutenh xaacutec dữ liệu trugraveng lặp như dữ liệu mới trong (a)

Hỏi quan hệ giữa datildey số thứ tự vagrave kiacutech thước cửa sổ

Transport Layer 3-54

Chương 3 Nội dung trigravenh bagravey

31 Caacutec dịch vụ lớp Transport

32 Multiplexing vagrave demultiplexing

33 Vận chuyển khocircng kết nối UDP

34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy

35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối

36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn

37 Điều khiển tắc nghẽn TCP

Transport Layer 3-55

TCP Tổng quan RFCs 793 1122 1323 2018 2581

dữ liệu full duplex luồng dữ liệu đi 2 chiều

trong cugraveng một kết nối MSS maximum

segment size ndash kiacutech thước đoạn tối đa

hướng kết nối bắt tay (trao đổi caacutec

thocircng điệp điều khiển) trạng thaacutei becircn gửi becircn nhận trước khi trao đổi dữ liệu

điều khiển luồng becircn gửi sẽ khocircng lấn aacutet

becircn nhận

point-to-point một becircn gửi một becircn

nhận tin cậy dograveng byte coacute

thứ tự khocircng ldquoranh giới thocircng

điệprdquo kecircnh liecircn lạc

TCP điều khiển luồng vagrave tắc nghẽn thiết lập kiacutech thước cửa sổ

caacutec bộ đệm gửi amp nhận

socketdoor

T C Psend buffer

T C Preceive buffer

socketdoor

segm ent

applicationwrites data

applicationreads data

Transport Layer 3-56

TCP cấu truacutec đoạn

port nguồn port điacutech

32 bits

dữ liệu ứng dụng(độ dagravei thay đổi)

số thứ tự

số ACKcửa sổ nhận

con trỏ URGchecksum

FSRPAUheadlen

notused

Tugravey chọn (độ dagravei thay đổi)

URG dữ liệu khẩn cấp(thường khocircng dugraveng)

ACK ACK hợp lệ

PSH push data now(thường khocircng dugraveng)

RST SYN FINthiết lập kết nối

(caacutec lệnh thiết lậpchia nhỏ)

số byte becircn nhận sẵn sagraveng chấp nhận

đếm bởi số bytecủa dữ liệu

Internetchecksum

(giống UDP)

Transport Layer 3-57

Caacutec số thứ tự TCP vagrave ACKCaacutec số thứ tự

dograveng byte ldquođaacutenh sốrdquo byte đầu tiecircn trong dữ liệu của đoạn

caacutec ACK số thứ tự của byte

kế tiếp được chờ đợi từ phiacutea becircn kia

ACK tiacutech lũyHỏi lagravem thế nagraveo becircn

nhận quản lyacute caacutec đoạn khocircng thứ tự Trả lời TCP khocircng

đề cập tugravey thuộc người hiện thực

Host A Host B

Seq=42 ACK=79 data = lsquoCrsquo

Seq=79 ACK=43 data = lsquoCrsquo

Seq=43 ACK=80

UsernhậplsquoCrsquo

host ACKsnhận phản hồi

lsquoCrsquo

host ACKsbaacuteo nhận

lsquoCrsquo phản hồingược lại lsquoCrsquo

timetigravenh huống telnet đơn giản

Transport Layer 3-58

TCP Round Trip Time vagraveTimeout

Hỏi Lagravem thế nagraveo để thiết lập giaacute trị TCP timeout

dagravei hơn RTT khaacutec với RTT

quaacute ngắn timeout sớm truyền lại khocircng

cần thiết quaacute dagravei phản ứng

chậm đối với việc mất maacutet goacutei

Hỏi Lagravem thế nagraveo để thiết lập RTT

SampleRTT thời gian được đo từ khi truyền đoạn đến khi baacuteo nhận ACK lờ đi việc truyền lại

SampleRTT sẽ thay đổi muốn ước lượng RTT ldquomượt hơnrdquo tiacutenh trung bigravenh một số giaacute

trị đo được gần đoacute khocircng chỉ SampleRTT hiện tại

Transport Layer 3-59

TCP Round Trip Time vagrave Timeout

EstimatedRTT = (1- )EstimatedRTT + SampleRTT

giaacute trị đặc trưng = 0125

Transport Layer 3-60

Viacute dụ đaacutenh giaacute RTTRTT gaiacsumassedu to fantasiaeurecomfr

100

150

200

250

300

350

1 8 15 22 29 36 43 50 57 64 71 78 85 92 99 106

time (seconnds)

RTT

(mill

isec

onds

)

SampleRTT Estimated RTT

Transport Layer 3-61

TCP Round Trip Time vagrave Timeout

Thiết lập timeout EstimtedRTT cộng ldquohệ số dự trữ an toagravenrdquo

sự biến thiecircn lớn trong EstimatedRTT -gt hệ số dự trữ an toagraven lớn hơn ước lượng đầu tiecircn về sự biến thiecircn của SampleRTT từ EstimatedRTT

TimeoutInterval = EstimatedRTT + 4DevRTT

DevRTT = (1-)DevRTT + |SampleRTT-EstimatedRTT|

(tiecircu biểu = 025)

Sau đoacute thiết lập timeout interval

Transport Layer 3-62

TCP truyền dữ liệu tin cậy

TCP tạo dịch vụ rdt trecircn dịch vụ khocircng tin cậy IP

caacutec đoạn Pipelined caacutec ACK tiacutech lũy TCP dugraveng bộ định thigrave

truyền lại đơn

Truyền lại được kiacutech hoạt bởi caacutec sự kiện timeout caacutec ack trugraveng lặp

luacutec đầu khảo saacutet caacutec becircn gửi TCP đơn giản lờ đi caacutec ack trugraveng lặp lờ đi điều khiển luồng

điều khiển tắc nghẽn

Transport Layer 3-63

TCP caacutec sự kiệndữ liệu đatilde nhận từ ứng

dụng tạo đoạn với số thứ

tự của noacute số thứ tự lagrave số theo

byte dữ liệu đầu tiecircn khởi động bộ định thigrave

nếu chưa chạy khoảng thời gian hết

hạn TimeOutInterval

timeout gửi lại đoạn nagraveo gacircy

ra timeout khởi động lại bộ định

thigrave Ack đatilde nhận

cập nhật caacutei gigrave sẽ được ACK

khởi động bộ định thigrave nếu coacute caacutec đoạn cograven chờ

Transport Layer 3-64

TCP becircn gửi(đơn giản)

NextSeqNum = InitialSeqNum SendBase = InitialSeqNum

loop (forever) switch(event)

event data received from application above create TCP segment with sequence number NextSeqNum if (timer currently not running) start timer pass segment to IP NextSeqNum = NextSeqNum + length(data)

event timer timeout retransmit not-yet-acknowledged segment with smallest sequence number start timer

event ACK received with ACK field value of y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer

end of loop forever

Chuacute thiacutechbull SendBase-1 byte vừa được ACK tiacutech lũy Viacute dụbull SendBase-1 = 71y= 73 vigrave thế becircn nhận muốn 73+ y gt SendBase vigrave thế dữ liệu mới được chấp nhận

Transport Layer 3-65

TCP caacutec tigravenh huống truyền lại

Host A

Seq=100 20 bytes data

ACK=100

timetimeout sớm

Host B

Seq=92 8 bytes data

ACK=120

Seq=92 8 bytes data

Seq=

92

tim

eout

ACK=120

Host A

Seq=92 8 bytes data

ACK=100

loss

tim

eout

tigravenh huống mất ACK

Host B

X

Seq=92 8 bytes data

ACK=100

time

Seq=

92

tim

eout

SendBase= 100

SendBase= 120

SendBase= 120

Sendbase= 100

Transport Layer 3-66

TCP caacutec tigravenh huống truyền lại (tt)Host A

Seq=92 8 bytes data

ACK=100

loss

tim

eout

Cumulative ACK scenario

Host B

X

Seq=100 20 bytes data

ACK=120

time

SendBase= 120

Transport Layer 3-67

TCP sinh ra ACK [RFC 1122 RFC 2581]

Sự kiện tại becircn nhận

Đoạn đến với đuacuteng số thứ tự mong muốn Tất cả dữ liệu đếnđatilde được ACK

Đoạn đến với đuacuteng số thứ tự mong muốn Một đoạn khaacutec đangchờ ACK

Caacutec đoạn đến khocircng thứ tựlớn hơn số thứ tự đoạn mong muốnCoacute khoảng trống

Đoạn đếnlấp đầy từng phần hoặc toagraven bộkhoảng trống

TCP becircn nhận hagravenh động

ACK trễ Chờ đến 500mscho đoạn kế tiếp Nếu khocircng coacute đoạnkế tiếp gửi ACK

Gửi ngay một ACK tiacutech lũy chấp nhậncho cả caacutec đoạn theo thứ tự

Gửi ngay ACK trugraveng lặp chỉ thị số thứ tựđoạn của byte kế tiếp đang mong chờ

Gửi ngay ACK với điều kiện lagrave đoạnbắt đầu ngay điểm coacute khoảng trống

Transport Layer 3-68

Truyền lại nhanh

Chu kỳ Time-out thường tương đối dagravei độ trễ dagravei trước khi gửi

lại goacutei đatilde mất

Xaacutec nhận caacutec đoạn đatilde mất bằng caacutec ACK trugraveng lặp becircn gửi thường gửi

nhiều đoạn song song Nếu đoạn bị mất sẽ

xảy ra tigravenh trạng giống như nhiều ACK trugraveng nhau

Nếu becircn gửi nhận 3 ACK của cugraveng một dữ liệu noacute cho lagrave đoạn sau dữ liệu đatilde ACK bị mất Truyền lại nhanh gửi

lại đoạn trước khi bộ định thigrave hết hạn

Transport Layer 3-69

sự kiện ACK đatilde nhận với trường lagrave y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer else increment count of dup ACKs received for y if (count of dup ACKs received for y = 3) resend segment with sequence number y

Giải thuật truyền lại nhanh

một ACK trugraveng lặp cho đoạn đatilde được ACK

Truyền lại nhanh

Transport Layer 3-70

Chương 3 Nội dung trigravenh bagravey

31 Caacutec dịch vụ lớp Transport

32 Multiplexing vagrave demultiplexing

33 Vận chuyển khocircng kết nối UDP

34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy

35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối

36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn

37 Điều khiển tắc nghẽn TCP

Transport Layer 3-71

TCP điều khiển luồng

becircn nhận của kết nối TCP coacute một bộ đệm nhận

dịch vụ so trugraveng tốc độ so trugraveng tốc độ gửi với tốc độ nhận của ứng dụng

tiến trigravenh ứng dụng coacute thể chậm tại luacutec đọc bộ đệm

becircn gửi sẽ khocircng lagravem tragraven bộ đệm vigrave truyền quaacute nhiều vagrave

quaacute nhanh

điều khiển luồng

Transport Layer 3-72

TCP điều khiển luồng caacutech lagravem

(Giả sử becircn nhận TCP loại bỏ caacutec đoạn khocircng coacute thứ tự)

dự phograveng trong bộ đệm= RcvWindow

= RcvBuffer-[LastByteRcvd - LastByteRead]

Becircn nhận thocircng baacuteo khoảng dự trữ nhờ giaacute trị RcvWindow trong caacutec đoạn

Becircn gửi hạn chế dữ liệu khocircng được ACK vagraveo RcvWindow bảo đảm bộ đệm nhận

khocircng tragraven

Transport Layer 3-73

Chương 3 Nội dung trigravenh bagravey

31 Caacutec dịch vụ lớp Transport

32 Multiplexing vagrave demultiplexing

33 Vận chuyển khocircng kết nối UDP

34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy

35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối

36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn

37 Điều khiển tắc nghẽn TCP

Transport Layer 3-74

TCP quản lyacute kết nối

Chuacute yacute Becircn gửi vagrave becircn nhận TCP thiết lập ldquokết nốirdquo trước khi trao đổi dữ liệu

khởi tạo caacutec biến TCP caacutec số thứ tự đoạn thocircng tin caacutec bộ đệm điều

khiển luồng (như RcvWindow)

client người khởi xướng kết nối

Socket clientSocket = new Socket(hostnameport

number) server được tiếp xuacutec bởi

client Socket connectionSocket =

welcomeSocketaccept()

3 phương phaacutep bắt tay

Bước 1 client host gửi đoạnTCP SYN đến server xaacutec định số thứ tự khởi đầu khocircng phải dữ liệu

Bước 2 server host nhận SYN trả lời với đoạn SYNACK

server cấp phaacutet caacutec bộ đệm

xaacutec định số thứ tự khởi đầuBước 3 client nhận SYNACK trả

lời với đoạn ACK (coacute thể chứa dữ liệu)

Transport Layer 3-75

TCP quản lyacute kết nối (tt)

Đoacuteng một kết nối

client đoacuteng socket clientSocketclose()

Bước 1 client gửi đoạn điều khiển TCP FIN đến server

Bước 2 server nhận FIN trả lời với ACK Đoacuteng kết nối gửi FIN

client

FIN

server

ACK

ACK

FIN

đoacuteng

đoacuteng

đatilde đoacutengthời g

ian c

hờ

Transport Layer 3-76

TCP quản lyacute kết nối (tt)

Bước 3 client nhận FIN trả lời với ACK

Trong khoảng ldquothời gian chờrdquo ndash sẽ phản hồi với ACK để nhận caacutec FIN

Bước 4 server nhận ACK Kết nối đatilde đoacuteng

Chuacute yacute với một sửa đổi nhỏ coacute thể quản lyacute nhiều FIN đồng thời

client

FIN

server

ACK

ACK

FIN

đang đoacuteng

đang đoacuteng

đatilde đoacuteng

thời g

ian c

hờ

đatilde đoacuteng

Transport Layer 3-77

TCP quản lyacute kết nối (tt)

chu kỳ sống củaTCP client

chu kỳ sống củaTCP server

Transport Layer 3-78

Chương 3 Nội dung trigravenh bagravey

31 Caacutec dịch vụ lớp Transport

32 Multiplexing vagrave demultiplexing

33 Vận chuyển khocircng kết nối UDP

34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy

35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối

36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn

37 Điều khiển tắc nghẽn TCP

Transport Layer 3-79

Caacutec nguyecircn lyacute điều khiển tắc nghẽn

Tắc nghẽn ldquoquaacute nhiều nguồn gửi quaacute nhanh vagrave quaacute nhiều

dữ liệu đến mạngrdquo khaacutec với điều khiển luồng caacutec biểu hiện

caacutec goacutei bị mất (tragraven bộ đệm tại caacutec router) caacutec độ trễ quaacute dagravei (xếp hagraveng trong bộ đệm

của router) lagrave 1 trong 10 vấn đề nan giải nhất

Transport Layer 3-80

Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 1

2 gửi 2 nhận 1 router caacutec bộ

đệm khocircng giới hạn

khocircng coacute truyền lại

caacutec độ trễ lớn hơn khi tắc nghẽn

năng suất coacute thể đạt tối đa

unlimited shared output link buffers

Host Ain original data

Host B

out

Transport Layer 3-81

Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 2

1 router caacutec bộ đệm coacute giới hạn becircn gửi truyền lại caacutec goacutei đatilde mất

chia sẻ vocirc hạncaacutec bộ đệm ouput

Host A in dữ liệu gốc

Host B

out

in dữ liệu gốc cugraveng với dữ liệu truyền lại

Transport Layer 3-82

Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 2 luocircn luocircn

truyền lại ldquohoagraven toagravenrdquo chỉ khi mất maacutet

truyền lại vigrave trễ (khocircng mất) lagravem cho lớn hơn với cugraveng

in

out

=

in

out

gt

in

out

ldquocaacutec chi phiacuterdquo của tắc nghẽn nhiều việc (truyền lại) caacutec truyền lại khocircng cần thiết liecircn kết nhiều bản sao của

goacutei

R2

R2in

ou

t

b

R2

R2in

ou

t

a

R2

R2in

ou

t

c

R4

R3

Transport Layer 3-83

Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 3 4 người gửi caacutec đường qua nhiều hop timeouttruyền lại

in

Hỏi điều gigrave xảy ra nếu vagrave tăng lecircn

in

chia sẻ vocirc hạncaacutec bộ đệm ouput

Host Ain dữ liệu gốc

Host B

out

in dữ liệu gốc cugraveng với dữ liệu truyền lại

Transport Layer 3-84

Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 3

ldquochi phiacuterdquo khaacutec của tắc nghẽn khi caacutec goacutei bị bỏ bất kỳ ldquokhả năng truyền

upstream dugraveng cho goacutei đoacute sẽ bị latildeng phiacuterdquo

Host A

Host B

o

u

t

Transport Layer 3-85

Caacutec caacutech tiếp cận đối với điều khiển tắc nghẽn

điều khiển tắc nghẽn end-end

khocircng coacute phản hồi rotilde ragraveng từ mạng

tắc nghẽn được suy ra từ việc quan saacutet caacutec hệ thống đầu cuối coacute mất maacutet trễ

tiếp cận được quản lyacute bởi TCP

điều khiển tắc nghẽn coacute sự hỗ trợ của mạng

caacutec router cung cấp phản hồi về caacutec hệ thống đầu cuối 1 bit duy nhất chỉ thị

tắc nghẽn (SNA DECbit TCPIP ECN ATM)

tốc độ sẽ gửi được xaacutec định rotilde ragraveng

2 caacutech

Transport Layer 3-86

Viacute dụ điều khiển tắc nghẽn ATM ABR

ABR tốc độ bit sẵn sagraveng

ldquodịch vụ mềm dẻordquo nếu đường gửi ldquochưa

hếtrdquo becircn gửi sẽ dugraveng

băng thocircng sẵn sagraveng nếu đường gửi tắc

nghẽn becircn gửi điều tiết với

tốc độ tối thiểu

RM (resource management)

gửi bởi becircn gửi rải raacutec với caacutec ocirc dữ liệu

caacutec bit trong ocirc thiết lập bởi caacutec switch bit NI khocircng tăng tốc độ

(tắc nghẽn nhẹ) bit CI tắc nghẽn rotilde rệt

Caacutec ocirc RM được trả về becircn gửi từ becircn nhận với nguyecircn vẹn caacutec bit

Transport Layer 3-87

Viacute dụ điều khiển tắc nghẽn ATM ABR

trường 2-byte ER trong ocirc RM switch đatilde tắc nghẽn coacute thể coacute giaacute trị ER thấp hơn trong ocirc tốc độ gửi do đoacute coacute thể được hỗ trợ tối đa trecircn đường

EFCI bit trong caacutec ocirc dữ liệu được cagravei giaacute trị 1 trong switch đatilde tắc nghẽn nếu ocirc dữ liệu đứng trước ocirc RM coacute cagravei EFCI becircn gửi sẽ cagravei

bit CI trong ocirc RM trả về

Transport Layer 3-88

Chương 3 Nội dung trigravenh bagravey

31 Caacutec dịch vụ lớp Transport

32 Multiplexing vagrave demultiplexing

33 Vận chuyển khocircng kết nối UDP

34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy

35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối

36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn

37 Điều khiển tắc nghẽn TCP

Transport Layer 3-89

TCP điều khiển tắc nghẽn additive tăng lecircn multiplicative giảm xuống

8 Kbytes

16 Kbytes

24 Kbytes

time

congestionwindow

Caacutech tiếp cận tăng tốc độ truyền (kiacutech thước cửa sổ) tigravem khả năng băng thocircng coacute thể cho đến khi coacute mất maacutet xảy ra additive tăng lecircn tăng CongWin bởi 1 MSS

mỗi RTT cho đến khi coacute mất maacutet xảy ra multiplicative giảm xuống bỏ CongWin trong

nửa giai đoạn sau khi mất maacutet

timekiacutech

thư

ớc

cửa

sổ

tắc

nghẽ

n

Tigravem kiếm băng thocircng

Transport Layer 3-90

TCP điều khiển tắc nghẽn chi tiết

becircn gửi hạn chế việc truyền LastByteSent-LastByteAcked

CongWin Cocircng thức

CongWin thay đổi chức năng lagrave nhận biết tắc nghẽn trecircn mạng

Lagravem thế nagraveo becircn gửi nhận biết tắc nghẽn

mất maacutet xảy ra = timeout hoặc 3 ack trugraveng lặp

becircn gửi giảm tốc độ (CongWin) sau khi mất maacutet xảy ra

3 cơ chế AIMD khởi động chậm thận trọng sau khi coacute

caacutec sự kiện timeout

tốc độ = CongWin

RTT Bytess

Transport Layer 3-91

TCP khởi động chậm

Khi kết nối bắt đầu CongWin = 1 MSS Viacute dụ MSS = 500 bytes

amp RTT = 200 ms tốc độ khởi tạo = 20

kbps

băng thocircng sẵn sagraveng coacute thể gtgt MSSRTT mong muốn nhanh

choacuteng tăng tốc lecircn tốc độ coacute thể đaacutep ứng

Khi kết nối bắt đầu tăng tốc lecircn rất nhanh cho đến khi sự cố mất maacutet xảy ra đầu tiecircn

Transport Layer 3-92

TCP khởi động chậm (tt)

Khi kết nối bắt đầu tăng tốc lecircn rất nhanh cho đến khi sự cố mất maacutet xảy ra đầu tiecircn nhacircn đocirci CongWin mỗi

RTT hoagraven thagravenh nhờ tăng CongWin ứng với mỗi ACK đatilde nhận

Tổng kết tốc độ khởi đầu lagrave chậm nhưng sau đoacute tăng tốc rất nhanh

Host A

1 đoạn

RTT

Host B

thời gian

2 đoạn

4 đoạn

Transport Layer 3-93

Tinh chếHỏi Khi nagraveo việc tăng

tốc trở thagravenh tuyến tiacutenh

Trả lời Khi CongWin đạt đến 12 giaacute trị của noacute trước khi timeout

Hiện thực Ngưỡng thay đổi Tại thời điểm coacute sự cố

mất maacutet ngưỡng được cagravei giaacute trị bằng frac12 của CongWin ngay trước đoacute

Transport Layer 3-94

Tinh chế nhận biết mất maacutet

Sau 3 ACK trugraveng lặp CongWin sẽ giảm 12 kiacutech thước cửa sổ

tăng tuyến tiacutenh nhưng sau sự cố

timeout CongWin thay giaacute trị

bằng 1 MSS kiacutech thước cửa sổ

tăng cấp lũy thừa khi đến một ngưỡng

thigrave tăng tuyến tiacutenh

3 ACK trugraveng nhau chỉ ra khả năng truyền của mạng timeout chỉ thị ldquonhiều cảnh baacuteordquo về tigravenh huống tắc nghẽn

Nguyecircn lyacute

Transport Layer 3-95

Tổng kết TCP điều khiển tắc nghẽn

Khi CongWin dưới Threshold becircn gửi đang trong giai đoạn khởi động chậm kiacutech thước cửa sổ tăng nhanh theo cấp lũy thừa

Khi CongWin trecircn Threshold becircn gửi đang trong giai đoạn traacutenh tắc nghẽn kiacutech thước cửa sổ tăng nhanh theo cấp tuyến tiacutenh

Khi coacute 3 ACK trugraveng lặp xảy ra Threshold = CongWin2 vagrave CongWin = Threshold

Khi timeout xảy ra Threshold = CongWin2 vagrave CongWin = 1 MSS

Transport Layer 3-96

TCP điều khiển tắc nghẽn becircn gửi

Trạng thaacutei Sự kiện TCP becircn gửi hagravenh động Diễn giải

Slow Start (SS)-Khởi động chậm

ACK baacuteo nhận cho dữ liệu chưa ACK trước đoacute

CongWin = CongWin + MSS If (CongWin gt Threshold) cagravei đặt trạng thaacutei ldquoTraacutenh tắc nghẽnrdquo

Hậu quả lagravem tăng gấp đocirci CongWin mỗi RTT

CongestionAvoidance (CA) ndashTraacutenh tắc nghẽn

ACK baacuteo nhận cho dữ liệu chưa ACK trước đoacute

CongWin = CongWin+MSS (MSSCongWin)

Additive tăng lecircn lagravem tăng CongWin lecircn 1 MSS mỗi RTT

SS hoặc CA Sự cố mất maacutet xảy ra khi thấy coacute 3 ACK trugraveng lặp

Threshold = CongWin2 CongWin = Thresholdcagravei đặt trạng thaacutei ldquoTraacutenh tắc nghẽnrdquo

Khocirci phục nhanh hiện thực giảm xuống multiplicative CongWin sẽ khocircng giảm xuống dưới 1 MSS

SS hoặc CA Timeout Threshold = CongWin2 CongWin = 1 MSScagravei đặt trạng thaacutei ldquoKhởi động chậmrdquo

Vagraveo chế độ ldquoKhởi động chậmrdquo

SS hoặc CA ACK trugraveng lặp

Đếm ACK tăng lecircn cho đoạn vừa được ACK

CongWin vagrave Threshold khocircng thay đổi

Transport Layer 3-97

TCP throughput

Throughout trung bigravenh của TCP biểu diễn qua kiacutech thước của sổ vagrave RTT Bỏ qua trạng thaacutei ldquoKhởi động chậmrdquo

Cho W lagrave kiacutech thước cửa sổ khi coacute mất maacutet xảy ra

Khi kiacutech thước cửa sổ = W lưu lượng = WRTT

Chỉ ngay sau khi mất maacutet cửa sổ giảm xuống = W2 lưu lượng = W2RTT

throughout trung bigravenh 075 WRTT

Transport Layer 3-98

TCP tương lai

Viacute dụ caacutec đoạn dagravei 1500 byte RTT 100ms lưu lượng 10 Gbps

Kiacutech thước cửa sổ yecircu cầu W = 83333 đoạn trecircn đường truyền

Lưu lượng trong caacutec trường hợp mất maacutet

L = 210-10

Phiecircn bản mới của TCP dagravenh cho nhu cầu tốc độ cao

LRTT

MSS221

Transport Layer 3-99

Mục tiecircu nếu K phiecircn lagravem việc TCP chia sẻ kết nối cổ chai của băng thocircng lagrave R mỗi phiecircn coacute tốc độ trung bigravenh lagrave RK

TCP kết nối 1

router cổ chaikhả năng R

TCP kết nối 2

TCP tiacutenh cocircng bằng

Transport Layer 3-100

Tại sao phải TCP cocircng bằng

2 phiecircn lagravem việc cạnh tranh nhau Additive tăng lưu lượng tăng multiplicative giảm lưu lượng tương xứng

R

R

chia sẻ băng thocircng bằng nhau

Connection 1 throughputConnect

ion 2

th

roughput

traacutenh tắc nghẽn additive tăng lecircnmất maacutet giảm cửa sổ bằng 12

traacutenh tắc nghẽn additive tăng lecircnmất maacutet giảm cửa sổ bằng 12

Transport Layer 3-101

TCP tiacutenh cocircng bằng (tt)

Tiacutenh cocircng bằng amp UDP nhiều ứng dụng

thường khocircng dugraveng TCP khocircng muốn tốc độ bị

điều tiết do điều khiển tắc nghẽn

Thay bằng dugraveng UDP truyền audiovideo với

tốc độ ổn định chịu được mất maacutet

Nghiecircn cứu giao thức thacircn thiện với TCP

Tiacutenh cocircng bằng amp caacutec kết nối TCP song song

khocircng coacute gigrave ngăn cản việc ứng dụng mở caacutec kết nối song song giữa 2 host

Trigravenh duyệt Web lagravem giống như thế

Viacute dụ tốc độ R hỗ trợ 9 kết nối ứng dụng mới yecircu cầu 1

TCP coacute tốc độ R10 ứng dụng mới yecircu cầu 11

TCP coacute tốc độ R2

Transport Layer 3-102

Mocirc higravenh trễ

Hỏi Mất bao lacircu để nhận 1 đối tượng từ Web server sau khi gửi yecircu cầu

Bỏ qua tắc nghẽn trễ bị ảnh hưởng bởi

thiết lập kết nối TCP trễ truyền dữ liệu khởi động chậm

Notation caacutec giả định Giả sử một kết nối giữa

client vagrave server coacute tốc độ R

S MSS (bits) O kiacutech thước đối tượng

(bits) khocircng truyền lại (khocircng

mất maacutet khocircng hỏng)

Kiacutech thước cửa sổ Giả định 1 cửa sổ tắc

nghẽn cố định coacute W đoạn Sau đoacute cửa sổ thay đổi

mocirc higravenh khởi động chậm

Transport Layer 3-103

Cửa sổ tắc nghẽn cố định (1)

Trường hợp đầu tiecircnWSR gt RTT + SR cho

đoạn đầu tiecircn trong cửa sổ trả về trước khi cửa sổ dữ liệu gửi ACK

trễ = 2RTT + OR

Transport Layer 3-104

Cửa sổ tắc nghẽn cố định (2)

Trường hợp thứ hai WSR lt RTT + SR sent

chờ cho ACK sau khi gửi dữ liệu

trễ = 2RTT + OR+ (K-1)[SR + RTT - WSR]

Transport Layer 3-105

TCP Mocirc higravenh trễ Khởi động chậm (1)

Bacircy giờ giả sử kiacutech thước cửa sổ tăng lecircn tugravey theo quaacute trigravenh khởi động chậm

Độ trễ của một đối tượng sẽ lagrave

R

S

R

SRTTP

R

ORTTLatency P )12(2

trong đoacute P lagrave số lần TCP rảnh ở tại server

1min KQP

- trong đoacute Q lagrave số lần server rảnh nếu đối tượng đatilde khởi tạo kiacutech thước

- vagrave K lagrave số lượng cửa sổ bao trugravem đối tượng

Transport Layer 3-106

TCP Mocirc higravenh trễ Khởi động chậm (2)

RTT

initia te TCPconnection

requestobject

first w indow= S R

second w indow= 2S R

third w indow= 4S R

fourth w indow= 8S R

com pletetransm issionobject

delivered

tim e atc lient

tim e atserver

Viacute dụbull OS = 15 đoạnbull K = 4 cửa sổbull Q = 2bull P = minK-1Q = 2

Server rảnh P=2 lần

Caacutec thagravenh phần trễbull 2 RTT dagravenh cho thiết lập kết nối vagrave yecircu cầubull OR để truyền đối tượngbullthời gian server rảnh bởi vigrave khởi động chậm

Server rảnh P = minK-1Q lần

Transport Layer 3-107

TCP Mocirc higravenh trễ(3)

R

S

R

SRTTPRTT

R

O

R

SRTT

R

SRTT

R

O

idleTimeRTTR

O

P

kP

k

P

pp

)12(][2

]2[2

2delay

1

1

1

th window after the timeidle 2 1 kR

SRTT

R

S k

ementacknowledg receivesserver until

segment send tostartsserver when from time RTTR

S

window kth the transmit totime2 1

R

Sk

RTT

initia te TCPconnection

requestobject

first w indow= S R

second w indow= 2S R

third w indow= 4S R

fourth w indow= 8S R

com pletetransm issionobject

delivered

tim e atc lient

tim e atserver

Transport Layer 3-108

TCP Mocirc higravenh trễ (4)

)1(log

)1(logmin

12min

222min

222min

2

2

110

110

S

OS

Okk

S

Ok

SOk

OSSSkK

k

k

k

caacutech tiacutenh toaacuten Q tương tự (xem HW)

K = số lượng cửa sổ bao trugravem đối tượngLagravem thế nagraveo tiacutenh được K

Transport Layer 3-109

HTTP Mocirc higravenh Giả sử trang Web chứa

1 trang HTML (kiacutech thước O bits) M higravenh ảnh (mỗi caacutei kiacutech thướcO bits)

HTTP khocircng bền vững M+1 TCP kết nối Thời gian đaacutep ứng = (M+1)OR + (M+1)2RTT + tổng số thời

gian rảnh HTTP bền vững

2 RTT để yecircu cầu vagrave nhận file HTML 1 RTT để yecircu cầu vagrave nhận M higravenh ảnh Thời gian đaacutep ứng = (M+1)OR + 3RTT + tổng số thời gian

rảnh HTTP khocircng bền vững với X kết nối song song

Giả sử MX lagrave số nguyecircn 1 TCP kết nối cho file MX thiết lập caacutec kết nối song song cho caacutec higravenh ảnh Thời gian đaacutep ứng = (M+1)OR + (MX + 1)2RTT + tổng số

thời gian rảnh

Transport Layer 3-110

02468

101214161820

28Kbps

100Kbps

1Mbps

10Mbps

non-persistent

persistent

parallel non-persistent

HTTP thời gian đaacutep ứng (giacircy)RTT = 100 msec O = 5 Kbytes M=10 vagrave X=5

Với băng thocircng thấp thời gian kết nối amp đaacutep ứng trội hơn thời gian truyền

Caacutec kết nối bền vững chỉ cho sự cải thiện khocircng đaacuteng kể trecircn caacutec kết nối song song

Transport Layer 3-111

0

10

20

30

40

50

60

70

28Kbps

100Kbps

1Mbps

10Mbps

non-persistent

persistent

parallel non-persistent

HTTP thời gian đaacutep ứng (giacircy)

RTT =1 sec O = 5 Kbytes M=10 and X=5

Với RTT lớn hơn thời gian đaacutep ứng trội hơn thời gian trễ chờ thiết lập kết nốiTCP amp khởi động chậm Caacutec kết nối bền vững bacircy giờ cho thấy cải thiện rotilde rệt đặc biệtvới caacutec mạng băng thocircng cao

Transport Layer 3-112

Chương 3 Tổng kết caacutec nguyecircn lyacute của caacutec

dịch vụ lớp transport multiplexing

demultiplexing truyền dữ liệu tin cậy điều khiển luồng điều khiển tắc nghẽn

khởi tạo vagrave hiện thực trong Internet UDP TCP

Tiếp theo nghiecircn cứu xong

caacutec vấn đề ldquongoagravei biecircnrdquo (caacutec lớp application transport)

chuẩn bị vagraveo phần ldquolotildeirdquo của mạng

  • Slide 1
  • Chương 3 Lớp Transport
  • Chương 3 Nội dung trigravenh bagravey
  • Caacutec dịch vụ vagrave giao thức Transport
  • Lớp Transport với lớp network
  • Caacutec giao thức lớp transport trecircn Internet
  • Slide 7
  • Multiplexingdemultiplexing
  • Demultiplexing lagravem việc như thế nagraveo
  • Demultiplexing khocircng kết nối
  • Demultiplexing khocircng kết nối (tiếp)
  • Demultiplexing hướng kết nối
  • Demultiplexing hướng kết nối (tiếp)
  • Demultiplexing hướng kết nối Threaded Web Server
  • Slide 15
  • UDP User Datagram Protocol [RFC 768]
  • UDP (tt)
  • UDP checksum
  • Viacute dụ Checksum
  • Slide 20
  • Caacutec nguyecircn lyacute truyền dữ liệu tin cậy
  • Slide 22
  • Slide 23
  • Truyền dữ liệu tin cậy
  • Slide 25
  • Rdt10 truyền dữ liệu tin cậy trecircn 1 kecircnh truyền tin cậy
  • Rdt20 kecircnh với caacutec lỗi
  • rdt20 đặc tả FSM
  • rdt20 hoạt động khi khocircng lỗi
  • rdt20 hoạt động khi coacute lỗi
  • rdt20 coacute lỗ hổng nghiecircm trọng
  • rdt21 người gửi quản lyacute caacutec ACKNAK bị hỏng
  • Slide 33
  • rdt21 thảo luận
  • rdt22 một giao thức khocircng cần NAK
  • rdt22 gửi nhận caacutec mảnh
  • rdt30 caacutec kecircnh với lỗi vagrave mất maacutet
  • rdt30 gửi
  • hagravenh động của rdt30
  • Slide 40
  • Hiệu suất của rdt30
  • rdt30 hoạt động dừng-vagrave-chờ
  • Caacutec giao thức Pipelined
  • Pipelining độ khả dụng tăng
  • Go-Back-N
  • GBN becircn gửi mở rộng FSM
  • GBN becircn nhận mở rộng FSM
  • GBN hoạt động
  • Lặp coacute lựa chọn
  • Lặp coacute lựa chọn caacutec cửa sổ gửi nhận
  • Slide 51
  • Hoạt động của lặp coacute lựa chọn
  • Lặp coacute lựa chọn tigravenh trạng khoacute giải quyết
  • Slide 54
  • TCP Tổng quan RFCs 793 1122 1323 2018 2581
  • TCP cấu truacutec đoạn
  • Caacutec số thứ tự TCP vagrave ACK
  • TCP Round Trip Time vagraveTimeout
  • TCP Round Trip Time vagrave Timeout
  • Viacute dụ đaacutenh giaacute RTT
  • Slide 61
  • TCP truyền dữ liệu tin cậy
  • TCP caacutec sự kiện
  • TCP becircn gửi (đơn giản)
  • TCP caacutec tigravenh huống truyền lại
  • TCP caacutec tigravenh huống truyền lại (tt)
  • TCP sinh ra ACK [RFC 1122 RFC 2581]
  • Truyền lại nhanh
  • Giải thuật truyền lại nhanh
  • Slide 70
  • TCP điều khiển luồng
  • TCP điều khiển luồng caacutech lagravem
  • Slide 73
  • TCP quản lyacute kết nối
  • TCP quản lyacute kết nối (tt)
  • Slide 76
  • Slide 77
  • Slide 78
  • Caacutec nguyecircn lyacute điều khiển tắc nghẽn
  • Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 1
  • Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 2
  • Slide 82
  • Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 3
  • Slide 84
  • Caacutec caacutech tiếp cận đối với điều khiển tắc nghẽn
  • Viacute dụ điều khiển tắc nghẽn ATM ABR
  • Slide 87
  • Slide 88
  • TCP điều khiển tắc nghẽn additive tăng lecircn multiplicative giảm xuống
  • TCP điều khiển tắc nghẽn chi tiết
  • TCP khởi động chậm
  • TCP khởi động chậm (tt)
  • Tinh chế
  • Tinh chế nhận biết mất maacutet
  • Tổng kết TCP điều khiển tắc nghẽn
  • TCP điều khiển tắc nghẽn becircn gửi
  • TCP throughput
  • TCP tương lai
  • TCP tiacutenh cocircng bằng
  • Tại sao phải TCP cocircng bằng
  • TCP tiacutenh cocircng bằng (tt)
  • Mocirc higravenh trễ
  • Cửa sổ tắc nghẽn cố định (1)
  • Cửa sổ tắc nghẽn cố định (2)
  • TCP Mocirc higravenh trễ Khởi động chậm (1)
  • TCP Mocirc higravenh trễ Khởi động chậm (2)
  • TCP Mocirc higravenh trễ(3)
  • TCP Mocirc higravenh trễ (4)
  • HTTP Mocirc higravenh
  • Slide 110
  • Slide 111
  • Chương 3 Tổng kết

Transport Layer 3-3

Chương 3 Nội dung trigravenh bagravey

31 Caacutec dịch vụ lớp Transport

32 Multiplexing vagrave demultiplexing

33 Vận chuyển khocircng kết nối UDP

34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy

35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối

36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn

37 Điều khiển tắc nghẽn TCP

Transport Layer 3-4

Caacutec dịch vụ vagrave giao thức Transport cung cấp truyền thocircng logic

chạy trecircn caacutec host khaacutec nhau

caacutec giao thức transport chạy trecircn caacutec hệ thống đầu cuối phiacutea gửi cắt caacutec thocircng

điệp ứng dụng thagravenh caacutec đoạn chuyển cho lớp network

phiacutea nhận taacutei kết hợp caacutec đoạn thagravenh caacutec thocircng điệp chuyển cho lớp application

coacute nhiều hơn 1 giao thức transport dagravenh cho caacutec ứng dụng Internet TCP vagrave UDP

application

transportnetworkdata linkphysical

application

transportnetworkdata linkphysical

networkdata linkphysical

networkdata linkphysical

networkdata linkphysical

networkdata linkphysicalnetwork

data linkphysical

logical end-end transport

Transport Layer 3-5

Lớp Transport với lớp network lớp network truyền

thocircng logic giữa caacutec host

lớp transport truyền thocircng logic giữa caacutec tiến trigravenh dựa vagraveo vagrave lagravem nổi

bật caacutec dịch vụ lớp network

Tigravenh huống tự nhiecircn tương tự

12 đứa trẻ gửi thư đến 12 đứa trẻ khaacutec

caacutec tiến trigravenh = caacutec đứa trẻ

caacutec thocircng điệp = thư trong bao thư

caacutec host = caacutec gia đigravenh giao thức transport =

Ann vagrave Bill giao thức lớp network

= dịch vụ bưu điện

Transport Layer 3-6

Caacutec giao thức lớp transport trecircn Internet tin cậy truyền theo

thứ tự (TCP) điều khiển tắc nghẽn điều khiển luồng thiết lập kết nối

khocircng tin cậy truyền khocircng theo thứ tự UDP mở rộng của giao thức

IP

khocircng coacute caacutec dịch vụ bảo đảm trễ bảo đảm bandwidth

application

transportnetworkdata linkphysical

application

transportnetworkdata linkphysical

networkdata linkphysical

networkdata linkphysical

networkdata linkphysical

networkdata linkphysicalnetwork

data linkphysical

logical end-end transport

Transport Layer 3-7

Chương 3 Nội dung trigravenh bagravey

31 Caacutec dịch vụ lớp Transport

32 Multiplexing vagrave demultiplexing

33 Vận chuyển khocircng kết nối UDP

34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy

35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối

36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn

37 Điều khiển tắc nghẽn TCP

Transport Layer 3-8

Multiplexingdemultiplexing

application

transport

network

link

physical

P1 application

transport

network

link

physical

application

transport

network

link

physical

P2P3 P4P1

host 1 host 2 host 3

= tiến trigravenh = socket

vận chuyển caacutec đoạn đatilde nhận được đến đuacuteng socket

Demultiplexing tại host nhậnthu nhặt dữ liệu từ nhiều socket đoacuteng goacutei dữ liệu vớiheader (sẽ dugraveng sau đoacute chodemultiplexing)

Multiplexing tại host gửi

Transport Layer 3-9

Demultiplexing lagravem việc như thế nagraveo host nhận caacutec IP datagrams

mỗi datagram coacute địa chỉ IP nguồn vagrave IP điacutech

mỗi datagram mang 1 đoạn của lớp transport

mỗi đoạn coacute số port nguồn vagrave điacutech

host dugraveng địa chỉ IP amp số port để điều hướng đoạn đến socket thiacutech hợp

port nguồn port điacutech

32 bits

dữ liệu ứng dụng(thocircng điệp)

caacutec header fields khaacutec

dạng thức đoạn TCPUDP

Transport Layer 3-10

Demultiplexing khocircng kết nối

Tạo caacutec sockets với caacutec số port

DatagramSocket mySocket1 = new DatagramSocket(12534)

DatagramSocket mySocket2 = new DatagramSocket(12535)

UDP socket được xaacutec định bởi bộ 2

(địa chỉ IP số port điacutech)

Khi host nhận đoạn UDP kiểm tra port điacutech trong

đoạn điều hướng đoạn UDP

đến socket nagraveo phugrave hợp với số port đoacute

IP datagrams với địa chỉ IP nguồn vagravehoặc số port khaacutec nhau coacute thể được điều hướng đến cugraveng socket

Transport Layer 3-11

Demultiplexing khocircng kết nối (tiếp)

DatagramSocket serverSocket = new DatagramSocket(6428)

ClientIPB

P2

client IP A

P1P1P3

serverIP C

SP 6428

DP 9157

SP 9157

DP 6428

SP 6428

DP 5775

SP 5775

DP 6428

SP cung cấp ldquođịa chỉ trở vềrdquo

Transport Layer 3-12

Demultiplexing hướng kết nối

TCP socket được xaacutec định bởi bộ 4 địa chỉ IP nguồn số port nguồn địa chỉ IP điacutech số port điacutech

host nhận dugraveng cả 4 giaacute trị trecircn để điều hướng đoạn đến socket thiacutech hợp

Host server coacute thể hỗ trợ nhiều TCP socket đồng thời mỗi socket được xaacutec

định bởi bộ 4 của noacute

Web server coacute caacutec socket khaacutec nhau cho mỗi kết nối từ client kết nối HTTP khocircng bền

vững sẽ coacute socket khaacutec nhau cho mỗi yecircu cầu

Transport Layer 3-13

Demultiplexing hướng kết nối (tiếp)

ClientIPB

P1

client IP A

P1P2P4

serverIP C

SP 9157

DP 80

SP 9157

DP 80

P5 P6 P3

D-IPCS-IP A

D-IPC

S-IP B

SP 5775

DP 80

D-IPCS-IP B

Transport Layer 3-14

Demultiplexing hướng kết nối Threaded Web Server

ClientIPB

P1

client IP A

P1P2

serverIP C

SP 9157

DP 80

SP 9157

DP 80

P4 P3

D-IPCS-IP A

D-IPC

S-IP B

SP 5775

DP 80

D-IPCS-IP B

Transport Layer 3-15

Chương 3 Nội dung trigravenh bagravey

31 Caacutec dịch vụ lớp Transport

32 Multiplexing vagrave demultiplexing

33 Vận chuyển khocircng kết nối UDP

34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy

35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối

36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn

37 Điều khiển tắc nghẽn TCP

Transport Layer 3-16

UDP User Datagram Protocol [RFC 768]

giao thức Internet transport ldquođơn giản hoacuteardquo

dịch vụ ldquobest effortrdquo caacutec đoạn UDP coacute thể mất maacutet vận chuyển khocircng thứ

tự đến ứng dụng connectionless (khocircng

kết nối) khocircng bắt tay giữa

người nhận vagrave người gửi UDP

mỗi đoạn UDP được quản lyacute độc lập

Coacute UDP để lagravem gigrave khocircng thiết lập kết nối

(giuacutep coacute thể thecircm delay) đơn giản khocircng trạng

thaacutei kết nối tại nơi gửi nơi nhận

header của đoạn nhỏ khocircng điều khiển tắc

nghẽn UDP coacute thể gửi nhanh nhất theo mong muốn

Transport Layer 3-17

UDP (tt)

thường dugraveng cho caacutec ứng dụng streaming multimedia chịu mất maacutet cảm nhận tốc độ

ngoagravei ra UDP dugraveng DNS SNMP

truyền tin cậy trecircn UDP thecircm khả năng nagravey tại lớp application sửa lỗi

source port dest port

32 bits

dữ liệu ứng dụng

(thocircng điệp)

dạng thức đoạn UDP

length checksumĐộ dagravei

đoạn UDPbao gồm cả

header

Transport Layer 3-18

UDP checksum

Người gửi đối xử caacutec nội dung

đoạn như một chuỗi caacutec số nguyecircn 16-bit

checksum bổ sung(tổng bugrave 1) của caacutec nội dung đoạn

đặt giaacute trị checksum vagraveo trường UDP checksum

Người nhận tiacutenh toaacuten checksum của

đoạn đatilde nhận kiểm tra giaacute trị trecircn coacute bằng

với giaacute trị trong trường checksum NO ndash coacute lỗi xảy ra YES ndash khocircng coacute lỗi Nhưng coacute thể cograven lỗi

khaacutec nữa Xem tiếp phần sau hellip

Mục tiecircu kiểm tra caacutec ldquolỗirdquo (caacutec bit cờ đatilde bật lecircn) trong caacutec đoạn đatilde truyền

Transport Layer 3-19

Viacute dụ Checksum Lưu yacute

Khi cộng caacutec số một bit nhớ ở phiacutea cao nhất coacute thể sẽ phải thecircm vagraveo kết quả

Viacute dụ cộng hai số nguyecircn 16-bit

1 1 1 1 0 0 1 1 0 0 1 1 0 0 1 1 01 1 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1

1 1 0 1 1 1 0 1 1 1 0 1 1 1 0 1 1

1 1 0 1 1 1 0 1 1 1 0 1 1 1 1 0 01 0 1 0 0 0 1 0 0 0 1 0 0 0 0 1 1

bit dư

tổngchecksum

Transport Layer 3-20

Chương 3 Nội dung trigravenh bagravey

31 Caacutec dịch vụ lớp Transport

32 Multiplexing vagrave demultiplexing

33 Vận chuyển khocircng kết nối UDP

34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy

35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối

36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn

37 Điều khiển tắc nghẽn TCP

Transport Layer 3-21

Caacutec nguyecircn lyacute truyền dữ liệu tin cậy quan trọng trong caacutec lớp application transport link lagrave danh saacutech 10 vấn đề quan trọng nhất của mạng

caacutec đặc thugrave của kecircnh truyền khocircng tin cậy sẽ xaacutec định sự phức tạp của giao thức truyền dữ liệu data transfer protocol (rdt)

Transport Layer 3-22

Caacutec nguyecircn lyacute truyền dữ liệu tin cậy quan trọng trong caacutec lớp application transport link lagrave danh saacutech 10 vấn đề quan trọng nhất của mạng

caacutec đặc thugrave của kecircnh truyền khocircng tin cậy sẽ xaacutec định sự phức tạp của giao thức truyền dữ liệu data transfer protocol (rdt)

Transport Layer 3-23

Caacutec nguyecircn lyacute truyền dữ liệu tin cậy quan trọng trong caacutec lớp application transport link lagrave danh saacutech 10 vấn đề quan trọng nhất của mạng

caacutec đặc thugrave của kecircnh truyền khocircng tin cậy sẽ xaacutec định sự phức tạp của giao thức truyền dữ liệu data transfer protocol (rdt)

Transport Layer 3-24

Truyền dữ liệu tin cậy

sendside

receiveside

rdt_send() được gọi bởi lớp app Chuyển dữ liệu cần truyền

đến lớp cao hơn becircn nhận

udt_send() được gọi bởi rdt để truyền caacutec goacutei trecircn kecircnh khocircng tin cậy đến nơi

nhận

rdt_rcv() được gọi khi goacutei đến kecircnh becircn nhận

deliver_data() được gọi bởi rdt để truyền dữ liệu

đến lớp cao hơn

Transport Layer 3-25

Truyền dữ liệu tin cậy

Sẽ chỉ xem xeacutet truyền dữ liệu theo 1 hướng duy

nhất nhưng điều khiển luồng thocircng tin sẽ theo cả 2

chiều

dugraveng maacutey trạng thaacutei hữu hạn (finite state machines-FSM) để xaacutec định người gửi người nhận

trthaacutei1

trthaacutei2

sự kiện gacircy ra trạng thaacutei truyềncaacutec hagravenh động xảy ra khi truyền

trạng thaacutei khi ở ldquotrạng thaacuteirdquo nagravey thigrave

trạng thaacutei kế tiếp duy nhất được xaacutec định bởi sự kiện kế

tiếp

sự kiệncaacutec hagravenh động

Transport Layer 3-26

Rdt10 truyền dữ liệu tin cậy trecircn 1 kecircnh truyền tin cậy

kecircnh ưu tiecircn tin cậy hoagraven toagraven khocircng coacute caacutec lỗi khocircng mất maacutet caacutec goacutei

caacutec FSM phacircn biệt cho người gửi người nhận người gửi gửi dữ liệu vagraveo kecircnh ưu tiecircn người nhận nhận dữ liệu từ kecircnh ưu tiecircn

chờ gọi từ lớp trecircn packet = make_pkt(data)

udt_send(packet)

rdt_send(data)

extract (packetdata)deliver_data(data)

chờ gọi từ lớp dưới

rdt_rcv(packet)

người gửi người nhận

Transport Layer 3-27

Rdt20 kecircnh với caacutec lỗi

kecircnh ưu tiecircn coacute thể bật lecircn một số bit trong goacutei checksum để kiểm tra caacutec lỗi

Hỏi lagravem sao khocirci phục caacutec lỗi acknowledgements (ACKs) becircn nhận rotilde ragraveng thocircng

baacuteo cho becircn gửi rằng quaacute trigravenh nhận goacutei tốt negative acknowledgements (NAKs) becircn nhận rotilde ragraveng

thocircng baacuteo cho becircn gửi rằng quaacute trigravenh nhận goacutei coacute lỗi người gửi gửi lại goacutei nagraveo được xaacutec nhận lagrave NAK

caacutec cơ chế mới trong rdt20 (sau rdt10) kiểm tra lỗi nhận phản hồi caacutec thocircng điệp điều khiển (ACKNAK)

becircn nhận becircn gửi

Transport Layer 3-28

rdt20 đặc tả FSM

chờ gọi từ lớp trecircn

snkpkt = make_pkt(data checksum)udt_send(sndpkt)

extract(rcvpktdata)deliver_data(data)udt_send(ACK)

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)

rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp isNAK(rcvpkt)

udt_send(NAK)

rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)

chờ ACK hoặc NAK

chờ gọi từ lớp dưới

người gửi

người nhậnrdt_send(data)

Transport Layer 3-29

rdt20 hoạt động khi khocircng lỗi

chờ gọi từ lớp dưới

snkpkt = make_pkt(data checksum)udt_send(sndpkt)

extract(rcvpktdata)deliver_data(data)udt_send(ACK)

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)

rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp isNAK(rcvpkt)

udt_send(NAK)

rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)

chờ ACK hoặc NAK

chờ gọi từ lớp dưới

rdt_send(data)

Transport Layer 3-30

rdt20 hoạt động khi coacute lỗi

chờ gọi từ lớp dưới

snkpkt = make_pkt(data checksum)udt_send(sndpkt)

extract(rcvpktdata)deliver_data(data)udt_send(ACK)

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)

rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp isNAK(rcvpkt)

udt_send(NAK)

rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)

chờ ACK hoặc NAK

chờ gọi từ lớp dưới

rdt_send(data)

Transport Layer 3-31

rdt20 coacute lỗ hổng nghiecircm trọngĐiều gigrave xảy ra nếu

ACKNAK bị hỏng người gửi khocircng biết điều

gigrave đatilde xảy ra tại becircn nhận

khocircng thể đơn phương truyền lại khả năng trugraveng lặp

Quản lyacute trugraveng lặp người gửi truyền lại goacutei

hiện tại nếu ACKNAK bị hỏng

người gửi thecircm số thứ tự vagraveo mỗi goacutei

người nhận hủy (khocircng nhận) goacutei trugraveng lặp

Người gửi gửi 1 goacutei sau đoacute dừng lại chờ phản hồitừ người nhận

dừng vagrave chờ

Transport Layer 3-32

rdt21 người gửi quản lyacute caacutec ACKNAK bị hỏng

chờ gọi 0 từ lớp trecircn

sndpkt = make_pkt(0 data checksum)udt_send(sndpkt)

rdt_send(data)

chờ ACK hoặc NAK

0 udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) ||isNAK(rcvpkt) )

sndpkt = make_pkt(1 data checksum)udt_send(sndpkt)

rdt_send(data)

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) ||isNAK(rcvpkt) )

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt)

chờ gọi 1 từ lớp trecircn

chờ ACK hoặc NAK

1

Transport Layer 3-33

rdt21 người gửi quản lyacute caacutec ACKNAK bị hỏng

chờ 0 từ dưới

sndpkt = make_pkt(NAK chksum)udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp not corrupt(rcvpkt) ampamp has_seq0(rcvpkt)

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp has_seq1(rcvpkt)

extract(rcvpktdata)deliver_data(data)sndpkt = make_pkt(ACK chksum)udt_send(sndpkt)

chờ 1 từ dưới

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp has_seq0(rcvpkt)

extract(rcvpktdata)deliver_data(data)sndpkt = make_pkt(ACK chksum)udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp (corrupt(rcvpkt)

sndpkt = make_pkt(ACK chksum)udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp not corrupt(rcvpkt) ampamp has_seq1(rcvpkt)

rdt_rcv(rcvpkt) ampamp (corrupt(rcvpkt)

sndpkt = make_pkt(ACK chksum)udt_send(sndpkt)

sndpkt = make_pkt(NAK chksum)udt_send(sndpkt)

Transport Layer 3-34

rdt21 thảo luận

người gửi số thứ tự thecircm vagraveo

goacutei chỉ cần hai số thứ tự

(01) lagrave đủ Tại sao phải kiểm tra nếu việc

nhận ACKNAK bị hỏng

số trạng thaacutei tăng lecircn 2 lần trạng thaacutei phải ldquonhớrdquo

goacutei ldquohiện tạirdquo coacute số thứ tự lagrave 0 hay 1

người nhận phải kiểm tra coacute

nhận trugraveng goacutei khocircng trạng thaacutei chỉ rotilde coacute

hay khocircng mong chờ số thứ tự 0 hoặc 1

chuacute yacute người nhận khocircng biết ACKNAK vừa rồi của noacute coacute được người gửi nhận tốt hay khocircng

Transport Layer 3-35

rdt22 một giao thức khocircng cần NAK

chức năng giống như rdt21 chỉ dugraveng caacutec ACK thay cho NAK người nhận gửi ACK cho goacutei vừa

rồi đatilde nhận tốt người nhận phải rotilde ragraveng chegraven số thứ tự của goacutei vừa ACK

trugraveng ACK tại người gửi hậu quả giống như hagravenh động của NAK truyền lại goacutei vừa rồi

Transport Layer 3-36

rdt22 gửi nhận caacutec mảnh

Chờ cho gọi 0 từ

trecircn

sndpkt = make_pkt(0 data checksum)udt_send(sndpkt)

rdt_send(data)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) || isACK(rcvpkt1) )

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt0)

Chờ cho ACK

0

gửi phacircn mảnhFSM

Chờ cho gọi

0 từ dưới

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp has_seq1(rcvpkt)

extract(rcvpktdata)deliver_data(data)sndpkt = make_pkt(ACK1 chksum)udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp (corrupt(rcvpkt) || has_seq1(rcvpkt))

udt_send(sndpkt)

nhận phacircn mảnhFSM

Transport Layer 3-37

rdt30 caacutec kecircnh với lỗi vagrave mất maacutet

Giả định mới kecircnh ưu tiecircn cũng coacute thể lagravem mất caacutec goacutei (dữ liệu hoặc caacutec ACK) checksum số thứ tự

caacutec ACK caacutec việc truyền lại sẽ hỗ trợ nhưng khocircng đủ

Caacutech tiếp cận người gửi chờ ACK trong khoảng thời gian ldquochấp nhận đượcrdquo

truyền lại nếu khocircng nhận ACK trong khoảng thời gian nagravey

nếu goacutei (hoặc ACK) chỉ trễ (khocircng mất) truyền lại sẽ gacircy trugraveng

nhưng dugraveng số thứ tự sẽ giải quyết được

người nhận phải xaacutec định số thứ tự của goacutei vừa gửi ACK

cần bộ định thigrave đếm lugravei

Transport Layer 3-38

rdt30 gửi

sndpkt = make_pkt(0 data checksum)udt_send(sndpkt)start_timer

rdt_send(data)

Chờ cho

ACK 0

rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) ||isACK(rcvpkt1) )

Chờ cho gọi 1 từ trecircn

sndpkt = make_pkt(1 data checksum)udt_send(sndpkt)start_timer

rdt_send(data)

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt0)

rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) ||isACK(rcvpkt0) )

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt1)

stop_timerstop_timer

udt_send(sndpkt)start_timer

timeout

udt_send(sndpkt)start_timer

timeout

rdt_rcv(rcvpkt)

Chờ cho gọi 0 từ trecircn

Chờ cho

ACK 1

rdt_rcv(rcvpkt)

Transport Layer 3-39

hagravenh động của rdt30

Transport Layer 3-40

hagravenh động của rdt30

Transport Layer 3-41

Hiệu suất của rdt30

rdt30 lagravem việc được nhưng đaacutenh giaacute hiệu suất hơi rắc rối viacute dụ liecircn kết 1 Gbps trễ lan truyền giữa hai đầu cuối lagrave 15

ms goacutei 1KB

T truyền = 8kbpkt109 bsec

= 8 microsec

U sender độ khả dụng ndash

U sender

= 008

30008 = 000027

microseconds

L R

RTT + L R =

L (độ dagravei goacutei tiacutenh bằng bits)R (tốc độ truyền bps)

=

goacutei 1KB mỗi 30 msec -gt 33kBs trecircn đường truyền 1 Gbps giao thức network hạn chế việc dugraveng caacutec tagravei nguyecircn vật

lyacute

Transport Layer 3-42

rdt30 hoạt động dừng-vagrave-chờ

goacutei đầu tiecircn đatilde truyền t = 0

gửi nhận

RTT

goacutei cuối cugraveng đatilde truyền t = L R

goacutei đầu tiecircn đatilde đếngoacutei cuối cugraveng đatilde đến gửi ACK

ACK đến gửi goacutei kế tiếp t = RTT + L R

U sender

= 008

30008 = 000027

microseconds

L R

RTT + L R =

Transport Layer 3-43

Caacutec giao thức Pipelined

Pipelining người gửi cho pheacutep gửi nhiều goacutei đồng thời khocircng cần chờ baacuteo nhận được nhoacutem caacutec số thứ tự phải tăng dần phải coacute bộ nhớ đệm tại nơi gửi vagravehoặc nơi nhận

hai dạng phổ biến của caacutec giao thức pipelined go-Back-N Lặp coacute lựa chọn

Transport Layer 3-44

Pipelining độ khả dụng tăng

goacutei đầu tiecircn đatilde truyền t = 0

sender receiver

RTT

goacutei cuối cugraveng đatilde truyền t = L R

goacutei đầu tiecircn đatilde đếngoacutei cuối cugraveng đatilde đến gửi ACK

ACK đến gửi goacuteikế tiếp t = RTT + L R

bit cuối của goacutei thứ 2 đến gửi ACKbit cuối của goacutei thứ 3 đến gửi ACK

U sender

= 024

30008 = 00008

microseconds

3 L R

RTT + L R =

Độ khả dụng tăng lecircngấp 3 lần

Transport Layer 3-45

Go-Back-NBecircn gửi k-bit số thứ tự trong header của goacutei ldquocửa sổrdquo tăng lecircn đến N cho pheacutep gửi caacutec goacutei liecircn tục khocircng cần ACK

ACK(n) ACKs tất cả caacutec goacutei đến chứa số thứ tự n ndash ldquoACK tiacutech lũyrdquo coacute thể nhận caacutec ACK trugraveng lặp (xem becircn nhận)

định thigrave cho mỗi goacutei trecircn đường truyền timeout(n) gửi lại goacutei n vagrave tất cả caacutec goacutei coacute số thứ tự cao

hơn trong cửa sổ

Transport Layer 3-46

GBN becircn gửi mở rộng FSM

chờ start_timerudt_send(sndpkt[base])udt_send(sndpkt[base+1])hellipudt_send(sndpkt[nextseqnum-1])

timeout

rdt_send(data)

if (nextseqnum lt base+N) sndpkt[nextseqnum] = make_pkt(nextseqnumdatachksum) udt_send(sndpkt[nextseqnum]) if (base == nextseqnum) start_timer nextseqnum++ else refuse_data(data)

base = getacknum(rcvpkt)+1If (base == nextseqnum) stop_timer else start_timer

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)

base=1nextseqnum=1

rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)

Transport Layer 3-47

GBN becircn nhận mở rộng FSM

ACK-duy nhất luocircn luocircn gửi ACK cho goacutei đatilde nhận đuacuteng với số thứ tự xếp hạng cao nhất coacute thể sinh ra caacutec ACK trugraveng nhau chỉ cần nhớ expectedseqnum

goacutei khocircng theo thứ tự hủy -gt khocircng nhận vagraveo bộ đệm gửi lại ACK với số thứ tự xếp hạng cao nhất

chờ

udt_send(sndpkt)

default

rdt_rcv(rcvpkt) ampamp notcurrupt(rcvpkt) ampamp hasseqnum(rcvpktexpectedseqnum)

extract(rcvpktdata)deliver_data(data)sndpkt = make_pkt(expectedseqnumACKchksum)udt_send(sndpkt)expectedseqnum++

expectedseqnum=1sndpkt = make_pkt(expectedseqnumACKchksum)

Transport Layer 3-48

GBN hoạt động

Transport Layer 3-49

Lặp coacute lựa chọn

becircn nhận thocircng baacuteo đatilde nhận đuacuteng tất cả từng goacutei một đệm (buffer) caacutec goacutei nếu cần thiết

becircn gửi chỉ gửi lại caacutec goacutei nagraveo khocircng nhận được ACK becircn gửi định thigrave đối với mỗi goacutei khocircng gửi ACK

cửa sổ becircn gửi N số thứ tự liecircn tục hạn chế số thứ tự caacutec goacutei khocircng gửi ACK

Transport Layer 3-50

Lặp coacute lựa chọn caacutec cửa sổ gửi nhận

Transport Layer 3-51

Lặp coacute lựa chọn

dữ liệu từ lớp trecircn nếu số thứ tự kế tiếp sẵn

sagraveng trong cửa sổ gửi goacutei

timeout(n) gửi lại goacutei n taacutei khởi tạo

bộ định thigrave

ACK(n) trong [sendbasesendbase+N]

đaacutenh dấu goacutei n lagrave đatilde nhận nếu goacutei khocircng ACK coacute n

nhỏ nhất dịch chuyển cửa sổ base đến số thứ tự khocircng ACK kế tiếp

Gửigoacutei n trong [rcvbase

rcvbase+N-1]

gửi ACK(n) khocircng thứ tự đệm

(buffer) coacute thứ tự truyền (cũng

truyền caacutec goacutei đatilde đệm coacute thứ tự) dịch chuyển cửa sổ đến goacutei chưa nhận kế tiếp

goacutei n trong [rcvbase-Nrcvbase-1]

ACK(n)

ngược lại lờ đi

Nhận

Transport Layer 3-52

Hoạt động của lặp coacute lựa chọn

Transport Layer 3-53

Lặp coacute lựa chọntigravenh trạng khoacute giải quyếtViacute dụ Số thứ tự 0 1 2 3 Kiacutech thước cửa sổ = 3

becircn nhận khocircng thấy sự khaacutec nhau trong 2 tigravenh huống

chuyển khocircng chiacutenh xaacutec dữ liệu trugraveng lặp như dữ liệu mới trong (a)

Hỏi quan hệ giữa datildey số thứ tự vagrave kiacutech thước cửa sổ

Transport Layer 3-54

Chương 3 Nội dung trigravenh bagravey

31 Caacutec dịch vụ lớp Transport

32 Multiplexing vagrave demultiplexing

33 Vận chuyển khocircng kết nối UDP

34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy

35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối

36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn

37 Điều khiển tắc nghẽn TCP

Transport Layer 3-55

TCP Tổng quan RFCs 793 1122 1323 2018 2581

dữ liệu full duplex luồng dữ liệu đi 2 chiều

trong cugraveng một kết nối MSS maximum

segment size ndash kiacutech thước đoạn tối đa

hướng kết nối bắt tay (trao đổi caacutec

thocircng điệp điều khiển) trạng thaacutei becircn gửi becircn nhận trước khi trao đổi dữ liệu

điều khiển luồng becircn gửi sẽ khocircng lấn aacutet

becircn nhận

point-to-point một becircn gửi một becircn

nhận tin cậy dograveng byte coacute

thứ tự khocircng ldquoranh giới thocircng

điệprdquo kecircnh liecircn lạc

TCP điều khiển luồng vagrave tắc nghẽn thiết lập kiacutech thước cửa sổ

caacutec bộ đệm gửi amp nhận

socketdoor

T C Psend buffer

T C Preceive buffer

socketdoor

segm ent

applicationwrites data

applicationreads data

Transport Layer 3-56

TCP cấu truacutec đoạn

port nguồn port điacutech

32 bits

dữ liệu ứng dụng(độ dagravei thay đổi)

số thứ tự

số ACKcửa sổ nhận

con trỏ URGchecksum

FSRPAUheadlen

notused

Tugravey chọn (độ dagravei thay đổi)

URG dữ liệu khẩn cấp(thường khocircng dugraveng)

ACK ACK hợp lệ

PSH push data now(thường khocircng dugraveng)

RST SYN FINthiết lập kết nối

(caacutec lệnh thiết lậpchia nhỏ)

số byte becircn nhận sẵn sagraveng chấp nhận

đếm bởi số bytecủa dữ liệu

Internetchecksum

(giống UDP)

Transport Layer 3-57

Caacutec số thứ tự TCP vagrave ACKCaacutec số thứ tự

dograveng byte ldquođaacutenh sốrdquo byte đầu tiecircn trong dữ liệu của đoạn

caacutec ACK số thứ tự của byte

kế tiếp được chờ đợi từ phiacutea becircn kia

ACK tiacutech lũyHỏi lagravem thế nagraveo becircn

nhận quản lyacute caacutec đoạn khocircng thứ tự Trả lời TCP khocircng

đề cập tugravey thuộc người hiện thực

Host A Host B

Seq=42 ACK=79 data = lsquoCrsquo

Seq=79 ACK=43 data = lsquoCrsquo

Seq=43 ACK=80

UsernhậplsquoCrsquo

host ACKsnhận phản hồi

lsquoCrsquo

host ACKsbaacuteo nhận

lsquoCrsquo phản hồingược lại lsquoCrsquo

timetigravenh huống telnet đơn giản

Transport Layer 3-58

TCP Round Trip Time vagraveTimeout

Hỏi Lagravem thế nagraveo để thiết lập giaacute trị TCP timeout

dagravei hơn RTT khaacutec với RTT

quaacute ngắn timeout sớm truyền lại khocircng

cần thiết quaacute dagravei phản ứng

chậm đối với việc mất maacutet goacutei

Hỏi Lagravem thế nagraveo để thiết lập RTT

SampleRTT thời gian được đo từ khi truyền đoạn đến khi baacuteo nhận ACK lờ đi việc truyền lại

SampleRTT sẽ thay đổi muốn ước lượng RTT ldquomượt hơnrdquo tiacutenh trung bigravenh một số giaacute

trị đo được gần đoacute khocircng chỉ SampleRTT hiện tại

Transport Layer 3-59

TCP Round Trip Time vagrave Timeout

EstimatedRTT = (1- )EstimatedRTT + SampleRTT

giaacute trị đặc trưng = 0125

Transport Layer 3-60

Viacute dụ đaacutenh giaacute RTTRTT gaiacsumassedu to fantasiaeurecomfr

100

150

200

250

300

350

1 8 15 22 29 36 43 50 57 64 71 78 85 92 99 106

time (seconnds)

RTT

(mill

isec

onds

)

SampleRTT Estimated RTT

Transport Layer 3-61

TCP Round Trip Time vagrave Timeout

Thiết lập timeout EstimtedRTT cộng ldquohệ số dự trữ an toagravenrdquo

sự biến thiecircn lớn trong EstimatedRTT -gt hệ số dự trữ an toagraven lớn hơn ước lượng đầu tiecircn về sự biến thiecircn của SampleRTT từ EstimatedRTT

TimeoutInterval = EstimatedRTT + 4DevRTT

DevRTT = (1-)DevRTT + |SampleRTT-EstimatedRTT|

(tiecircu biểu = 025)

Sau đoacute thiết lập timeout interval

Transport Layer 3-62

TCP truyền dữ liệu tin cậy

TCP tạo dịch vụ rdt trecircn dịch vụ khocircng tin cậy IP

caacutec đoạn Pipelined caacutec ACK tiacutech lũy TCP dugraveng bộ định thigrave

truyền lại đơn

Truyền lại được kiacutech hoạt bởi caacutec sự kiện timeout caacutec ack trugraveng lặp

luacutec đầu khảo saacutet caacutec becircn gửi TCP đơn giản lờ đi caacutec ack trugraveng lặp lờ đi điều khiển luồng

điều khiển tắc nghẽn

Transport Layer 3-63

TCP caacutec sự kiệndữ liệu đatilde nhận từ ứng

dụng tạo đoạn với số thứ

tự của noacute số thứ tự lagrave số theo

byte dữ liệu đầu tiecircn khởi động bộ định thigrave

nếu chưa chạy khoảng thời gian hết

hạn TimeOutInterval

timeout gửi lại đoạn nagraveo gacircy

ra timeout khởi động lại bộ định

thigrave Ack đatilde nhận

cập nhật caacutei gigrave sẽ được ACK

khởi động bộ định thigrave nếu coacute caacutec đoạn cograven chờ

Transport Layer 3-64

TCP becircn gửi(đơn giản)

NextSeqNum = InitialSeqNum SendBase = InitialSeqNum

loop (forever) switch(event)

event data received from application above create TCP segment with sequence number NextSeqNum if (timer currently not running) start timer pass segment to IP NextSeqNum = NextSeqNum + length(data)

event timer timeout retransmit not-yet-acknowledged segment with smallest sequence number start timer

event ACK received with ACK field value of y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer

end of loop forever

Chuacute thiacutechbull SendBase-1 byte vừa được ACK tiacutech lũy Viacute dụbull SendBase-1 = 71y= 73 vigrave thế becircn nhận muốn 73+ y gt SendBase vigrave thế dữ liệu mới được chấp nhận

Transport Layer 3-65

TCP caacutec tigravenh huống truyền lại

Host A

Seq=100 20 bytes data

ACK=100

timetimeout sớm

Host B

Seq=92 8 bytes data

ACK=120

Seq=92 8 bytes data

Seq=

92

tim

eout

ACK=120

Host A

Seq=92 8 bytes data

ACK=100

loss

tim

eout

tigravenh huống mất ACK

Host B

X

Seq=92 8 bytes data

ACK=100

time

Seq=

92

tim

eout

SendBase= 100

SendBase= 120

SendBase= 120

Sendbase= 100

Transport Layer 3-66

TCP caacutec tigravenh huống truyền lại (tt)Host A

Seq=92 8 bytes data

ACK=100

loss

tim

eout

Cumulative ACK scenario

Host B

X

Seq=100 20 bytes data

ACK=120

time

SendBase= 120

Transport Layer 3-67

TCP sinh ra ACK [RFC 1122 RFC 2581]

Sự kiện tại becircn nhận

Đoạn đến với đuacuteng số thứ tự mong muốn Tất cả dữ liệu đếnđatilde được ACK

Đoạn đến với đuacuteng số thứ tự mong muốn Một đoạn khaacutec đangchờ ACK

Caacutec đoạn đến khocircng thứ tựlớn hơn số thứ tự đoạn mong muốnCoacute khoảng trống

Đoạn đếnlấp đầy từng phần hoặc toagraven bộkhoảng trống

TCP becircn nhận hagravenh động

ACK trễ Chờ đến 500mscho đoạn kế tiếp Nếu khocircng coacute đoạnkế tiếp gửi ACK

Gửi ngay một ACK tiacutech lũy chấp nhậncho cả caacutec đoạn theo thứ tự

Gửi ngay ACK trugraveng lặp chỉ thị số thứ tựđoạn của byte kế tiếp đang mong chờ

Gửi ngay ACK với điều kiện lagrave đoạnbắt đầu ngay điểm coacute khoảng trống

Transport Layer 3-68

Truyền lại nhanh

Chu kỳ Time-out thường tương đối dagravei độ trễ dagravei trước khi gửi

lại goacutei đatilde mất

Xaacutec nhận caacutec đoạn đatilde mất bằng caacutec ACK trugraveng lặp becircn gửi thường gửi

nhiều đoạn song song Nếu đoạn bị mất sẽ

xảy ra tigravenh trạng giống như nhiều ACK trugraveng nhau

Nếu becircn gửi nhận 3 ACK của cugraveng một dữ liệu noacute cho lagrave đoạn sau dữ liệu đatilde ACK bị mất Truyền lại nhanh gửi

lại đoạn trước khi bộ định thigrave hết hạn

Transport Layer 3-69

sự kiện ACK đatilde nhận với trường lagrave y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer else increment count of dup ACKs received for y if (count of dup ACKs received for y = 3) resend segment with sequence number y

Giải thuật truyền lại nhanh

một ACK trugraveng lặp cho đoạn đatilde được ACK

Truyền lại nhanh

Transport Layer 3-70

Chương 3 Nội dung trigravenh bagravey

31 Caacutec dịch vụ lớp Transport

32 Multiplexing vagrave demultiplexing

33 Vận chuyển khocircng kết nối UDP

34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy

35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối

36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn

37 Điều khiển tắc nghẽn TCP

Transport Layer 3-71

TCP điều khiển luồng

becircn nhận của kết nối TCP coacute một bộ đệm nhận

dịch vụ so trugraveng tốc độ so trugraveng tốc độ gửi với tốc độ nhận của ứng dụng

tiến trigravenh ứng dụng coacute thể chậm tại luacutec đọc bộ đệm

becircn gửi sẽ khocircng lagravem tragraven bộ đệm vigrave truyền quaacute nhiều vagrave

quaacute nhanh

điều khiển luồng

Transport Layer 3-72

TCP điều khiển luồng caacutech lagravem

(Giả sử becircn nhận TCP loại bỏ caacutec đoạn khocircng coacute thứ tự)

dự phograveng trong bộ đệm= RcvWindow

= RcvBuffer-[LastByteRcvd - LastByteRead]

Becircn nhận thocircng baacuteo khoảng dự trữ nhờ giaacute trị RcvWindow trong caacutec đoạn

Becircn gửi hạn chế dữ liệu khocircng được ACK vagraveo RcvWindow bảo đảm bộ đệm nhận

khocircng tragraven

Transport Layer 3-73

Chương 3 Nội dung trigravenh bagravey

31 Caacutec dịch vụ lớp Transport

32 Multiplexing vagrave demultiplexing

33 Vận chuyển khocircng kết nối UDP

34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy

35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối

36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn

37 Điều khiển tắc nghẽn TCP

Transport Layer 3-74

TCP quản lyacute kết nối

Chuacute yacute Becircn gửi vagrave becircn nhận TCP thiết lập ldquokết nốirdquo trước khi trao đổi dữ liệu

khởi tạo caacutec biến TCP caacutec số thứ tự đoạn thocircng tin caacutec bộ đệm điều

khiển luồng (như RcvWindow)

client người khởi xướng kết nối

Socket clientSocket = new Socket(hostnameport

number) server được tiếp xuacutec bởi

client Socket connectionSocket =

welcomeSocketaccept()

3 phương phaacutep bắt tay

Bước 1 client host gửi đoạnTCP SYN đến server xaacutec định số thứ tự khởi đầu khocircng phải dữ liệu

Bước 2 server host nhận SYN trả lời với đoạn SYNACK

server cấp phaacutet caacutec bộ đệm

xaacutec định số thứ tự khởi đầuBước 3 client nhận SYNACK trả

lời với đoạn ACK (coacute thể chứa dữ liệu)

Transport Layer 3-75

TCP quản lyacute kết nối (tt)

Đoacuteng một kết nối

client đoacuteng socket clientSocketclose()

Bước 1 client gửi đoạn điều khiển TCP FIN đến server

Bước 2 server nhận FIN trả lời với ACK Đoacuteng kết nối gửi FIN

client

FIN

server

ACK

ACK

FIN

đoacuteng

đoacuteng

đatilde đoacutengthời g

ian c

hờ

Transport Layer 3-76

TCP quản lyacute kết nối (tt)

Bước 3 client nhận FIN trả lời với ACK

Trong khoảng ldquothời gian chờrdquo ndash sẽ phản hồi với ACK để nhận caacutec FIN

Bước 4 server nhận ACK Kết nối đatilde đoacuteng

Chuacute yacute với một sửa đổi nhỏ coacute thể quản lyacute nhiều FIN đồng thời

client

FIN

server

ACK

ACK

FIN

đang đoacuteng

đang đoacuteng

đatilde đoacuteng

thời g

ian c

hờ

đatilde đoacuteng

Transport Layer 3-77

TCP quản lyacute kết nối (tt)

chu kỳ sống củaTCP client

chu kỳ sống củaTCP server

Transport Layer 3-78

Chương 3 Nội dung trigravenh bagravey

31 Caacutec dịch vụ lớp Transport

32 Multiplexing vagrave demultiplexing

33 Vận chuyển khocircng kết nối UDP

34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy

35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối

36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn

37 Điều khiển tắc nghẽn TCP

Transport Layer 3-79

Caacutec nguyecircn lyacute điều khiển tắc nghẽn

Tắc nghẽn ldquoquaacute nhiều nguồn gửi quaacute nhanh vagrave quaacute nhiều

dữ liệu đến mạngrdquo khaacutec với điều khiển luồng caacutec biểu hiện

caacutec goacutei bị mất (tragraven bộ đệm tại caacutec router) caacutec độ trễ quaacute dagravei (xếp hagraveng trong bộ đệm

của router) lagrave 1 trong 10 vấn đề nan giải nhất

Transport Layer 3-80

Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 1

2 gửi 2 nhận 1 router caacutec bộ

đệm khocircng giới hạn

khocircng coacute truyền lại

caacutec độ trễ lớn hơn khi tắc nghẽn

năng suất coacute thể đạt tối đa

unlimited shared output link buffers

Host Ain original data

Host B

out

Transport Layer 3-81

Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 2

1 router caacutec bộ đệm coacute giới hạn becircn gửi truyền lại caacutec goacutei đatilde mất

chia sẻ vocirc hạncaacutec bộ đệm ouput

Host A in dữ liệu gốc

Host B

out

in dữ liệu gốc cugraveng với dữ liệu truyền lại

Transport Layer 3-82

Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 2 luocircn luocircn

truyền lại ldquohoagraven toagravenrdquo chỉ khi mất maacutet

truyền lại vigrave trễ (khocircng mất) lagravem cho lớn hơn với cugraveng

in

out

=

in

out

gt

in

out

ldquocaacutec chi phiacuterdquo của tắc nghẽn nhiều việc (truyền lại) caacutec truyền lại khocircng cần thiết liecircn kết nhiều bản sao của

goacutei

R2

R2in

ou

t

b

R2

R2in

ou

t

a

R2

R2in

ou

t

c

R4

R3

Transport Layer 3-83

Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 3 4 người gửi caacutec đường qua nhiều hop timeouttruyền lại

in

Hỏi điều gigrave xảy ra nếu vagrave tăng lecircn

in

chia sẻ vocirc hạncaacutec bộ đệm ouput

Host Ain dữ liệu gốc

Host B

out

in dữ liệu gốc cugraveng với dữ liệu truyền lại

Transport Layer 3-84

Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 3

ldquochi phiacuterdquo khaacutec của tắc nghẽn khi caacutec goacutei bị bỏ bất kỳ ldquokhả năng truyền

upstream dugraveng cho goacutei đoacute sẽ bị latildeng phiacuterdquo

Host A

Host B

o

u

t

Transport Layer 3-85

Caacutec caacutech tiếp cận đối với điều khiển tắc nghẽn

điều khiển tắc nghẽn end-end

khocircng coacute phản hồi rotilde ragraveng từ mạng

tắc nghẽn được suy ra từ việc quan saacutet caacutec hệ thống đầu cuối coacute mất maacutet trễ

tiếp cận được quản lyacute bởi TCP

điều khiển tắc nghẽn coacute sự hỗ trợ của mạng

caacutec router cung cấp phản hồi về caacutec hệ thống đầu cuối 1 bit duy nhất chỉ thị

tắc nghẽn (SNA DECbit TCPIP ECN ATM)

tốc độ sẽ gửi được xaacutec định rotilde ragraveng

2 caacutech

Transport Layer 3-86

Viacute dụ điều khiển tắc nghẽn ATM ABR

ABR tốc độ bit sẵn sagraveng

ldquodịch vụ mềm dẻordquo nếu đường gửi ldquochưa

hếtrdquo becircn gửi sẽ dugraveng

băng thocircng sẵn sagraveng nếu đường gửi tắc

nghẽn becircn gửi điều tiết với

tốc độ tối thiểu

RM (resource management)

gửi bởi becircn gửi rải raacutec với caacutec ocirc dữ liệu

caacutec bit trong ocirc thiết lập bởi caacutec switch bit NI khocircng tăng tốc độ

(tắc nghẽn nhẹ) bit CI tắc nghẽn rotilde rệt

Caacutec ocirc RM được trả về becircn gửi từ becircn nhận với nguyecircn vẹn caacutec bit

Transport Layer 3-87

Viacute dụ điều khiển tắc nghẽn ATM ABR

trường 2-byte ER trong ocirc RM switch đatilde tắc nghẽn coacute thể coacute giaacute trị ER thấp hơn trong ocirc tốc độ gửi do đoacute coacute thể được hỗ trợ tối đa trecircn đường

EFCI bit trong caacutec ocirc dữ liệu được cagravei giaacute trị 1 trong switch đatilde tắc nghẽn nếu ocirc dữ liệu đứng trước ocirc RM coacute cagravei EFCI becircn gửi sẽ cagravei

bit CI trong ocirc RM trả về

Transport Layer 3-88

Chương 3 Nội dung trigravenh bagravey

31 Caacutec dịch vụ lớp Transport

32 Multiplexing vagrave demultiplexing

33 Vận chuyển khocircng kết nối UDP

34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy

35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối

36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn

37 Điều khiển tắc nghẽn TCP

Transport Layer 3-89

TCP điều khiển tắc nghẽn additive tăng lecircn multiplicative giảm xuống

8 Kbytes

16 Kbytes

24 Kbytes

time

congestionwindow

Caacutech tiếp cận tăng tốc độ truyền (kiacutech thước cửa sổ) tigravem khả năng băng thocircng coacute thể cho đến khi coacute mất maacutet xảy ra additive tăng lecircn tăng CongWin bởi 1 MSS

mỗi RTT cho đến khi coacute mất maacutet xảy ra multiplicative giảm xuống bỏ CongWin trong

nửa giai đoạn sau khi mất maacutet

timekiacutech

thư

ớc

cửa

sổ

tắc

nghẽ

n

Tigravem kiếm băng thocircng

Transport Layer 3-90

TCP điều khiển tắc nghẽn chi tiết

becircn gửi hạn chế việc truyền LastByteSent-LastByteAcked

CongWin Cocircng thức

CongWin thay đổi chức năng lagrave nhận biết tắc nghẽn trecircn mạng

Lagravem thế nagraveo becircn gửi nhận biết tắc nghẽn

mất maacutet xảy ra = timeout hoặc 3 ack trugraveng lặp

becircn gửi giảm tốc độ (CongWin) sau khi mất maacutet xảy ra

3 cơ chế AIMD khởi động chậm thận trọng sau khi coacute

caacutec sự kiện timeout

tốc độ = CongWin

RTT Bytess

Transport Layer 3-91

TCP khởi động chậm

Khi kết nối bắt đầu CongWin = 1 MSS Viacute dụ MSS = 500 bytes

amp RTT = 200 ms tốc độ khởi tạo = 20

kbps

băng thocircng sẵn sagraveng coacute thể gtgt MSSRTT mong muốn nhanh

choacuteng tăng tốc lecircn tốc độ coacute thể đaacutep ứng

Khi kết nối bắt đầu tăng tốc lecircn rất nhanh cho đến khi sự cố mất maacutet xảy ra đầu tiecircn

Transport Layer 3-92

TCP khởi động chậm (tt)

Khi kết nối bắt đầu tăng tốc lecircn rất nhanh cho đến khi sự cố mất maacutet xảy ra đầu tiecircn nhacircn đocirci CongWin mỗi

RTT hoagraven thagravenh nhờ tăng CongWin ứng với mỗi ACK đatilde nhận

Tổng kết tốc độ khởi đầu lagrave chậm nhưng sau đoacute tăng tốc rất nhanh

Host A

1 đoạn

RTT

Host B

thời gian

2 đoạn

4 đoạn

Transport Layer 3-93

Tinh chếHỏi Khi nagraveo việc tăng

tốc trở thagravenh tuyến tiacutenh

Trả lời Khi CongWin đạt đến 12 giaacute trị của noacute trước khi timeout

Hiện thực Ngưỡng thay đổi Tại thời điểm coacute sự cố

mất maacutet ngưỡng được cagravei giaacute trị bằng frac12 của CongWin ngay trước đoacute

Transport Layer 3-94

Tinh chế nhận biết mất maacutet

Sau 3 ACK trugraveng lặp CongWin sẽ giảm 12 kiacutech thước cửa sổ

tăng tuyến tiacutenh nhưng sau sự cố

timeout CongWin thay giaacute trị

bằng 1 MSS kiacutech thước cửa sổ

tăng cấp lũy thừa khi đến một ngưỡng

thigrave tăng tuyến tiacutenh

3 ACK trugraveng nhau chỉ ra khả năng truyền của mạng timeout chỉ thị ldquonhiều cảnh baacuteordquo về tigravenh huống tắc nghẽn

Nguyecircn lyacute

Transport Layer 3-95

Tổng kết TCP điều khiển tắc nghẽn

Khi CongWin dưới Threshold becircn gửi đang trong giai đoạn khởi động chậm kiacutech thước cửa sổ tăng nhanh theo cấp lũy thừa

Khi CongWin trecircn Threshold becircn gửi đang trong giai đoạn traacutenh tắc nghẽn kiacutech thước cửa sổ tăng nhanh theo cấp tuyến tiacutenh

Khi coacute 3 ACK trugraveng lặp xảy ra Threshold = CongWin2 vagrave CongWin = Threshold

Khi timeout xảy ra Threshold = CongWin2 vagrave CongWin = 1 MSS

Transport Layer 3-96

TCP điều khiển tắc nghẽn becircn gửi

Trạng thaacutei Sự kiện TCP becircn gửi hagravenh động Diễn giải

Slow Start (SS)-Khởi động chậm

ACK baacuteo nhận cho dữ liệu chưa ACK trước đoacute

CongWin = CongWin + MSS If (CongWin gt Threshold) cagravei đặt trạng thaacutei ldquoTraacutenh tắc nghẽnrdquo

Hậu quả lagravem tăng gấp đocirci CongWin mỗi RTT

CongestionAvoidance (CA) ndashTraacutenh tắc nghẽn

ACK baacuteo nhận cho dữ liệu chưa ACK trước đoacute

CongWin = CongWin+MSS (MSSCongWin)

Additive tăng lecircn lagravem tăng CongWin lecircn 1 MSS mỗi RTT

SS hoặc CA Sự cố mất maacutet xảy ra khi thấy coacute 3 ACK trugraveng lặp

Threshold = CongWin2 CongWin = Thresholdcagravei đặt trạng thaacutei ldquoTraacutenh tắc nghẽnrdquo

Khocirci phục nhanh hiện thực giảm xuống multiplicative CongWin sẽ khocircng giảm xuống dưới 1 MSS

SS hoặc CA Timeout Threshold = CongWin2 CongWin = 1 MSScagravei đặt trạng thaacutei ldquoKhởi động chậmrdquo

Vagraveo chế độ ldquoKhởi động chậmrdquo

SS hoặc CA ACK trugraveng lặp

Đếm ACK tăng lecircn cho đoạn vừa được ACK

CongWin vagrave Threshold khocircng thay đổi

Transport Layer 3-97

TCP throughput

Throughout trung bigravenh của TCP biểu diễn qua kiacutech thước của sổ vagrave RTT Bỏ qua trạng thaacutei ldquoKhởi động chậmrdquo

Cho W lagrave kiacutech thước cửa sổ khi coacute mất maacutet xảy ra

Khi kiacutech thước cửa sổ = W lưu lượng = WRTT

Chỉ ngay sau khi mất maacutet cửa sổ giảm xuống = W2 lưu lượng = W2RTT

throughout trung bigravenh 075 WRTT

Transport Layer 3-98

TCP tương lai

Viacute dụ caacutec đoạn dagravei 1500 byte RTT 100ms lưu lượng 10 Gbps

Kiacutech thước cửa sổ yecircu cầu W = 83333 đoạn trecircn đường truyền

Lưu lượng trong caacutec trường hợp mất maacutet

L = 210-10

Phiecircn bản mới của TCP dagravenh cho nhu cầu tốc độ cao

LRTT

MSS221

Transport Layer 3-99

Mục tiecircu nếu K phiecircn lagravem việc TCP chia sẻ kết nối cổ chai của băng thocircng lagrave R mỗi phiecircn coacute tốc độ trung bigravenh lagrave RK

TCP kết nối 1

router cổ chaikhả năng R

TCP kết nối 2

TCP tiacutenh cocircng bằng

Transport Layer 3-100

Tại sao phải TCP cocircng bằng

2 phiecircn lagravem việc cạnh tranh nhau Additive tăng lưu lượng tăng multiplicative giảm lưu lượng tương xứng

R

R

chia sẻ băng thocircng bằng nhau

Connection 1 throughputConnect

ion 2

th

roughput

traacutenh tắc nghẽn additive tăng lecircnmất maacutet giảm cửa sổ bằng 12

traacutenh tắc nghẽn additive tăng lecircnmất maacutet giảm cửa sổ bằng 12

Transport Layer 3-101

TCP tiacutenh cocircng bằng (tt)

Tiacutenh cocircng bằng amp UDP nhiều ứng dụng

thường khocircng dugraveng TCP khocircng muốn tốc độ bị

điều tiết do điều khiển tắc nghẽn

Thay bằng dugraveng UDP truyền audiovideo với

tốc độ ổn định chịu được mất maacutet

Nghiecircn cứu giao thức thacircn thiện với TCP

Tiacutenh cocircng bằng amp caacutec kết nối TCP song song

khocircng coacute gigrave ngăn cản việc ứng dụng mở caacutec kết nối song song giữa 2 host

Trigravenh duyệt Web lagravem giống như thế

Viacute dụ tốc độ R hỗ trợ 9 kết nối ứng dụng mới yecircu cầu 1

TCP coacute tốc độ R10 ứng dụng mới yecircu cầu 11

TCP coacute tốc độ R2

Transport Layer 3-102

Mocirc higravenh trễ

Hỏi Mất bao lacircu để nhận 1 đối tượng từ Web server sau khi gửi yecircu cầu

Bỏ qua tắc nghẽn trễ bị ảnh hưởng bởi

thiết lập kết nối TCP trễ truyền dữ liệu khởi động chậm

Notation caacutec giả định Giả sử một kết nối giữa

client vagrave server coacute tốc độ R

S MSS (bits) O kiacutech thước đối tượng

(bits) khocircng truyền lại (khocircng

mất maacutet khocircng hỏng)

Kiacutech thước cửa sổ Giả định 1 cửa sổ tắc

nghẽn cố định coacute W đoạn Sau đoacute cửa sổ thay đổi

mocirc higravenh khởi động chậm

Transport Layer 3-103

Cửa sổ tắc nghẽn cố định (1)

Trường hợp đầu tiecircnWSR gt RTT + SR cho

đoạn đầu tiecircn trong cửa sổ trả về trước khi cửa sổ dữ liệu gửi ACK

trễ = 2RTT + OR

Transport Layer 3-104

Cửa sổ tắc nghẽn cố định (2)

Trường hợp thứ hai WSR lt RTT + SR sent

chờ cho ACK sau khi gửi dữ liệu

trễ = 2RTT + OR+ (K-1)[SR + RTT - WSR]

Transport Layer 3-105

TCP Mocirc higravenh trễ Khởi động chậm (1)

Bacircy giờ giả sử kiacutech thước cửa sổ tăng lecircn tugravey theo quaacute trigravenh khởi động chậm

Độ trễ của một đối tượng sẽ lagrave

R

S

R

SRTTP

R

ORTTLatency P )12(2

trong đoacute P lagrave số lần TCP rảnh ở tại server

1min KQP

- trong đoacute Q lagrave số lần server rảnh nếu đối tượng đatilde khởi tạo kiacutech thước

- vagrave K lagrave số lượng cửa sổ bao trugravem đối tượng

Transport Layer 3-106

TCP Mocirc higravenh trễ Khởi động chậm (2)

RTT

initia te TCPconnection

requestobject

first w indow= S R

second w indow= 2S R

third w indow= 4S R

fourth w indow= 8S R

com pletetransm issionobject

delivered

tim e atc lient

tim e atserver

Viacute dụbull OS = 15 đoạnbull K = 4 cửa sổbull Q = 2bull P = minK-1Q = 2

Server rảnh P=2 lần

Caacutec thagravenh phần trễbull 2 RTT dagravenh cho thiết lập kết nối vagrave yecircu cầubull OR để truyền đối tượngbullthời gian server rảnh bởi vigrave khởi động chậm

Server rảnh P = minK-1Q lần

Transport Layer 3-107

TCP Mocirc higravenh trễ(3)

R

S

R

SRTTPRTT

R

O

R

SRTT

R

SRTT

R

O

idleTimeRTTR

O

P

kP

k

P

pp

)12(][2

]2[2

2delay

1

1

1

th window after the timeidle 2 1 kR

SRTT

R

S k

ementacknowledg receivesserver until

segment send tostartsserver when from time RTTR

S

window kth the transmit totime2 1

R

Sk

RTT

initia te TCPconnection

requestobject

first w indow= S R

second w indow= 2S R

third w indow= 4S R

fourth w indow= 8S R

com pletetransm issionobject

delivered

tim e atc lient

tim e atserver

Transport Layer 3-108

TCP Mocirc higravenh trễ (4)

)1(log

)1(logmin

12min

222min

222min

2

2

110

110

S

OS

Okk

S

Ok

SOk

OSSSkK

k

k

k

caacutech tiacutenh toaacuten Q tương tự (xem HW)

K = số lượng cửa sổ bao trugravem đối tượngLagravem thế nagraveo tiacutenh được K

Transport Layer 3-109

HTTP Mocirc higravenh Giả sử trang Web chứa

1 trang HTML (kiacutech thước O bits) M higravenh ảnh (mỗi caacutei kiacutech thướcO bits)

HTTP khocircng bền vững M+1 TCP kết nối Thời gian đaacutep ứng = (M+1)OR + (M+1)2RTT + tổng số thời

gian rảnh HTTP bền vững

2 RTT để yecircu cầu vagrave nhận file HTML 1 RTT để yecircu cầu vagrave nhận M higravenh ảnh Thời gian đaacutep ứng = (M+1)OR + 3RTT + tổng số thời gian

rảnh HTTP khocircng bền vững với X kết nối song song

Giả sử MX lagrave số nguyecircn 1 TCP kết nối cho file MX thiết lập caacutec kết nối song song cho caacutec higravenh ảnh Thời gian đaacutep ứng = (M+1)OR + (MX + 1)2RTT + tổng số

thời gian rảnh

Transport Layer 3-110

02468

101214161820

28Kbps

100Kbps

1Mbps

10Mbps

non-persistent

persistent

parallel non-persistent

HTTP thời gian đaacutep ứng (giacircy)RTT = 100 msec O = 5 Kbytes M=10 vagrave X=5

Với băng thocircng thấp thời gian kết nối amp đaacutep ứng trội hơn thời gian truyền

Caacutec kết nối bền vững chỉ cho sự cải thiện khocircng đaacuteng kể trecircn caacutec kết nối song song

Transport Layer 3-111

0

10

20

30

40

50

60

70

28Kbps

100Kbps

1Mbps

10Mbps

non-persistent

persistent

parallel non-persistent

HTTP thời gian đaacutep ứng (giacircy)

RTT =1 sec O = 5 Kbytes M=10 and X=5

Với RTT lớn hơn thời gian đaacutep ứng trội hơn thời gian trễ chờ thiết lập kết nốiTCP amp khởi động chậm Caacutec kết nối bền vững bacircy giờ cho thấy cải thiện rotilde rệt đặc biệtvới caacutec mạng băng thocircng cao

Transport Layer 3-112

Chương 3 Tổng kết caacutec nguyecircn lyacute của caacutec

dịch vụ lớp transport multiplexing

demultiplexing truyền dữ liệu tin cậy điều khiển luồng điều khiển tắc nghẽn

khởi tạo vagrave hiện thực trong Internet UDP TCP

Tiếp theo nghiecircn cứu xong

caacutec vấn đề ldquongoagravei biecircnrdquo (caacutec lớp application transport)

chuẩn bị vagraveo phần ldquolotildeirdquo của mạng

  • Slide 1
  • Chương 3 Lớp Transport
  • Chương 3 Nội dung trigravenh bagravey
  • Caacutec dịch vụ vagrave giao thức Transport
  • Lớp Transport với lớp network
  • Caacutec giao thức lớp transport trecircn Internet
  • Slide 7
  • Multiplexingdemultiplexing
  • Demultiplexing lagravem việc như thế nagraveo
  • Demultiplexing khocircng kết nối
  • Demultiplexing khocircng kết nối (tiếp)
  • Demultiplexing hướng kết nối
  • Demultiplexing hướng kết nối (tiếp)
  • Demultiplexing hướng kết nối Threaded Web Server
  • Slide 15
  • UDP User Datagram Protocol [RFC 768]
  • UDP (tt)
  • UDP checksum
  • Viacute dụ Checksum
  • Slide 20
  • Caacutec nguyecircn lyacute truyền dữ liệu tin cậy
  • Slide 22
  • Slide 23
  • Truyền dữ liệu tin cậy
  • Slide 25
  • Rdt10 truyền dữ liệu tin cậy trecircn 1 kecircnh truyền tin cậy
  • Rdt20 kecircnh với caacutec lỗi
  • rdt20 đặc tả FSM
  • rdt20 hoạt động khi khocircng lỗi
  • rdt20 hoạt động khi coacute lỗi
  • rdt20 coacute lỗ hổng nghiecircm trọng
  • rdt21 người gửi quản lyacute caacutec ACKNAK bị hỏng
  • Slide 33
  • rdt21 thảo luận
  • rdt22 một giao thức khocircng cần NAK
  • rdt22 gửi nhận caacutec mảnh
  • rdt30 caacutec kecircnh với lỗi vagrave mất maacutet
  • rdt30 gửi
  • hagravenh động của rdt30
  • Slide 40
  • Hiệu suất của rdt30
  • rdt30 hoạt động dừng-vagrave-chờ
  • Caacutec giao thức Pipelined
  • Pipelining độ khả dụng tăng
  • Go-Back-N
  • GBN becircn gửi mở rộng FSM
  • GBN becircn nhận mở rộng FSM
  • GBN hoạt động
  • Lặp coacute lựa chọn
  • Lặp coacute lựa chọn caacutec cửa sổ gửi nhận
  • Slide 51
  • Hoạt động của lặp coacute lựa chọn
  • Lặp coacute lựa chọn tigravenh trạng khoacute giải quyết
  • Slide 54
  • TCP Tổng quan RFCs 793 1122 1323 2018 2581
  • TCP cấu truacutec đoạn
  • Caacutec số thứ tự TCP vagrave ACK
  • TCP Round Trip Time vagraveTimeout
  • TCP Round Trip Time vagrave Timeout
  • Viacute dụ đaacutenh giaacute RTT
  • Slide 61
  • TCP truyền dữ liệu tin cậy
  • TCP caacutec sự kiện
  • TCP becircn gửi (đơn giản)
  • TCP caacutec tigravenh huống truyền lại
  • TCP caacutec tigravenh huống truyền lại (tt)
  • TCP sinh ra ACK [RFC 1122 RFC 2581]
  • Truyền lại nhanh
  • Giải thuật truyền lại nhanh
  • Slide 70
  • TCP điều khiển luồng
  • TCP điều khiển luồng caacutech lagravem
  • Slide 73
  • TCP quản lyacute kết nối
  • TCP quản lyacute kết nối (tt)
  • Slide 76
  • Slide 77
  • Slide 78
  • Caacutec nguyecircn lyacute điều khiển tắc nghẽn
  • Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 1
  • Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 2
  • Slide 82
  • Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 3
  • Slide 84
  • Caacutec caacutech tiếp cận đối với điều khiển tắc nghẽn
  • Viacute dụ điều khiển tắc nghẽn ATM ABR
  • Slide 87
  • Slide 88
  • TCP điều khiển tắc nghẽn additive tăng lecircn multiplicative giảm xuống
  • TCP điều khiển tắc nghẽn chi tiết
  • TCP khởi động chậm
  • TCP khởi động chậm (tt)
  • Tinh chế
  • Tinh chế nhận biết mất maacutet
  • Tổng kết TCP điều khiển tắc nghẽn
  • TCP điều khiển tắc nghẽn becircn gửi
  • TCP throughput
  • TCP tương lai
  • TCP tiacutenh cocircng bằng
  • Tại sao phải TCP cocircng bằng
  • TCP tiacutenh cocircng bằng (tt)
  • Mocirc higravenh trễ
  • Cửa sổ tắc nghẽn cố định (1)
  • Cửa sổ tắc nghẽn cố định (2)
  • TCP Mocirc higravenh trễ Khởi động chậm (1)
  • TCP Mocirc higravenh trễ Khởi động chậm (2)
  • TCP Mocirc higravenh trễ(3)
  • TCP Mocirc higravenh trễ (4)
  • HTTP Mocirc higravenh
  • Slide 110
  • Slide 111
  • Chương 3 Tổng kết

Transport Layer 3-4

Caacutec dịch vụ vagrave giao thức Transport cung cấp truyền thocircng logic

chạy trecircn caacutec host khaacutec nhau

caacutec giao thức transport chạy trecircn caacutec hệ thống đầu cuối phiacutea gửi cắt caacutec thocircng

điệp ứng dụng thagravenh caacutec đoạn chuyển cho lớp network

phiacutea nhận taacutei kết hợp caacutec đoạn thagravenh caacutec thocircng điệp chuyển cho lớp application

coacute nhiều hơn 1 giao thức transport dagravenh cho caacutec ứng dụng Internet TCP vagrave UDP

application

transportnetworkdata linkphysical

application

transportnetworkdata linkphysical

networkdata linkphysical

networkdata linkphysical

networkdata linkphysical

networkdata linkphysicalnetwork

data linkphysical

logical end-end transport

Transport Layer 3-5

Lớp Transport với lớp network lớp network truyền

thocircng logic giữa caacutec host

lớp transport truyền thocircng logic giữa caacutec tiến trigravenh dựa vagraveo vagrave lagravem nổi

bật caacutec dịch vụ lớp network

Tigravenh huống tự nhiecircn tương tự

12 đứa trẻ gửi thư đến 12 đứa trẻ khaacutec

caacutec tiến trigravenh = caacutec đứa trẻ

caacutec thocircng điệp = thư trong bao thư

caacutec host = caacutec gia đigravenh giao thức transport =

Ann vagrave Bill giao thức lớp network

= dịch vụ bưu điện

Transport Layer 3-6

Caacutec giao thức lớp transport trecircn Internet tin cậy truyền theo

thứ tự (TCP) điều khiển tắc nghẽn điều khiển luồng thiết lập kết nối

khocircng tin cậy truyền khocircng theo thứ tự UDP mở rộng của giao thức

IP

khocircng coacute caacutec dịch vụ bảo đảm trễ bảo đảm bandwidth

application

transportnetworkdata linkphysical

application

transportnetworkdata linkphysical

networkdata linkphysical

networkdata linkphysical

networkdata linkphysical

networkdata linkphysicalnetwork

data linkphysical

logical end-end transport

Transport Layer 3-7

Chương 3 Nội dung trigravenh bagravey

31 Caacutec dịch vụ lớp Transport

32 Multiplexing vagrave demultiplexing

33 Vận chuyển khocircng kết nối UDP

34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy

35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối

36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn

37 Điều khiển tắc nghẽn TCP

Transport Layer 3-8

Multiplexingdemultiplexing

application

transport

network

link

physical

P1 application

transport

network

link

physical

application

transport

network

link

physical

P2P3 P4P1

host 1 host 2 host 3

= tiến trigravenh = socket

vận chuyển caacutec đoạn đatilde nhận được đến đuacuteng socket

Demultiplexing tại host nhậnthu nhặt dữ liệu từ nhiều socket đoacuteng goacutei dữ liệu vớiheader (sẽ dugraveng sau đoacute chodemultiplexing)

Multiplexing tại host gửi

Transport Layer 3-9

Demultiplexing lagravem việc như thế nagraveo host nhận caacutec IP datagrams

mỗi datagram coacute địa chỉ IP nguồn vagrave IP điacutech

mỗi datagram mang 1 đoạn của lớp transport

mỗi đoạn coacute số port nguồn vagrave điacutech

host dugraveng địa chỉ IP amp số port để điều hướng đoạn đến socket thiacutech hợp

port nguồn port điacutech

32 bits

dữ liệu ứng dụng(thocircng điệp)

caacutec header fields khaacutec

dạng thức đoạn TCPUDP

Transport Layer 3-10

Demultiplexing khocircng kết nối

Tạo caacutec sockets với caacutec số port

DatagramSocket mySocket1 = new DatagramSocket(12534)

DatagramSocket mySocket2 = new DatagramSocket(12535)

UDP socket được xaacutec định bởi bộ 2

(địa chỉ IP số port điacutech)

Khi host nhận đoạn UDP kiểm tra port điacutech trong

đoạn điều hướng đoạn UDP

đến socket nagraveo phugrave hợp với số port đoacute

IP datagrams với địa chỉ IP nguồn vagravehoặc số port khaacutec nhau coacute thể được điều hướng đến cugraveng socket

Transport Layer 3-11

Demultiplexing khocircng kết nối (tiếp)

DatagramSocket serverSocket = new DatagramSocket(6428)

ClientIPB

P2

client IP A

P1P1P3

serverIP C

SP 6428

DP 9157

SP 9157

DP 6428

SP 6428

DP 5775

SP 5775

DP 6428

SP cung cấp ldquođịa chỉ trở vềrdquo

Transport Layer 3-12

Demultiplexing hướng kết nối

TCP socket được xaacutec định bởi bộ 4 địa chỉ IP nguồn số port nguồn địa chỉ IP điacutech số port điacutech

host nhận dugraveng cả 4 giaacute trị trecircn để điều hướng đoạn đến socket thiacutech hợp

Host server coacute thể hỗ trợ nhiều TCP socket đồng thời mỗi socket được xaacutec

định bởi bộ 4 của noacute

Web server coacute caacutec socket khaacutec nhau cho mỗi kết nối từ client kết nối HTTP khocircng bền

vững sẽ coacute socket khaacutec nhau cho mỗi yecircu cầu

Transport Layer 3-13

Demultiplexing hướng kết nối (tiếp)

ClientIPB

P1

client IP A

P1P2P4

serverIP C

SP 9157

DP 80

SP 9157

DP 80

P5 P6 P3

D-IPCS-IP A

D-IPC

S-IP B

SP 5775

DP 80

D-IPCS-IP B

Transport Layer 3-14

Demultiplexing hướng kết nối Threaded Web Server

ClientIPB

P1

client IP A

P1P2

serverIP C

SP 9157

DP 80

SP 9157

DP 80

P4 P3

D-IPCS-IP A

D-IPC

S-IP B

SP 5775

DP 80

D-IPCS-IP B

Transport Layer 3-15

Chương 3 Nội dung trigravenh bagravey

31 Caacutec dịch vụ lớp Transport

32 Multiplexing vagrave demultiplexing

33 Vận chuyển khocircng kết nối UDP

34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy

35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối

36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn

37 Điều khiển tắc nghẽn TCP

Transport Layer 3-16

UDP User Datagram Protocol [RFC 768]

giao thức Internet transport ldquođơn giản hoacuteardquo

dịch vụ ldquobest effortrdquo caacutec đoạn UDP coacute thể mất maacutet vận chuyển khocircng thứ

tự đến ứng dụng connectionless (khocircng

kết nối) khocircng bắt tay giữa

người nhận vagrave người gửi UDP

mỗi đoạn UDP được quản lyacute độc lập

Coacute UDP để lagravem gigrave khocircng thiết lập kết nối

(giuacutep coacute thể thecircm delay) đơn giản khocircng trạng

thaacutei kết nối tại nơi gửi nơi nhận

header của đoạn nhỏ khocircng điều khiển tắc

nghẽn UDP coacute thể gửi nhanh nhất theo mong muốn

Transport Layer 3-17

UDP (tt)

thường dugraveng cho caacutec ứng dụng streaming multimedia chịu mất maacutet cảm nhận tốc độ

ngoagravei ra UDP dugraveng DNS SNMP

truyền tin cậy trecircn UDP thecircm khả năng nagravey tại lớp application sửa lỗi

source port dest port

32 bits

dữ liệu ứng dụng

(thocircng điệp)

dạng thức đoạn UDP

length checksumĐộ dagravei

đoạn UDPbao gồm cả

header

Transport Layer 3-18

UDP checksum

Người gửi đối xử caacutec nội dung

đoạn như một chuỗi caacutec số nguyecircn 16-bit

checksum bổ sung(tổng bugrave 1) của caacutec nội dung đoạn

đặt giaacute trị checksum vagraveo trường UDP checksum

Người nhận tiacutenh toaacuten checksum của

đoạn đatilde nhận kiểm tra giaacute trị trecircn coacute bằng

với giaacute trị trong trường checksum NO ndash coacute lỗi xảy ra YES ndash khocircng coacute lỗi Nhưng coacute thể cograven lỗi

khaacutec nữa Xem tiếp phần sau hellip

Mục tiecircu kiểm tra caacutec ldquolỗirdquo (caacutec bit cờ đatilde bật lecircn) trong caacutec đoạn đatilde truyền

Transport Layer 3-19

Viacute dụ Checksum Lưu yacute

Khi cộng caacutec số một bit nhớ ở phiacutea cao nhất coacute thể sẽ phải thecircm vagraveo kết quả

Viacute dụ cộng hai số nguyecircn 16-bit

1 1 1 1 0 0 1 1 0 0 1 1 0 0 1 1 01 1 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1

1 1 0 1 1 1 0 1 1 1 0 1 1 1 0 1 1

1 1 0 1 1 1 0 1 1 1 0 1 1 1 1 0 01 0 1 0 0 0 1 0 0 0 1 0 0 0 0 1 1

bit dư

tổngchecksum

Transport Layer 3-20

Chương 3 Nội dung trigravenh bagravey

31 Caacutec dịch vụ lớp Transport

32 Multiplexing vagrave demultiplexing

33 Vận chuyển khocircng kết nối UDP

34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy

35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối

36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn

37 Điều khiển tắc nghẽn TCP

Transport Layer 3-21

Caacutec nguyecircn lyacute truyền dữ liệu tin cậy quan trọng trong caacutec lớp application transport link lagrave danh saacutech 10 vấn đề quan trọng nhất của mạng

caacutec đặc thugrave của kecircnh truyền khocircng tin cậy sẽ xaacutec định sự phức tạp của giao thức truyền dữ liệu data transfer protocol (rdt)

Transport Layer 3-22

Caacutec nguyecircn lyacute truyền dữ liệu tin cậy quan trọng trong caacutec lớp application transport link lagrave danh saacutech 10 vấn đề quan trọng nhất của mạng

caacutec đặc thugrave của kecircnh truyền khocircng tin cậy sẽ xaacutec định sự phức tạp của giao thức truyền dữ liệu data transfer protocol (rdt)

Transport Layer 3-23

Caacutec nguyecircn lyacute truyền dữ liệu tin cậy quan trọng trong caacutec lớp application transport link lagrave danh saacutech 10 vấn đề quan trọng nhất của mạng

caacutec đặc thugrave của kecircnh truyền khocircng tin cậy sẽ xaacutec định sự phức tạp của giao thức truyền dữ liệu data transfer protocol (rdt)

Transport Layer 3-24

Truyền dữ liệu tin cậy

sendside

receiveside

rdt_send() được gọi bởi lớp app Chuyển dữ liệu cần truyền

đến lớp cao hơn becircn nhận

udt_send() được gọi bởi rdt để truyền caacutec goacutei trecircn kecircnh khocircng tin cậy đến nơi

nhận

rdt_rcv() được gọi khi goacutei đến kecircnh becircn nhận

deliver_data() được gọi bởi rdt để truyền dữ liệu

đến lớp cao hơn

Transport Layer 3-25

Truyền dữ liệu tin cậy

Sẽ chỉ xem xeacutet truyền dữ liệu theo 1 hướng duy

nhất nhưng điều khiển luồng thocircng tin sẽ theo cả 2

chiều

dugraveng maacutey trạng thaacutei hữu hạn (finite state machines-FSM) để xaacutec định người gửi người nhận

trthaacutei1

trthaacutei2

sự kiện gacircy ra trạng thaacutei truyềncaacutec hagravenh động xảy ra khi truyền

trạng thaacutei khi ở ldquotrạng thaacuteirdquo nagravey thigrave

trạng thaacutei kế tiếp duy nhất được xaacutec định bởi sự kiện kế

tiếp

sự kiệncaacutec hagravenh động

Transport Layer 3-26

Rdt10 truyền dữ liệu tin cậy trecircn 1 kecircnh truyền tin cậy

kecircnh ưu tiecircn tin cậy hoagraven toagraven khocircng coacute caacutec lỗi khocircng mất maacutet caacutec goacutei

caacutec FSM phacircn biệt cho người gửi người nhận người gửi gửi dữ liệu vagraveo kecircnh ưu tiecircn người nhận nhận dữ liệu từ kecircnh ưu tiecircn

chờ gọi từ lớp trecircn packet = make_pkt(data)

udt_send(packet)

rdt_send(data)

extract (packetdata)deliver_data(data)

chờ gọi từ lớp dưới

rdt_rcv(packet)

người gửi người nhận

Transport Layer 3-27

Rdt20 kecircnh với caacutec lỗi

kecircnh ưu tiecircn coacute thể bật lecircn một số bit trong goacutei checksum để kiểm tra caacutec lỗi

Hỏi lagravem sao khocirci phục caacutec lỗi acknowledgements (ACKs) becircn nhận rotilde ragraveng thocircng

baacuteo cho becircn gửi rằng quaacute trigravenh nhận goacutei tốt negative acknowledgements (NAKs) becircn nhận rotilde ragraveng

thocircng baacuteo cho becircn gửi rằng quaacute trigravenh nhận goacutei coacute lỗi người gửi gửi lại goacutei nagraveo được xaacutec nhận lagrave NAK

caacutec cơ chế mới trong rdt20 (sau rdt10) kiểm tra lỗi nhận phản hồi caacutec thocircng điệp điều khiển (ACKNAK)

becircn nhận becircn gửi

Transport Layer 3-28

rdt20 đặc tả FSM

chờ gọi từ lớp trecircn

snkpkt = make_pkt(data checksum)udt_send(sndpkt)

extract(rcvpktdata)deliver_data(data)udt_send(ACK)

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)

rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp isNAK(rcvpkt)

udt_send(NAK)

rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)

chờ ACK hoặc NAK

chờ gọi từ lớp dưới

người gửi

người nhậnrdt_send(data)

Transport Layer 3-29

rdt20 hoạt động khi khocircng lỗi

chờ gọi từ lớp dưới

snkpkt = make_pkt(data checksum)udt_send(sndpkt)

extract(rcvpktdata)deliver_data(data)udt_send(ACK)

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)

rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp isNAK(rcvpkt)

udt_send(NAK)

rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)

chờ ACK hoặc NAK

chờ gọi từ lớp dưới

rdt_send(data)

Transport Layer 3-30

rdt20 hoạt động khi coacute lỗi

chờ gọi từ lớp dưới

snkpkt = make_pkt(data checksum)udt_send(sndpkt)

extract(rcvpktdata)deliver_data(data)udt_send(ACK)

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)

rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp isNAK(rcvpkt)

udt_send(NAK)

rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)

chờ ACK hoặc NAK

chờ gọi từ lớp dưới

rdt_send(data)

Transport Layer 3-31

rdt20 coacute lỗ hổng nghiecircm trọngĐiều gigrave xảy ra nếu

ACKNAK bị hỏng người gửi khocircng biết điều

gigrave đatilde xảy ra tại becircn nhận

khocircng thể đơn phương truyền lại khả năng trugraveng lặp

Quản lyacute trugraveng lặp người gửi truyền lại goacutei

hiện tại nếu ACKNAK bị hỏng

người gửi thecircm số thứ tự vagraveo mỗi goacutei

người nhận hủy (khocircng nhận) goacutei trugraveng lặp

Người gửi gửi 1 goacutei sau đoacute dừng lại chờ phản hồitừ người nhận

dừng vagrave chờ

Transport Layer 3-32

rdt21 người gửi quản lyacute caacutec ACKNAK bị hỏng

chờ gọi 0 từ lớp trecircn

sndpkt = make_pkt(0 data checksum)udt_send(sndpkt)

rdt_send(data)

chờ ACK hoặc NAK

0 udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) ||isNAK(rcvpkt) )

sndpkt = make_pkt(1 data checksum)udt_send(sndpkt)

rdt_send(data)

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) ||isNAK(rcvpkt) )

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt)

chờ gọi 1 từ lớp trecircn

chờ ACK hoặc NAK

1

Transport Layer 3-33

rdt21 người gửi quản lyacute caacutec ACKNAK bị hỏng

chờ 0 từ dưới

sndpkt = make_pkt(NAK chksum)udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp not corrupt(rcvpkt) ampamp has_seq0(rcvpkt)

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp has_seq1(rcvpkt)

extract(rcvpktdata)deliver_data(data)sndpkt = make_pkt(ACK chksum)udt_send(sndpkt)

chờ 1 từ dưới

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp has_seq0(rcvpkt)

extract(rcvpktdata)deliver_data(data)sndpkt = make_pkt(ACK chksum)udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp (corrupt(rcvpkt)

sndpkt = make_pkt(ACK chksum)udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp not corrupt(rcvpkt) ampamp has_seq1(rcvpkt)

rdt_rcv(rcvpkt) ampamp (corrupt(rcvpkt)

sndpkt = make_pkt(ACK chksum)udt_send(sndpkt)

sndpkt = make_pkt(NAK chksum)udt_send(sndpkt)

Transport Layer 3-34

rdt21 thảo luận

người gửi số thứ tự thecircm vagraveo

goacutei chỉ cần hai số thứ tự

(01) lagrave đủ Tại sao phải kiểm tra nếu việc

nhận ACKNAK bị hỏng

số trạng thaacutei tăng lecircn 2 lần trạng thaacutei phải ldquonhớrdquo

goacutei ldquohiện tạirdquo coacute số thứ tự lagrave 0 hay 1

người nhận phải kiểm tra coacute

nhận trugraveng goacutei khocircng trạng thaacutei chỉ rotilde coacute

hay khocircng mong chờ số thứ tự 0 hoặc 1

chuacute yacute người nhận khocircng biết ACKNAK vừa rồi của noacute coacute được người gửi nhận tốt hay khocircng

Transport Layer 3-35

rdt22 một giao thức khocircng cần NAK

chức năng giống như rdt21 chỉ dugraveng caacutec ACK thay cho NAK người nhận gửi ACK cho goacutei vừa

rồi đatilde nhận tốt người nhận phải rotilde ragraveng chegraven số thứ tự của goacutei vừa ACK

trugraveng ACK tại người gửi hậu quả giống như hagravenh động của NAK truyền lại goacutei vừa rồi

Transport Layer 3-36

rdt22 gửi nhận caacutec mảnh

Chờ cho gọi 0 từ

trecircn

sndpkt = make_pkt(0 data checksum)udt_send(sndpkt)

rdt_send(data)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) || isACK(rcvpkt1) )

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt0)

Chờ cho ACK

0

gửi phacircn mảnhFSM

Chờ cho gọi

0 từ dưới

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp has_seq1(rcvpkt)

extract(rcvpktdata)deliver_data(data)sndpkt = make_pkt(ACK1 chksum)udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp (corrupt(rcvpkt) || has_seq1(rcvpkt))

udt_send(sndpkt)

nhận phacircn mảnhFSM

Transport Layer 3-37

rdt30 caacutec kecircnh với lỗi vagrave mất maacutet

Giả định mới kecircnh ưu tiecircn cũng coacute thể lagravem mất caacutec goacutei (dữ liệu hoặc caacutec ACK) checksum số thứ tự

caacutec ACK caacutec việc truyền lại sẽ hỗ trợ nhưng khocircng đủ

Caacutech tiếp cận người gửi chờ ACK trong khoảng thời gian ldquochấp nhận đượcrdquo

truyền lại nếu khocircng nhận ACK trong khoảng thời gian nagravey

nếu goacutei (hoặc ACK) chỉ trễ (khocircng mất) truyền lại sẽ gacircy trugraveng

nhưng dugraveng số thứ tự sẽ giải quyết được

người nhận phải xaacutec định số thứ tự của goacutei vừa gửi ACK

cần bộ định thigrave đếm lugravei

Transport Layer 3-38

rdt30 gửi

sndpkt = make_pkt(0 data checksum)udt_send(sndpkt)start_timer

rdt_send(data)

Chờ cho

ACK 0

rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) ||isACK(rcvpkt1) )

Chờ cho gọi 1 từ trecircn

sndpkt = make_pkt(1 data checksum)udt_send(sndpkt)start_timer

rdt_send(data)

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt0)

rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) ||isACK(rcvpkt0) )

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt1)

stop_timerstop_timer

udt_send(sndpkt)start_timer

timeout

udt_send(sndpkt)start_timer

timeout

rdt_rcv(rcvpkt)

Chờ cho gọi 0 từ trecircn

Chờ cho

ACK 1

rdt_rcv(rcvpkt)

Transport Layer 3-39

hagravenh động của rdt30

Transport Layer 3-40

hagravenh động của rdt30

Transport Layer 3-41

Hiệu suất của rdt30

rdt30 lagravem việc được nhưng đaacutenh giaacute hiệu suất hơi rắc rối viacute dụ liecircn kết 1 Gbps trễ lan truyền giữa hai đầu cuối lagrave 15

ms goacutei 1KB

T truyền = 8kbpkt109 bsec

= 8 microsec

U sender độ khả dụng ndash

U sender

= 008

30008 = 000027

microseconds

L R

RTT + L R =

L (độ dagravei goacutei tiacutenh bằng bits)R (tốc độ truyền bps)

=

goacutei 1KB mỗi 30 msec -gt 33kBs trecircn đường truyền 1 Gbps giao thức network hạn chế việc dugraveng caacutec tagravei nguyecircn vật

lyacute

Transport Layer 3-42

rdt30 hoạt động dừng-vagrave-chờ

goacutei đầu tiecircn đatilde truyền t = 0

gửi nhận

RTT

goacutei cuối cugraveng đatilde truyền t = L R

goacutei đầu tiecircn đatilde đếngoacutei cuối cugraveng đatilde đến gửi ACK

ACK đến gửi goacutei kế tiếp t = RTT + L R

U sender

= 008

30008 = 000027

microseconds

L R

RTT + L R =

Transport Layer 3-43

Caacutec giao thức Pipelined

Pipelining người gửi cho pheacutep gửi nhiều goacutei đồng thời khocircng cần chờ baacuteo nhận được nhoacutem caacutec số thứ tự phải tăng dần phải coacute bộ nhớ đệm tại nơi gửi vagravehoặc nơi nhận

hai dạng phổ biến của caacutec giao thức pipelined go-Back-N Lặp coacute lựa chọn

Transport Layer 3-44

Pipelining độ khả dụng tăng

goacutei đầu tiecircn đatilde truyền t = 0

sender receiver

RTT

goacutei cuối cugraveng đatilde truyền t = L R

goacutei đầu tiecircn đatilde đếngoacutei cuối cugraveng đatilde đến gửi ACK

ACK đến gửi goacuteikế tiếp t = RTT + L R

bit cuối của goacutei thứ 2 đến gửi ACKbit cuối của goacutei thứ 3 đến gửi ACK

U sender

= 024

30008 = 00008

microseconds

3 L R

RTT + L R =

Độ khả dụng tăng lecircngấp 3 lần

Transport Layer 3-45

Go-Back-NBecircn gửi k-bit số thứ tự trong header của goacutei ldquocửa sổrdquo tăng lecircn đến N cho pheacutep gửi caacutec goacutei liecircn tục khocircng cần ACK

ACK(n) ACKs tất cả caacutec goacutei đến chứa số thứ tự n ndash ldquoACK tiacutech lũyrdquo coacute thể nhận caacutec ACK trugraveng lặp (xem becircn nhận)

định thigrave cho mỗi goacutei trecircn đường truyền timeout(n) gửi lại goacutei n vagrave tất cả caacutec goacutei coacute số thứ tự cao

hơn trong cửa sổ

Transport Layer 3-46

GBN becircn gửi mở rộng FSM

chờ start_timerudt_send(sndpkt[base])udt_send(sndpkt[base+1])hellipudt_send(sndpkt[nextseqnum-1])

timeout

rdt_send(data)

if (nextseqnum lt base+N) sndpkt[nextseqnum] = make_pkt(nextseqnumdatachksum) udt_send(sndpkt[nextseqnum]) if (base == nextseqnum) start_timer nextseqnum++ else refuse_data(data)

base = getacknum(rcvpkt)+1If (base == nextseqnum) stop_timer else start_timer

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)

base=1nextseqnum=1

rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)

Transport Layer 3-47

GBN becircn nhận mở rộng FSM

ACK-duy nhất luocircn luocircn gửi ACK cho goacutei đatilde nhận đuacuteng với số thứ tự xếp hạng cao nhất coacute thể sinh ra caacutec ACK trugraveng nhau chỉ cần nhớ expectedseqnum

goacutei khocircng theo thứ tự hủy -gt khocircng nhận vagraveo bộ đệm gửi lại ACK với số thứ tự xếp hạng cao nhất

chờ

udt_send(sndpkt)

default

rdt_rcv(rcvpkt) ampamp notcurrupt(rcvpkt) ampamp hasseqnum(rcvpktexpectedseqnum)

extract(rcvpktdata)deliver_data(data)sndpkt = make_pkt(expectedseqnumACKchksum)udt_send(sndpkt)expectedseqnum++

expectedseqnum=1sndpkt = make_pkt(expectedseqnumACKchksum)

Transport Layer 3-48

GBN hoạt động

Transport Layer 3-49

Lặp coacute lựa chọn

becircn nhận thocircng baacuteo đatilde nhận đuacuteng tất cả từng goacutei một đệm (buffer) caacutec goacutei nếu cần thiết

becircn gửi chỉ gửi lại caacutec goacutei nagraveo khocircng nhận được ACK becircn gửi định thigrave đối với mỗi goacutei khocircng gửi ACK

cửa sổ becircn gửi N số thứ tự liecircn tục hạn chế số thứ tự caacutec goacutei khocircng gửi ACK

Transport Layer 3-50

Lặp coacute lựa chọn caacutec cửa sổ gửi nhận

Transport Layer 3-51

Lặp coacute lựa chọn

dữ liệu từ lớp trecircn nếu số thứ tự kế tiếp sẵn

sagraveng trong cửa sổ gửi goacutei

timeout(n) gửi lại goacutei n taacutei khởi tạo

bộ định thigrave

ACK(n) trong [sendbasesendbase+N]

đaacutenh dấu goacutei n lagrave đatilde nhận nếu goacutei khocircng ACK coacute n

nhỏ nhất dịch chuyển cửa sổ base đến số thứ tự khocircng ACK kế tiếp

Gửigoacutei n trong [rcvbase

rcvbase+N-1]

gửi ACK(n) khocircng thứ tự đệm

(buffer) coacute thứ tự truyền (cũng

truyền caacutec goacutei đatilde đệm coacute thứ tự) dịch chuyển cửa sổ đến goacutei chưa nhận kế tiếp

goacutei n trong [rcvbase-Nrcvbase-1]

ACK(n)

ngược lại lờ đi

Nhận

Transport Layer 3-52

Hoạt động của lặp coacute lựa chọn

Transport Layer 3-53

Lặp coacute lựa chọntigravenh trạng khoacute giải quyếtViacute dụ Số thứ tự 0 1 2 3 Kiacutech thước cửa sổ = 3

becircn nhận khocircng thấy sự khaacutec nhau trong 2 tigravenh huống

chuyển khocircng chiacutenh xaacutec dữ liệu trugraveng lặp như dữ liệu mới trong (a)

Hỏi quan hệ giữa datildey số thứ tự vagrave kiacutech thước cửa sổ

Transport Layer 3-54

Chương 3 Nội dung trigravenh bagravey

31 Caacutec dịch vụ lớp Transport

32 Multiplexing vagrave demultiplexing

33 Vận chuyển khocircng kết nối UDP

34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy

35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối

36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn

37 Điều khiển tắc nghẽn TCP

Transport Layer 3-55

TCP Tổng quan RFCs 793 1122 1323 2018 2581

dữ liệu full duplex luồng dữ liệu đi 2 chiều

trong cugraveng một kết nối MSS maximum

segment size ndash kiacutech thước đoạn tối đa

hướng kết nối bắt tay (trao đổi caacutec

thocircng điệp điều khiển) trạng thaacutei becircn gửi becircn nhận trước khi trao đổi dữ liệu

điều khiển luồng becircn gửi sẽ khocircng lấn aacutet

becircn nhận

point-to-point một becircn gửi một becircn

nhận tin cậy dograveng byte coacute

thứ tự khocircng ldquoranh giới thocircng

điệprdquo kecircnh liecircn lạc

TCP điều khiển luồng vagrave tắc nghẽn thiết lập kiacutech thước cửa sổ

caacutec bộ đệm gửi amp nhận

socketdoor

T C Psend buffer

T C Preceive buffer

socketdoor

segm ent

applicationwrites data

applicationreads data

Transport Layer 3-56

TCP cấu truacutec đoạn

port nguồn port điacutech

32 bits

dữ liệu ứng dụng(độ dagravei thay đổi)

số thứ tự

số ACKcửa sổ nhận

con trỏ URGchecksum

FSRPAUheadlen

notused

Tugravey chọn (độ dagravei thay đổi)

URG dữ liệu khẩn cấp(thường khocircng dugraveng)

ACK ACK hợp lệ

PSH push data now(thường khocircng dugraveng)

RST SYN FINthiết lập kết nối

(caacutec lệnh thiết lậpchia nhỏ)

số byte becircn nhận sẵn sagraveng chấp nhận

đếm bởi số bytecủa dữ liệu

Internetchecksum

(giống UDP)

Transport Layer 3-57

Caacutec số thứ tự TCP vagrave ACKCaacutec số thứ tự

dograveng byte ldquođaacutenh sốrdquo byte đầu tiecircn trong dữ liệu của đoạn

caacutec ACK số thứ tự của byte

kế tiếp được chờ đợi từ phiacutea becircn kia

ACK tiacutech lũyHỏi lagravem thế nagraveo becircn

nhận quản lyacute caacutec đoạn khocircng thứ tự Trả lời TCP khocircng

đề cập tugravey thuộc người hiện thực

Host A Host B

Seq=42 ACK=79 data = lsquoCrsquo

Seq=79 ACK=43 data = lsquoCrsquo

Seq=43 ACK=80

UsernhậplsquoCrsquo

host ACKsnhận phản hồi

lsquoCrsquo

host ACKsbaacuteo nhận

lsquoCrsquo phản hồingược lại lsquoCrsquo

timetigravenh huống telnet đơn giản

Transport Layer 3-58

TCP Round Trip Time vagraveTimeout

Hỏi Lagravem thế nagraveo để thiết lập giaacute trị TCP timeout

dagravei hơn RTT khaacutec với RTT

quaacute ngắn timeout sớm truyền lại khocircng

cần thiết quaacute dagravei phản ứng

chậm đối với việc mất maacutet goacutei

Hỏi Lagravem thế nagraveo để thiết lập RTT

SampleRTT thời gian được đo từ khi truyền đoạn đến khi baacuteo nhận ACK lờ đi việc truyền lại

SampleRTT sẽ thay đổi muốn ước lượng RTT ldquomượt hơnrdquo tiacutenh trung bigravenh một số giaacute

trị đo được gần đoacute khocircng chỉ SampleRTT hiện tại

Transport Layer 3-59

TCP Round Trip Time vagrave Timeout

EstimatedRTT = (1- )EstimatedRTT + SampleRTT

giaacute trị đặc trưng = 0125

Transport Layer 3-60

Viacute dụ đaacutenh giaacute RTTRTT gaiacsumassedu to fantasiaeurecomfr

100

150

200

250

300

350

1 8 15 22 29 36 43 50 57 64 71 78 85 92 99 106

time (seconnds)

RTT

(mill

isec

onds

)

SampleRTT Estimated RTT

Transport Layer 3-61

TCP Round Trip Time vagrave Timeout

Thiết lập timeout EstimtedRTT cộng ldquohệ số dự trữ an toagravenrdquo

sự biến thiecircn lớn trong EstimatedRTT -gt hệ số dự trữ an toagraven lớn hơn ước lượng đầu tiecircn về sự biến thiecircn của SampleRTT từ EstimatedRTT

TimeoutInterval = EstimatedRTT + 4DevRTT

DevRTT = (1-)DevRTT + |SampleRTT-EstimatedRTT|

(tiecircu biểu = 025)

Sau đoacute thiết lập timeout interval

Transport Layer 3-62

TCP truyền dữ liệu tin cậy

TCP tạo dịch vụ rdt trecircn dịch vụ khocircng tin cậy IP

caacutec đoạn Pipelined caacutec ACK tiacutech lũy TCP dugraveng bộ định thigrave

truyền lại đơn

Truyền lại được kiacutech hoạt bởi caacutec sự kiện timeout caacutec ack trugraveng lặp

luacutec đầu khảo saacutet caacutec becircn gửi TCP đơn giản lờ đi caacutec ack trugraveng lặp lờ đi điều khiển luồng

điều khiển tắc nghẽn

Transport Layer 3-63

TCP caacutec sự kiệndữ liệu đatilde nhận từ ứng

dụng tạo đoạn với số thứ

tự của noacute số thứ tự lagrave số theo

byte dữ liệu đầu tiecircn khởi động bộ định thigrave

nếu chưa chạy khoảng thời gian hết

hạn TimeOutInterval

timeout gửi lại đoạn nagraveo gacircy

ra timeout khởi động lại bộ định

thigrave Ack đatilde nhận

cập nhật caacutei gigrave sẽ được ACK

khởi động bộ định thigrave nếu coacute caacutec đoạn cograven chờ

Transport Layer 3-64

TCP becircn gửi(đơn giản)

NextSeqNum = InitialSeqNum SendBase = InitialSeqNum

loop (forever) switch(event)

event data received from application above create TCP segment with sequence number NextSeqNum if (timer currently not running) start timer pass segment to IP NextSeqNum = NextSeqNum + length(data)

event timer timeout retransmit not-yet-acknowledged segment with smallest sequence number start timer

event ACK received with ACK field value of y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer

end of loop forever

Chuacute thiacutechbull SendBase-1 byte vừa được ACK tiacutech lũy Viacute dụbull SendBase-1 = 71y= 73 vigrave thế becircn nhận muốn 73+ y gt SendBase vigrave thế dữ liệu mới được chấp nhận

Transport Layer 3-65

TCP caacutec tigravenh huống truyền lại

Host A

Seq=100 20 bytes data

ACK=100

timetimeout sớm

Host B

Seq=92 8 bytes data

ACK=120

Seq=92 8 bytes data

Seq=

92

tim

eout

ACK=120

Host A

Seq=92 8 bytes data

ACK=100

loss

tim

eout

tigravenh huống mất ACK

Host B

X

Seq=92 8 bytes data

ACK=100

time

Seq=

92

tim

eout

SendBase= 100

SendBase= 120

SendBase= 120

Sendbase= 100

Transport Layer 3-66

TCP caacutec tigravenh huống truyền lại (tt)Host A

Seq=92 8 bytes data

ACK=100

loss

tim

eout

Cumulative ACK scenario

Host B

X

Seq=100 20 bytes data

ACK=120

time

SendBase= 120

Transport Layer 3-67

TCP sinh ra ACK [RFC 1122 RFC 2581]

Sự kiện tại becircn nhận

Đoạn đến với đuacuteng số thứ tự mong muốn Tất cả dữ liệu đếnđatilde được ACK

Đoạn đến với đuacuteng số thứ tự mong muốn Một đoạn khaacutec đangchờ ACK

Caacutec đoạn đến khocircng thứ tựlớn hơn số thứ tự đoạn mong muốnCoacute khoảng trống

Đoạn đếnlấp đầy từng phần hoặc toagraven bộkhoảng trống

TCP becircn nhận hagravenh động

ACK trễ Chờ đến 500mscho đoạn kế tiếp Nếu khocircng coacute đoạnkế tiếp gửi ACK

Gửi ngay một ACK tiacutech lũy chấp nhậncho cả caacutec đoạn theo thứ tự

Gửi ngay ACK trugraveng lặp chỉ thị số thứ tựđoạn của byte kế tiếp đang mong chờ

Gửi ngay ACK với điều kiện lagrave đoạnbắt đầu ngay điểm coacute khoảng trống

Transport Layer 3-68

Truyền lại nhanh

Chu kỳ Time-out thường tương đối dagravei độ trễ dagravei trước khi gửi

lại goacutei đatilde mất

Xaacutec nhận caacutec đoạn đatilde mất bằng caacutec ACK trugraveng lặp becircn gửi thường gửi

nhiều đoạn song song Nếu đoạn bị mất sẽ

xảy ra tigravenh trạng giống như nhiều ACK trugraveng nhau

Nếu becircn gửi nhận 3 ACK của cugraveng một dữ liệu noacute cho lagrave đoạn sau dữ liệu đatilde ACK bị mất Truyền lại nhanh gửi

lại đoạn trước khi bộ định thigrave hết hạn

Transport Layer 3-69

sự kiện ACK đatilde nhận với trường lagrave y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer else increment count of dup ACKs received for y if (count of dup ACKs received for y = 3) resend segment with sequence number y

Giải thuật truyền lại nhanh

một ACK trugraveng lặp cho đoạn đatilde được ACK

Truyền lại nhanh

Transport Layer 3-70

Chương 3 Nội dung trigravenh bagravey

31 Caacutec dịch vụ lớp Transport

32 Multiplexing vagrave demultiplexing

33 Vận chuyển khocircng kết nối UDP

34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy

35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối

36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn

37 Điều khiển tắc nghẽn TCP

Transport Layer 3-71

TCP điều khiển luồng

becircn nhận của kết nối TCP coacute một bộ đệm nhận

dịch vụ so trugraveng tốc độ so trugraveng tốc độ gửi với tốc độ nhận của ứng dụng

tiến trigravenh ứng dụng coacute thể chậm tại luacutec đọc bộ đệm

becircn gửi sẽ khocircng lagravem tragraven bộ đệm vigrave truyền quaacute nhiều vagrave

quaacute nhanh

điều khiển luồng

Transport Layer 3-72

TCP điều khiển luồng caacutech lagravem

(Giả sử becircn nhận TCP loại bỏ caacutec đoạn khocircng coacute thứ tự)

dự phograveng trong bộ đệm= RcvWindow

= RcvBuffer-[LastByteRcvd - LastByteRead]

Becircn nhận thocircng baacuteo khoảng dự trữ nhờ giaacute trị RcvWindow trong caacutec đoạn

Becircn gửi hạn chế dữ liệu khocircng được ACK vagraveo RcvWindow bảo đảm bộ đệm nhận

khocircng tragraven

Transport Layer 3-73

Chương 3 Nội dung trigravenh bagravey

31 Caacutec dịch vụ lớp Transport

32 Multiplexing vagrave demultiplexing

33 Vận chuyển khocircng kết nối UDP

34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy

35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối

36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn

37 Điều khiển tắc nghẽn TCP

Transport Layer 3-74

TCP quản lyacute kết nối

Chuacute yacute Becircn gửi vagrave becircn nhận TCP thiết lập ldquokết nốirdquo trước khi trao đổi dữ liệu

khởi tạo caacutec biến TCP caacutec số thứ tự đoạn thocircng tin caacutec bộ đệm điều

khiển luồng (như RcvWindow)

client người khởi xướng kết nối

Socket clientSocket = new Socket(hostnameport

number) server được tiếp xuacutec bởi

client Socket connectionSocket =

welcomeSocketaccept()

3 phương phaacutep bắt tay

Bước 1 client host gửi đoạnTCP SYN đến server xaacutec định số thứ tự khởi đầu khocircng phải dữ liệu

Bước 2 server host nhận SYN trả lời với đoạn SYNACK

server cấp phaacutet caacutec bộ đệm

xaacutec định số thứ tự khởi đầuBước 3 client nhận SYNACK trả

lời với đoạn ACK (coacute thể chứa dữ liệu)

Transport Layer 3-75

TCP quản lyacute kết nối (tt)

Đoacuteng một kết nối

client đoacuteng socket clientSocketclose()

Bước 1 client gửi đoạn điều khiển TCP FIN đến server

Bước 2 server nhận FIN trả lời với ACK Đoacuteng kết nối gửi FIN

client

FIN

server

ACK

ACK

FIN

đoacuteng

đoacuteng

đatilde đoacutengthời g

ian c

hờ

Transport Layer 3-76

TCP quản lyacute kết nối (tt)

Bước 3 client nhận FIN trả lời với ACK

Trong khoảng ldquothời gian chờrdquo ndash sẽ phản hồi với ACK để nhận caacutec FIN

Bước 4 server nhận ACK Kết nối đatilde đoacuteng

Chuacute yacute với một sửa đổi nhỏ coacute thể quản lyacute nhiều FIN đồng thời

client

FIN

server

ACK

ACK

FIN

đang đoacuteng

đang đoacuteng

đatilde đoacuteng

thời g

ian c

hờ

đatilde đoacuteng

Transport Layer 3-77

TCP quản lyacute kết nối (tt)

chu kỳ sống củaTCP client

chu kỳ sống củaTCP server

Transport Layer 3-78

Chương 3 Nội dung trigravenh bagravey

31 Caacutec dịch vụ lớp Transport

32 Multiplexing vagrave demultiplexing

33 Vận chuyển khocircng kết nối UDP

34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy

35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối

36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn

37 Điều khiển tắc nghẽn TCP

Transport Layer 3-79

Caacutec nguyecircn lyacute điều khiển tắc nghẽn

Tắc nghẽn ldquoquaacute nhiều nguồn gửi quaacute nhanh vagrave quaacute nhiều

dữ liệu đến mạngrdquo khaacutec với điều khiển luồng caacutec biểu hiện

caacutec goacutei bị mất (tragraven bộ đệm tại caacutec router) caacutec độ trễ quaacute dagravei (xếp hagraveng trong bộ đệm

của router) lagrave 1 trong 10 vấn đề nan giải nhất

Transport Layer 3-80

Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 1

2 gửi 2 nhận 1 router caacutec bộ

đệm khocircng giới hạn

khocircng coacute truyền lại

caacutec độ trễ lớn hơn khi tắc nghẽn

năng suất coacute thể đạt tối đa

unlimited shared output link buffers

Host Ain original data

Host B

out

Transport Layer 3-81

Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 2

1 router caacutec bộ đệm coacute giới hạn becircn gửi truyền lại caacutec goacutei đatilde mất

chia sẻ vocirc hạncaacutec bộ đệm ouput

Host A in dữ liệu gốc

Host B

out

in dữ liệu gốc cugraveng với dữ liệu truyền lại

Transport Layer 3-82

Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 2 luocircn luocircn

truyền lại ldquohoagraven toagravenrdquo chỉ khi mất maacutet

truyền lại vigrave trễ (khocircng mất) lagravem cho lớn hơn với cugraveng

in

out

=

in

out

gt

in

out

ldquocaacutec chi phiacuterdquo của tắc nghẽn nhiều việc (truyền lại) caacutec truyền lại khocircng cần thiết liecircn kết nhiều bản sao của

goacutei

R2

R2in

ou

t

b

R2

R2in

ou

t

a

R2

R2in

ou

t

c

R4

R3

Transport Layer 3-83

Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 3 4 người gửi caacutec đường qua nhiều hop timeouttruyền lại

in

Hỏi điều gigrave xảy ra nếu vagrave tăng lecircn

in

chia sẻ vocirc hạncaacutec bộ đệm ouput

Host Ain dữ liệu gốc

Host B

out

in dữ liệu gốc cugraveng với dữ liệu truyền lại

Transport Layer 3-84

Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 3

ldquochi phiacuterdquo khaacutec của tắc nghẽn khi caacutec goacutei bị bỏ bất kỳ ldquokhả năng truyền

upstream dugraveng cho goacutei đoacute sẽ bị latildeng phiacuterdquo

Host A

Host B

o

u

t

Transport Layer 3-85

Caacutec caacutech tiếp cận đối với điều khiển tắc nghẽn

điều khiển tắc nghẽn end-end

khocircng coacute phản hồi rotilde ragraveng từ mạng

tắc nghẽn được suy ra từ việc quan saacutet caacutec hệ thống đầu cuối coacute mất maacutet trễ

tiếp cận được quản lyacute bởi TCP

điều khiển tắc nghẽn coacute sự hỗ trợ của mạng

caacutec router cung cấp phản hồi về caacutec hệ thống đầu cuối 1 bit duy nhất chỉ thị

tắc nghẽn (SNA DECbit TCPIP ECN ATM)

tốc độ sẽ gửi được xaacutec định rotilde ragraveng

2 caacutech

Transport Layer 3-86

Viacute dụ điều khiển tắc nghẽn ATM ABR

ABR tốc độ bit sẵn sagraveng

ldquodịch vụ mềm dẻordquo nếu đường gửi ldquochưa

hếtrdquo becircn gửi sẽ dugraveng

băng thocircng sẵn sagraveng nếu đường gửi tắc

nghẽn becircn gửi điều tiết với

tốc độ tối thiểu

RM (resource management)

gửi bởi becircn gửi rải raacutec với caacutec ocirc dữ liệu

caacutec bit trong ocirc thiết lập bởi caacutec switch bit NI khocircng tăng tốc độ

(tắc nghẽn nhẹ) bit CI tắc nghẽn rotilde rệt

Caacutec ocirc RM được trả về becircn gửi từ becircn nhận với nguyecircn vẹn caacutec bit

Transport Layer 3-87

Viacute dụ điều khiển tắc nghẽn ATM ABR

trường 2-byte ER trong ocirc RM switch đatilde tắc nghẽn coacute thể coacute giaacute trị ER thấp hơn trong ocirc tốc độ gửi do đoacute coacute thể được hỗ trợ tối đa trecircn đường

EFCI bit trong caacutec ocirc dữ liệu được cagravei giaacute trị 1 trong switch đatilde tắc nghẽn nếu ocirc dữ liệu đứng trước ocirc RM coacute cagravei EFCI becircn gửi sẽ cagravei

bit CI trong ocirc RM trả về

Transport Layer 3-88

Chương 3 Nội dung trigravenh bagravey

31 Caacutec dịch vụ lớp Transport

32 Multiplexing vagrave demultiplexing

33 Vận chuyển khocircng kết nối UDP

34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy

35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối

36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn

37 Điều khiển tắc nghẽn TCP

Transport Layer 3-89

TCP điều khiển tắc nghẽn additive tăng lecircn multiplicative giảm xuống

8 Kbytes

16 Kbytes

24 Kbytes

time

congestionwindow

Caacutech tiếp cận tăng tốc độ truyền (kiacutech thước cửa sổ) tigravem khả năng băng thocircng coacute thể cho đến khi coacute mất maacutet xảy ra additive tăng lecircn tăng CongWin bởi 1 MSS

mỗi RTT cho đến khi coacute mất maacutet xảy ra multiplicative giảm xuống bỏ CongWin trong

nửa giai đoạn sau khi mất maacutet

timekiacutech

thư

ớc

cửa

sổ

tắc

nghẽ

n

Tigravem kiếm băng thocircng

Transport Layer 3-90

TCP điều khiển tắc nghẽn chi tiết

becircn gửi hạn chế việc truyền LastByteSent-LastByteAcked

CongWin Cocircng thức

CongWin thay đổi chức năng lagrave nhận biết tắc nghẽn trecircn mạng

Lagravem thế nagraveo becircn gửi nhận biết tắc nghẽn

mất maacutet xảy ra = timeout hoặc 3 ack trugraveng lặp

becircn gửi giảm tốc độ (CongWin) sau khi mất maacutet xảy ra

3 cơ chế AIMD khởi động chậm thận trọng sau khi coacute

caacutec sự kiện timeout

tốc độ = CongWin

RTT Bytess

Transport Layer 3-91

TCP khởi động chậm

Khi kết nối bắt đầu CongWin = 1 MSS Viacute dụ MSS = 500 bytes

amp RTT = 200 ms tốc độ khởi tạo = 20

kbps

băng thocircng sẵn sagraveng coacute thể gtgt MSSRTT mong muốn nhanh

choacuteng tăng tốc lecircn tốc độ coacute thể đaacutep ứng

Khi kết nối bắt đầu tăng tốc lecircn rất nhanh cho đến khi sự cố mất maacutet xảy ra đầu tiecircn

Transport Layer 3-92

TCP khởi động chậm (tt)

Khi kết nối bắt đầu tăng tốc lecircn rất nhanh cho đến khi sự cố mất maacutet xảy ra đầu tiecircn nhacircn đocirci CongWin mỗi

RTT hoagraven thagravenh nhờ tăng CongWin ứng với mỗi ACK đatilde nhận

Tổng kết tốc độ khởi đầu lagrave chậm nhưng sau đoacute tăng tốc rất nhanh

Host A

1 đoạn

RTT

Host B

thời gian

2 đoạn

4 đoạn

Transport Layer 3-93

Tinh chếHỏi Khi nagraveo việc tăng

tốc trở thagravenh tuyến tiacutenh

Trả lời Khi CongWin đạt đến 12 giaacute trị của noacute trước khi timeout

Hiện thực Ngưỡng thay đổi Tại thời điểm coacute sự cố

mất maacutet ngưỡng được cagravei giaacute trị bằng frac12 của CongWin ngay trước đoacute

Transport Layer 3-94

Tinh chế nhận biết mất maacutet

Sau 3 ACK trugraveng lặp CongWin sẽ giảm 12 kiacutech thước cửa sổ

tăng tuyến tiacutenh nhưng sau sự cố

timeout CongWin thay giaacute trị

bằng 1 MSS kiacutech thước cửa sổ

tăng cấp lũy thừa khi đến một ngưỡng

thigrave tăng tuyến tiacutenh

3 ACK trugraveng nhau chỉ ra khả năng truyền của mạng timeout chỉ thị ldquonhiều cảnh baacuteordquo về tigravenh huống tắc nghẽn

Nguyecircn lyacute

Transport Layer 3-95

Tổng kết TCP điều khiển tắc nghẽn

Khi CongWin dưới Threshold becircn gửi đang trong giai đoạn khởi động chậm kiacutech thước cửa sổ tăng nhanh theo cấp lũy thừa

Khi CongWin trecircn Threshold becircn gửi đang trong giai đoạn traacutenh tắc nghẽn kiacutech thước cửa sổ tăng nhanh theo cấp tuyến tiacutenh

Khi coacute 3 ACK trugraveng lặp xảy ra Threshold = CongWin2 vagrave CongWin = Threshold

Khi timeout xảy ra Threshold = CongWin2 vagrave CongWin = 1 MSS

Transport Layer 3-96

TCP điều khiển tắc nghẽn becircn gửi

Trạng thaacutei Sự kiện TCP becircn gửi hagravenh động Diễn giải

Slow Start (SS)-Khởi động chậm

ACK baacuteo nhận cho dữ liệu chưa ACK trước đoacute

CongWin = CongWin + MSS If (CongWin gt Threshold) cagravei đặt trạng thaacutei ldquoTraacutenh tắc nghẽnrdquo

Hậu quả lagravem tăng gấp đocirci CongWin mỗi RTT

CongestionAvoidance (CA) ndashTraacutenh tắc nghẽn

ACK baacuteo nhận cho dữ liệu chưa ACK trước đoacute

CongWin = CongWin+MSS (MSSCongWin)

Additive tăng lecircn lagravem tăng CongWin lecircn 1 MSS mỗi RTT

SS hoặc CA Sự cố mất maacutet xảy ra khi thấy coacute 3 ACK trugraveng lặp

Threshold = CongWin2 CongWin = Thresholdcagravei đặt trạng thaacutei ldquoTraacutenh tắc nghẽnrdquo

Khocirci phục nhanh hiện thực giảm xuống multiplicative CongWin sẽ khocircng giảm xuống dưới 1 MSS

SS hoặc CA Timeout Threshold = CongWin2 CongWin = 1 MSScagravei đặt trạng thaacutei ldquoKhởi động chậmrdquo

Vagraveo chế độ ldquoKhởi động chậmrdquo

SS hoặc CA ACK trugraveng lặp

Đếm ACK tăng lecircn cho đoạn vừa được ACK

CongWin vagrave Threshold khocircng thay đổi

Transport Layer 3-97

TCP throughput

Throughout trung bigravenh của TCP biểu diễn qua kiacutech thước của sổ vagrave RTT Bỏ qua trạng thaacutei ldquoKhởi động chậmrdquo

Cho W lagrave kiacutech thước cửa sổ khi coacute mất maacutet xảy ra

Khi kiacutech thước cửa sổ = W lưu lượng = WRTT

Chỉ ngay sau khi mất maacutet cửa sổ giảm xuống = W2 lưu lượng = W2RTT

throughout trung bigravenh 075 WRTT

Transport Layer 3-98

TCP tương lai

Viacute dụ caacutec đoạn dagravei 1500 byte RTT 100ms lưu lượng 10 Gbps

Kiacutech thước cửa sổ yecircu cầu W = 83333 đoạn trecircn đường truyền

Lưu lượng trong caacutec trường hợp mất maacutet

L = 210-10

Phiecircn bản mới của TCP dagravenh cho nhu cầu tốc độ cao

LRTT

MSS221

Transport Layer 3-99

Mục tiecircu nếu K phiecircn lagravem việc TCP chia sẻ kết nối cổ chai của băng thocircng lagrave R mỗi phiecircn coacute tốc độ trung bigravenh lagrave RK

TCP kết nối 1

router cổ chaikhả năng R

TCP kết nối 2

TCP tiacutenh cocircng bằng

Transport Layer 3-100

Tại sao phải TCP cocircng bằng

2 phiecircn lagravem việc cạnh tranh nhau Additive tăng lưu lượng tăng multiplicative giảm lưu lượng tương xứng

R

R

chia sẻ băng thocircng bằng nhau

Connection 1 throughputConnect

ion 2

th

roughput

traacutenh tắc nghẽn additive tăng lecircnmất maacutet giảm cửa sổ bằng 12

traacutenh tắc nghẽn additive tăng lecircnmất maacutet giảm cửa sổ bằng 12

Transport Layer 3-101

TCP tiacutenh cocircng bằng (tt)

Tiacutenh cocircng bằng amp UDP nhiều ứng dụng

thường khocircng dugraveng TCP khocircng muốn tốc độ bị

điều tiết do điều khiển tắc nghẽn

Thay bằng dugraveng UDP truyền audiovideo với

tốc độ ổn định chịu được mất maacutet

Nghiecircn cứu giao thức thacircn thiện với TCP

Tiacutenh cocircng bằng amp caacutec kết nối TCP song song

khocircng coacute gigrave ngăn cản việc ứng dụng mở caacutec kết nối song song giữa 2 host

Trigravenh duyệt Web lagravem giống như thế

Viacute dụ tốc độ R hỗ trợ 9 kết nối ứng dụng mới yecircu cầu 1

TCP coacute tốc độ R10 ứng dụng mới yecircu cầu 11

TCP coacute tốc độ R2

Transport Layer 3-102

Mocirc higravenh trễ

Hỏi Mất bao lacircu để nhận 1 đối tượng từ Web server sau khi gửi yecircu cầu

Bỏ qua tắc nghẽn trễ bị ảnh hưởng bởi

thiết lập kết nối TCP trễ truyền dữ liệu khởi động chậm

Notation caacutec giả định Giả sử một kết nối giữa

client vagrave server coacute tốc độ R

S MSS (bits) O kiacutech thước đối tượng

(bits) khocircng truyền lại (khocircng

mất maacutet khocircng hỏng)

Kiacutech thước cửa sổ Giả định 1 cửa sổ tắc

nghẽn cố định coacute W đoạn Sau đoacute cửa sổ thay đổi

mocirc higravenh khởi động chậm

Transport Layer 3-103

Cửa sổ tắc nghẽn cố định (1)

Trường hợp đầu tiecircnWSR gt RTT + SR cho

đoạn đầu tiecircn trong cửa sổ trả về trước khi cửa sổ dữ liệu gửi ACK

trễ = 2RTT + OR

Transport Layer 3-104

Cửa sổ tắc nghẽn cố định (2)

Trường hợp thứ hai WSR lt RTT + SR sent

chờ cho ACK sau khi gửi dữ liệu

trễ = 2RTT + OR+ (K-1)[SR + RTT - WSR]

Transport Layer 3-105

TCP Mocirc higravenh trễ Khởi động chậm (1)

Bacircy giờ giả sử kiacutech thước cửa sổ tăng lecircn tugravey theo quaacute trigravenh khởi động chậm

Độ trễ của một đối tượng sẽ lagrave

R

S

R

SRTTP

R

ORTTLatency P )12(2

trong đoacute P lagrave số lần TCP rảnh ở tại server

1min KQP

- trong đoacute Q lagrave số lần server rảnh nếu đối tượng đatilde khởi tạo kiacutech thước

- vagrave K lagrave số lượng cửa sổ bao trugravem đối tượng

Transport Layer 3-106

TCP Mocirc higravenh trễ Khởi động chậm (2)

RTT

initia te TCPconnection

requestobject

first w indow= S R

second w indow= 2S R

third w indow= 4S R

fourth w indow= 8S R

com pletetransm issionobject

delivered

tim e atc lient

tim e atserver

Viacute dụbull OS = 15 đoạnbull K = 4 cửa sổbull Q = 2bull P = minK-1Q = 2

Server rảnh P=2 lần

Caacutec thagravenh phần trễbull 2 RTT dagravenh cho thiết lập kết nối vagrave yecircu cầubull OR để truyền đối tượngbullthời gian server rảnh bởi vigrave khởi động chậm

Server rảnh P = minK-1Q lần

Transport Layer 3-107

TCP Mocirc higravenh trễ(3)

R

S

R

SRTTPRTT

R

O

R

SRTT

R

SRTT

R

O

idleTimeRTTR

O

P

kP

k

P

pp

)12(][2

]2[2

2delay

1

1

1

th window after the timeidle 2 1 kR

SRTT

R

S k

ementacknowledg receivesserver until

segment send tostartsserver when from time RTTR

S

window kth the transmit totime2 1

R

Sk

RTT

initia te TCPconnection

requestobject

first w indow= S R

second w indow= 2S R

third w indow= 4S R

fourth w indow= 8S R

com pletetransm issionobject

delivered

tim e atc lient

tim e atserver

Transport Layer 3-108

TCP Mocirc higravenh trễ (4)

)1(log

)1(logmin

12min

222min

222min

2

2

110

110

S

OS

Okk

S

Ok

SOk

OSSSkK

k

k

k

caacutech tiacutenh toaacuten Q tương tự (xem HW)

K = số lượng cửa sổ bao trugravem đối tượngLagravem thế nagraveo tiacutenh được K

Transport Layer 3-109

HTTP Mocirc higravenh Giả sử trang Web chứa

1 trang HTML (kiacutech thước O bits) M higravenh ảnh (mỗi caacutei kiacutech thướcO bits)

HTTP khocircng bền vững M+1 TCP kết nối Thời gian đaacutep ứng = (M+1)OR + (M+1)2RTT + tổng số thời

gian rảnh HTTP bền vững

2 RTT để yecircu cầu vagrave nhận file HTML 1 RTT để yecircu cầu vagrave nhận M higravenh ảnh Thời gian đaacutep ứng = (M+1)OR + 3RTT + tổng số thời gian

rảnh HTTP khocircng bền vững với X kết nối song song

Giả sử MX lagrave số nguyecircn 1 TCP kết nối cho file MX thiết lập caacutec kết nối song song cho caacutec higravenh ảnh Thời gian đaacutep ứng = (M+1)OR + (MX + 1)2RTT + tổng số

thời gian rảnh

Transport Layer 3-110

02468

101214161820

28Kbps

100Kbps

1Mbps

10Mbps

non-persistent

persistent

parallel non-persistent

HTTP thời gian đaacutep ứng (giacircy)RTT = 100 msec O = 5 Kbytes M=10 vagrave X=5

Với băng thocircng thấp thời gian kết nối amp đaacutep ứng trội hơn thời gian truyền

Caacutec kết nối bền vững chỉ cho sự cải thiện khocircng đaacuteng kể trecircn caacutec kết nối song song

Transport Layer 3-111

0

10

20

30

40

50

60

70

28Kbps

100Kbps

1Mbps

10Mbps

non-persistent

persistent

parallel non-persistent

HTTP thời gian đaacutep ứng (giacircy)

RTT =1 sec O = 5 Kbytes M=10 and X=5

Với RTT lớn hơn thời gian đaacutep ứng trội hơn thời gian trễ chờ thiết lập kết nốiTCP amp khởi động chậm Caacutec kết nối bền vững bacircy giờ cho thấy cải thiện rotilde rệt đặc biệtvới caacutec mạng băng thocircng cao

Transport Layer 3-112

Chương 3 Tổng kết caacutec nguyecircn lyacute của caacutec

dịch vụ lớp transport multiplexing

demultiplexing truyền dữ liệu tin cậy điều khiển luồng điều khiển tắc nghẽn

khởi tạo vagrave hiện thực trong Internet UDP TCP

Tiếp theo nghiecircn cứu xong

caacutec vấn đề ldquongoagravei biecircnrdquo (caacutec lớp application transport)

chuẩn bị vagraveo phần ldquolotildeirdquo của mạng

  • Slide 1
  • Chương 3 Lớp Transport
  • Chương 3 Nội dung trigravenh bagravey
  • Caacutec dịch vụ vagrave giao thức Transport
  • Lớp Transport với lớp network
  • Caacutec giao thức lớp transport trecircn Internet
  • Slide 7
  • Multiplexingdemultiplexing
  • Demultiplexing lagravem việc như thế nagraveo
  • Demultiplexing khocircng kết nối
  • Demultiplexing khocircng kết nối (tiếp)
  • Demultiplexing hướng kết nối
  • Demultiplexing hướng kết nối (tiếp)
  • Demultiplexing hướng kết nối Threaded Web Server
  • Slide 15
  • UDP User Datagram Protocol [RFC 768]
  • UDP (tt)
  • UDP checksum
  • Viacute dụ Checksum
  • Slide 20
  • Caacutec nguyecircn lyacute truyền dữ liệu tin cậy
  • Slide 22
  • Slide 23
  • Truyền dữ liệu tin cậy
  • Slide 25
  • Rdt10 truyền dữ liệu tin cậy trecircn 1 kecircnh truyền tin cậy
  • Rdt20 kecircnh với caacutec lỗi
  • rdt20 đặc tả FSM
  • rdt20 hoạt động khi khocircng lỗi
  • rdt20 hoạt động khi coacute lỗi
  • rdt20 coacute lỗ hổng nghiecircm trọng
  • rdt21 người gửi quản lyacute caacutec ACKNAK bị hỏng
  • Slide 33
  • rdt21 thảo luận
  • rdt22 một giao thức khocircng cần NAK
  • rdt22 gửi nhận caacutec mảnh
  • rdt30 caacutec kecircnh với lỗi vagrave mất maacutet
  • rdt30 gửi
  • hagravenh động của rdt30
  • Slide 40
  • Hiệu suất của rdt30
  • rdt30 hoạt động dừng-vagrave-chờ
  • Caacutec giao thức Pipelined
  • Pipelining độ khả dụng tăng
  • Go-Back-N
  • GBN becircn gửi mở rộng FSM
  • GBN becircn nhận mở rộng FSM
  • GBN hoạt động
  • Lặp coacute lựa chọn
  • Lặp coacute lựa chọn caacutec cửa sổ gửi nhận
  • Slide 51
  • Hoạt động của lặp coacute lựa chọn
  • Lặp coacute lựa chọn tigravenh trạng khoacute giải quyết
  • Slide 54
  • TCP Tổng quan RFCs 793 1122 1323 2018 2581
  • TCP cấu truacutec đoạn
  • Caacutec số thứ tự TCP vagrave ACK
  • TCP Round Trip Time vagraveTimeout
  • TCP Round Trip Time vagrave Timeout
  • Viacute dụ đaacutenh giaacute RTT
  • Slide 61
  • TCP truyền dữ liệu tin cậy
  • TCP caacutec sự kiện
  • TCP becircn gửi (đơn giản)
  • TCP caacutec tigravenh huống truyền lại
  • TCP caacutec tigravenh huống truyền lại (tt)
  • TCP sinh ra ACK [RFC 1122 RFC 2581]
  • Truyền lại nhanh
  • Giải thuật truyền lại nhanh
  • Slide 70
  • TCP điều khiển luồng
  • TCP điều khiển luồng caacutech lagravem
  • Slide 73
  • TCP quản lyacute kết nối
  • TCP quản lyacute kết nối (tt)
  • Slide 76
  • Slide 77
  • Slide 78
  • Caacutec nguyecircn lyacute điều khiển tắc nghẽn
  • Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 1
  • Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 2
  • Slide 82
  • Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 3
  • Slide 84
  • Caacutec caacutech tiếp cận đối với điều khiển tắc nghẽn
  • Viacute dụ điều khiển tắc nghẽn ATM ABR
  • Slide 87
  • Slide 88
  • TCP điều khiển tắc nghẽn additive tăng lecircn multiplicative giảm xuống
  • TCP điều khiển tắc nghẽn chi tiết
  • TCP khởi động chậm
  • TCP khởi động chậm (tt)
  • Tinh chế
  • Tinh chế nhận biết mất maacutet
  • Tổng kết TCP điều khiển tắc nghẽn
  • TCP điều khiển tắc nghẽn becircn gửi
  • TCP throughput
  • TCP tương lai
  • TCP tiacutenh cocircng bằng
  • Tại sao phải TCP cocircng bằng
  • TCP tiacutenh cocircng bằng (tt)
  • Mocirc higravenh trễ
  • Cửa sổ tắc nghẽn cố định (1)
  • Cửa sổ tắc nghẽn cố định (2)
  • TCP Mocirc higravenh trễ Khởi động chậm (1)
  • TCP Mocirc higravenh trễ Khởi động chậm (2)
  • TCP Mocirc higravenh trễ(3)
  • TCP Mocirc higravenh trễ (4)
  • HTTP Mocirc higravenh
  • Slide 110
  • Slide 111
  • Chương 3 Tổng kết

Transport Layer 3-5

Lớp Transport với lớp network lớp network truyền

thocircng logic giữa caacutec host

lớp transport truyền thocircng logic giữa caacutec tiến trigravenh dựa vagraveo vagrave lagravem nổi

bật caacutec dịch vụ lớp network

Tigravenh huống tự nhiecircn tương tự

12 đứa trẻ gửi thư đến 12 đứa trẻ khaacutec

caacutec tiến trigravenh = caacutec đứa trẻ

caacutec thocircng điệp = thư trong bao thư

caacutec host = caacutec gia đigravenh giao thức transport =

Ann vagrave Bill giao thức lớp network

= dịch vụ bưu điện

Transport Layer 3-6

Caacutec giao thức lớp transport trecircn Internet tin cậy truyền theo

thứ tự (TCP) điều khiển tắc nghẽn điều khiển luồng thiết lập kết nối

khocircng tin cậy truyền khocircng theo thứ tự UDP mở rộng của giao thức

IP

khocircng coacute caacutec dịch vụ bảo đảm trễ bảo đảm bandwidth

application

transportnetworkdata linkphysical

application

transportnetworkdata linkphysical

networkdata linkphysical

networkdata linkphysical

networkdata linkphysical

networkdata linkphysicalnetwork

data linkphysical

logical end-end transport

Transport Layer 3-7

Chương 3 Nội dung trigravenh bagravey

31 Caacutec dịch vụ lớp Transport

32 Multiplexing vagrave demultiplexing

33 Vận chuyển khocircng kết nối UDP

34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy

35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối

36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn

37 Điều khiển tắc nghẽn TCP

Transport Layer 3-8

Multiplexingdemultiplexing

application

transport

network

link

physical

P1 application

transport

network

link

physical

application

transport

network

link

physical

P2P3 P4P1

host 1 host 2 host 3

= tiến trigravenh = socket

vận chuyển caacutec đoạn đatilde nhận được đến đuacuteng socket

Demultiplexing tại host nhậnthu nhặt dữ liệu từ nhiều socket đoacuteng goacutei dữ liệu vớiheader (sẽ dugraveng sau đoacute chodemultiplexing)

Multiplexing tại host gửi

Transport Layer 3-9

Demultiplexing lagravem việc như thế nagraveo host nhận caacutec IP datagrams

mỗi datagram coacute địa chỉ IP nguồn vagrave IP điacutech

mỗi datagram mang 1 đoạn của lớp transport

mỗi đoạn coacute số port nguồn vagrave điacutech

host dugraveng địa chỉ IP amp số port để điều hướng đoạn đến socket thiacutech hợp

port nguồn port điacutech

32 bits

dữ liệu ứng dụng(thocircng điệp)

caacutec header fields khaacutec

dạng thức đoạn TCPUDP

Transport Layer 3-10

Demultiplexing khocircng kết nối

Tạo caacutec sockets với caacutec số port

DatagramSocket mySocket1 = new DatagramSocket(12534)

DatagramSocket mySocket2 = new DatagramSocket(12535)

UDP socket được xaacutec định bởi bộ 2

(địa chỉ IP số port điacutech)

Khi host nhận đoạn UDP kiểm tra port điacutech trong

đoạn điều hướng đoạn UDP

đến socket nagraveo phugrave hợp với số port đoacute

IP datagrams với địa chỉ IP nguồn vagravehoặc số port khaacutec nhau coacute thể được điều hướng đến cugraveng socket

Transport Layer 3-11

Demultiplexing khocircng kết nối (tiếp)

DatagramSocket serverSocket = new DatagramSocket(6428)

ClientIPB

P2

client IP A

P1P1P3

serverIP C

SP 6428

DP 9157

SP 9157

DP 6428

SP 6428

DP 5775

SP 5775

DP 6428

SP cung cấp ldquođịa chỉ trở vềrdquo

Transport Layer 3-12

Demultiplexing hướng kết nối

TCP socket được xaacutec định bởi bộ 4 địa chỉ IP nguồn số port nguồn địa chỉ IP điacutech số port điacutech

host nhận dugraveng cả 4 giaacute trị trecircn để điều hướng đoạn đến socket thiacutech hợp

Host server coacute thể hỗ trợ nhiều TCP socket đồng thời mỗi socket được xaacutec

định bởi bộ 4 của noacute

Web server coacute caacutec socket khaacutec nhau cho mỗi kết nối từ client kết nối HTTP khocircng bền

vững sẽ coacute socket khaacutec nhau cho mỗi yecircu cầu

Transport Layer 3-13

Demultiplexing hướng kết nối (tiếp)

ClientIPB

P1

client IP A

P1P2P4

serverIP C

SP 9157

DP 80

SP 9157

DP 80

P5 P6 P3

D-IPCS-IP A

D-IPC

S-IP B

SP 5775

DP 80

D-IPCS-IP B

Transport Layer 3-14

Demultiplexing hướng kết nối Threaded Web Server

ClientIPB

P1

client IP A

P1P2

serverIP C

SP 9157

DP 80

SP 9157

DP 80

P4 P3

D-IPCS-IP A

D-IPC

S-IP B

SP 5775

DP 80

D-IPCS-IP B

Transport Layer 3-15

Chương 3 Nội dung trigravenh bagravey

31 Caacutec dịch vụ lớp Transport

32 Multiplexing vagrave demultiplexing

33 Vận chuyển khocircng kết nối UDP

34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy

35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối

36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn

37 Điều khiển tắc nghẽn TCP

Transport Layer 3-16

UDP User Datagram Protocol [RFC 768]

giao thức Internet transport ldquođơn giản hoacuteardquo

dịch vụ ldquobest effortrdquo caacutec đoạn UDP coacute thể mất maacutet vận chuyển khocircng thứ

tự đến ứng dụng connectionless (khocircng

kết nối) khocircng bắt tay giữa

người nhận vagrave người gửi UDP

mỗi đoạn UDP được quản lyacute độc lập

Coacute UDP để lagravem gigrave khocircng thiết lập kết nối

(giuacutep coacute thể thecircm delay) đơn giản khocircng trạng

thaacutei kết nối tại nơi gửi nơi nhận

header của đoạn nhỏ khocircng điều khiển tắc

nghẽn UDP coacute thể gửi nhanh nhất theo mong muốn

Transport Layer 3-17

UDP (tt)

thường dugraveng cho caacutec ứng dụng streaming multimedia chịu mất maacutet cảm nhận tốc độ

ngoagravei ra UDP dugraveng DNS SNMP

truyền tin cậy trecircn UDP thecircm khả năng nagravey tại lớp application sửa lỗi

source port dest port

32 bits

dữ liệu ứng dụng

(thocircng điệp)

dạng thức đoạn UDP

length checksumĐộ dagravei

đoạn UDPbao gồm cả

header

Transport Layer 3-18

UDP checksum

Người gửi đối xử caacutec nội dung

đoạn như một chuỗi caacutec số nguyecircn 16-bit

checksum bổ sung(tổng bugrave 1) của caacutec nội dung đoạn

đặt giaacute trị checksum vagraveo trường UDP checksum

Người nhận tiacutenh toaacuten checksum của

đoạn đatilde nhận kiểm tra giaacute trị trecircn coacute bằng

với giaacute trị trong trường checksum NO ndash coacute lỗi xảy ra YES ndash khocircng coacute lỗi Nhưng coacute thể cograven lỗi

khaacutec nữa Xem tiếp phần sau hellip

Mục tiecircu kiểm tra caacutec ldquolỗirdquo (caacutec bit cờ đatilde bật lecircn) trong caacutec đoạn đatilde truyền

Transport Layer 3-19

Viacute dụ Checksum Lưu yacute

Khi cộng caacutec số một bit nhớ ở phiacutea cao nhất coacute thể sẽ phải thecircm vagraveo kết quả

Viacute dụ cộng hai số nguyecircn 16-bit

1 1 1 1 0 0 1 1 0 0 1 1 0 0 1 1 01 1 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1

1 1 0 1 1 1 0 1 1 1 0 1 1 1 0 1 1

1 1 0 1 1 1 0 1 1 1 0 1 1 1 1 0 01 0 1 0 0 0 1 0 0 0 1 0 0 0 0 1 1

bit dư

tổngchecksum

Transport Layer 3-20

Chương 3 Nội dung trigravenh bagravey

31 Caacutec dịch vụ lớp Transport

32 Multiplexing vagrave demultiplexing

33 Vận chuyển khocircng kết nối UDP

34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy

35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối

36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn

37 Điều khiển tắc nghẽn TCP

Transport Layer 3-21

Caacutec nguyecircn lyacute truyền dữ liệu tin cậy quan trọng trong caacutec lớp application transport link lagrave danh saacutech 10 vấn đề quan trọng nhất của mạng

caacutec đặc thugrave của kecircnh truyền khocircng tin cậy sẽ xaacutec định sự phức tạp của giao thức truyền dữ liệu data transfer protocol (rdt)

Transport Layer 3-22

Caacutec nguyecircn lyacute truyền dữ liệu tin cậy quan trọng trong caacutec lớp application transport link lagrave danh saacutech 10 vấn đề quan trọng nhất của mạng

caacutec đặc thugrave của kecircnh truyền khocircng tin cậy sẽ xaacutec định sự phức tạp của giao thức truyền dữ liệu data transfer protocol (rdt)

Transport Layer 3-23

Caacutec nguyecircn lyacute truyền dữ liệu tin cậy quan trọng trong caacutec lớp application transport link lagrave danh saacutech 10 vấn đề quan trọng nhất của mạng

caacutec đặc thugrave của kecircnh truyền khocircng tin cậy sẽ xaacutec định sự phức tạp của giao thức truyền dữ liệu data transfer protocol (rdt)

Transport Layer 3-24

Truyền dữ liệu tin cậy

sendside

receiveside

rdt_send() được gọi bởi lớp app Chuyển dữ liệu cần truyền

đến lớp cao hơn becircn nhận

udt_send() được gọi bởi rdt để truyền caacutec goacutei trecircn kecircnh khocircng tin cậy đến nơi

nhận

rdt_rcv() được gọi khi goacutei đến kecircnh becircn nhận

deliver_data() được gọi bởi rdt để truyền dữ liệu

đến lớp cao hơn

Transport Layer 3-25

Truyền dữ liệu tin cậy

Sẽ chỉ xem xeacutet truyền dữ liệu theo 1 hướng duy

nhất nhưng điều khiển luồng thocircng tin sẽ theo cả 2

chiều

dugraveng maacutey trạng thaacutei hữu hạn (finite state machines-FSM) để xaacutec định người gửi người nhận

trthaacutei1

trthaacutei2

sự kiện gacircy ra trạng thaacutei truyềncaacutec hagravenh động xảy ra khi truyền

trạng thaacutei khi ở ldquotrạng thaacuteirdquo nagravey thigrave

trạng thaacutei kế tiếp duy nhất được xaacutec định bởi sự kiện kế

tiếp

sự kiệncaacutec hagravenh động

Transport Layer 3-26

Rdt10 truyền dữ liệu tin cậy trecircn 1 kecircnh truyền tin cậy

kecircnh ưu tiecircn tin cậy hoagraven toagraven khocircng coacute caacutec lỗi khocircng mất maacutet caacutec goacutei

caacutec FSM phacircn biệt cho người gửi người nhận người gửi gửi dữ liệu vagraveo kecircnh ưu tiecircn người nhận nhận dữ liệu từ kecircnh ưu tiecircn

chờ gọi từ lớp trecircn packet = make_pkt(data)

udt_send(packet)

rdt_send(data)

extract (packetdata)deliver_data(data)

chờ gọi từ lớp dưới

rdt_rcv(packet)

người gửi người nhận

Transport Layer 3-27

Rdt20 kecircnh với caacutec lỗi

kecircnh ưu tiecircn coacute thể bật lecircn một số bit trong goacutei checksum để kiểm tra caacutec lỗi

Hỏi lagravem sao khocirci phục caacutec lỗi acknowledgements (ACKs) becircn nhận rotilde ragraveng thocircng

baacuteo cho becircn gửi rằng quaacute trigravenh nhận goacutei tốt negative acknowledgements (NAKs) becircn nhận rotilde ragraveng

thocircng baacuteo cho becircn gửi rằng quaacute trigravenh nhận goacutei coacute lỗi người gửi gửi lại goacutei nagraveo được xaacutec nhận lagrave NAK

caacutec cơ chế mới trong rdt20 (sau rdt10) kiểm tra lỗi nhận phản hồi caacutec thocircng điệp điều khiển (ACKNAK)

becircn nhận becircn gửi

Transport Layer 3-28

rdt20 đặc tả FSM

chờ gọi từ lớp trecircn

snkpkt = make_pkt(data checksum)udt_send(sndpkt)

extract(rcvpktdata)deliver_data(data)udt_send(ACK)

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)

rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp isNAK(rcvpkt)

udt_send(NAK)

rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)

chờ ACK hoặc NAK

chờ gọi từ lớp dưới

người gửi

người nhậnrdt_send(data)

Transport Layer 3-29

rdt20 hoạt động khi khocircng lỗi

chờ gọi từ lớp dưới

snkpkt = make_pkt(data checksum)udt_send(sndpkt)

extract(rcvpktdata)deliver_data(data)udt_send(ACK)

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)

rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp isNAK(rcvpkt)

udt_send(NAK)

rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)

chờ ACK hoặc NAK

chờ gọi từ lớp dưới

rdt_send(data)

Transport Layer 3-30

rdt20 hoạt động khi coacute lỗi

chờ gọi từ lớp dưới

snkpkt = make_pkt(data checksum)udt_send(sndpkt)

extract(rcvpktdata)deliver_data(data)udt_send(ACK)

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)

rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp isNAK(rcvpkt)

udt_send(NAK)

rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)

chờ ACK hoặc NAK

chờ gọi từ lớp dưới

rdt_send(data)

Transport Layer 3-31

rdt20 coacute lỗ hổng nghiecircm trọngĐiều gigrave xảy ra nếu

ACKNAK bị hỏng người gửi khocircng biết điều

gigrave đatilde xảy ra tại becircn nhận

khocircng thể đơn phương truyền lại khả năng trugraveng lặp

Quản lyacute trugraveng lặp người gửi truyền lại goacutei

hiện tại nếu ACKNAK bị hỏng

người gửi thecircm số thứ tự vagraveo mỗi goacutei

người nhận hủy (khocircng nhận) goacutei trugraveng lặp

Người gửi gửi 1 goacutei sau đoacute dừng lại chờ phản hồitừ người nhận

dừng vagrave chờ

Transport Layer 3-32

rdt21 người gửi quản lyacute caacutec ACKNAK bị hỏng

chờ gọi 0 từ lớp trecircn

sndpkt = make_pkt(0 data checksum)udt_send(sndpkt)

rdt_send(data)

chờ ACK hoặc NAK

0 udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) ||isNAK(rcvpkt) )

sndpkt = make_pkt(1 data checksum)udt_send(sndpkt)

rdt_send(data)

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) ||isNAK(rcvpkt) )

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt)

chờ gọi 1 từ lớp trecircn

chờ ACK hoặc NAK

1

Transport Layer 3-33

rdt21 người gửi quản lyacute caacutec ACKNAK bị hỏng

chờ 0 từ dưới

sndpkt = make_pkt(NAK chksum)udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp not corrupt(rcvpkt) ampamp has_seq0(rcvpkt)

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp has_seq1(rcvpkt)

extract(rcvpktdata)deliver_data(data)sndpkt = make_pkt(ACK chksum)udt_send(sndpkt)

chờ 1 từ dưới

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp has_seq0(rcvpkt)

extract(rcvpktdata)deliver_data(data)sndpkt = make_pkt(ACK chksum)udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp (corrupt(rcvpkt)

sndpkt = make_pkt(ACK chksum)udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp not corrupt(rcvpkt) ampamp has_seq1(rcvpkt)

rdt_rcv(rcvpkt) ampamp (corrupt(rcvpkt)

sndpkt = make_pkt(ACK chksum)udt_send(sndpkt)

sndpkt = make_pkt(NAK chksum)udt_send(sndpkt)

Transport Layer 3-34

rdt21 thảo luận

người gửi số thứ tự thecircm vagraveo

goacutei chỉ cần hai số thứ tự

(01) lagrave đủ Tại sao phải kiểm tra nếu việc

nhận ACKNAK bị hỏng

số trạng thaacutei tăng lecircn 2 lần trạng thaacutei phải ldquonhớrdquo

goacutei ldquohiện tạirdquo coacute số thứ tự lagrave 0 hay 1

người nhận phải kiểm tra coacute

nhận trugraveng goacutei khocircng trạng thaacutei chỉ rotilde coacute

hay khocircng mong chờ số thứ tự 0 hoặc 1

chuacute yacute người nhận khocircng biết ACKNAK vừa rồi của noacute coacute được người gửi nhận tốt hay khocircng

Transport Layer 3-35

rdt22 một giao thức khocircng cần NAK

chức năng giống như rdt21 chỉ dugraveng caacutec ACK thay cho NAK người nhận gửi ACK cho goacutei vừa

rồi đatilde nhận tốt người nhận phải rotilde ragraveng chegraven số thứ tự của goacutei vừa ACK

trugraveng ACK tại người gửi hậu quả giống như hagravenh động của NAK truyền lại goacutei vừa rồi

Transport Layer 3-36

rdt22 gửi nhận caacutec mảnh

Chờ cho gọi 0 từ

trecircn

sndpkt = make_pkt(0 data checksum)udt_send(sndpkt)

rdt_send(data)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) || isACK(rcvpkt1) )

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt0)

Chờ cho ACK

0

gửi phacircn mảnhFSM

Chờ cho gọi

0 từ dưới

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp has_seq1(rcvpkt)

extract(rcvpktdata)deliver_data(data)sndpkt = make_pkt(ACK1 chksum)udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp (corrupt(rcvpkt) || has_seq1(rcvpkt))

udt_send(sndpkt)

nhận phacircn mảnhFSM

Transport Layer 3-37

rdt30 caacutec kecircnh với lỗi vagrave mất maacutet

Giả định mới kecircnh ưu tiecircn cũng coacute thể lagravem mất caacutec goacutei (dữ liệu hoặc caacutec ACK) checksum số thứ tự

caacutec ACK caacutec việc truyền lại sẽ hỗ trợ nhưng khocircng đủ

Caacutech tiếp cận người gửi chờ ACK trong khoảng thời gian ldquochấp nhận đượcrdquo

truyền lại nếu khocircng nhận ACK trong khoảng thời gian nagravey

nếu goacutei (hoặc ACK) chỉ trễ (khocircng mất) truyền lại sẽ gacircy trugraveng

nhưng dugraveng số thứ tự sẽ giải quyết được

người nhận phải xaacutec định số thứ tự của goacutei vừa gửi ACK

cần bộ định thigrave đếm lugravei

Transport Layer 3-38

rdt30 gửi

sndpkt = make_pkt(0 data checksum)udt_send(sndpkt)start_timer

rdt_send(data)

Chờ cho

ACK 0

rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) ||isACK(rcvpkt1) )

Chờ cho gọi 1 từ trecircn

sndpkt = make_pkt(1 data checksum)udt_send(sndpkt)start_timer

rdt_send(data)

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt0)

rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) ||isACK(rcvpkt0) )

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt1)

stop_timerstop_timer

udt_send(sndpkt)start_timer

timeout

udt_send(sndpkt)start_timer

timeout

rdt_rcv(rcvpkt)

Chờ cho gọi 0 từ trecircn

Chờ cho

ACK 1

rdt_rcv(rcvpkt)

Transport Layer 3-39

hagravenh động của rdt30

Transport Layer 3-40

hagravenh động của rdt30

Transport Layer 3-41

Hiệu suất của rdt30

rdt30 lagravem việc được nhưng đaacutenh giaacute hiệu suất hơi rắc rối viacute dụ liecircn kết 1 Gbps trễ lan truyền giữa hai đầu cuối lagrave 15

ms goacutei 1KB

T truyền = 8kbpkt109 bsec

= 8 microsec

U sender độ khả dụng ndash

U sender

= 008

30008 = 000027

microseconds

L R

RTT + L R =

L (độ dagravei goacutei tiacutenh bằng bits)R (tốc độ truyền bps)

=

goacutei 1KB mỗi 30 msec -gt 33kBs trecircn đường truyền 1 Gbps giao thức network hạn chế việc dugraveng caacutec tagravei nguyecircn vật

lyacute

Transport Layer 3-42

rdt30 hoạt động dừng-vagrave-chờ

goacutei đầu tiecircn đatilde truyền t = 0

gửi nhận

RTT

goacutei cuối cugraveng đatilde truyền t = L R

goacutei đầu tiecircn đatilde đếngoacutei cuối cugraveng đatilde đến gửi ACK

ACK đến gửi goacutei kế tiếp t = RTT + L R

U sender

= 008

30008 = 000027

microseconds

L R

RTT + L R =

Transport Layer 3-43

Caacutec giao thức Pipelined

Pipelining người gửi cho pheacutep gửi nhiều goacutei đồng thời khocircng cần chờ baacuteo nhận được nhoacutem caacutec số thứ tự phải tăng dần phải coacute bộ nhớ đệm tại nơi gửi vagravehoặc nơi nhận

hai dạng phổ biến của caacutec giao thức pipelined go-Back-N Lặp coacute lựa chọn

Transport Layer 3-44

Pipelining độ khả dụng tăng

goacutei đầu tiecircn đatilde truyền t = 0

sender receiver

RTT

goacutei cuối cugraveng đatilde truyền t = L R

goacutei đầu tiecircn đatilde đếngoacutei cuối cugraveng đatilde đến gửi ACK

ACK đến gửi goacuteikế tiếp t = RTT + L R

bit cuối của goacutei thứ 2 đến gửi ACKbit cuối của goacutei thứ 3 đến gửi ACK

U sender

= 024

30008 = 00008

microseconds

3 L R

RTT + L R =

Độ khả dụng tăng lecircngấp 3 lần

Transport Layer 3-45

Go-Back-NBecircn gửi k-bit số thứ tự trong header của goacutei ldquocửa sổrdquo tăng lecircn đến N cho pheacutep gửi caacutec goacutei liecircn tục khocircng cần ACK

ACK(n) ACKs tất cả caacutec goacutei đến chứa số thứ tự n ndash ldquoACK tiacutech lũyrdquo coacute thể nhận caacutec ACK trugraveng lặp (xem becircn nhận)

định thigrave cho mỗi goacutei trecircn đường truyền timeout(n) gửi lại goacutei n vagrave tất cả caacutec goacutei coacute số thứ tự cao

hơn trong cửa sổ

Transport Layer 3-46

GBN becircn gửi mở rộng FSM

chờ start_timerudt_send(sndpkt[base])udt_send(sndpkt[base+1])hellipudt_send(sndpkt[nextseqnum-1])

timeout

rdt_send(data)

if (nextseqnum lt base+N) sndpkt[nextseqnum] = make_pkt(nextseqnumdatachksum) udt_send(sndpkt[nextseqnum]) if (base == nextseqnum) start_timer nextseqnum++ else refuse_data(data)

base = getacknum(rcvpkt)+1If (base == nextseqnum) stop_timer else start_timer

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)

base=1nextseqnum=1

rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)

Transport Layer 3-47

GBN becircn nhận mở rộng FSM

ACK-duy nhất luocircn luocircn gửi ACK cho goacutei đatilde nhận đuacuteng với số thứ tự xếp hạng cao nhất coacute thể sinh ra caacutec ACK trugraveng nhau chỉ cần nhớ expectedseqnum

goacutei khocircng theo thứ tự hủy -gt khocircng nhận vagraveo bộ đệm gửi lại ACK với số thứ tự xếp hạng cao nhất

chờ

udt_send(sndpkt)

default

rdt_rcv(rcvpkt) ampamp notcurrupt(rcvpkt) ampamp hasseqnum(rcvpktexpectedseqnum)

extract(rcvpktdata)deliver_data(data)sndpkt = make_pkt(expectedseqnumACKchksum)udt_send(sndpkt)expectedseqnum++

expectedseqnum=1sndpkt = make_pkt(expectedseqnumACKchksum)

Transport Layer 3-48

GBN hoạt động

Transport Layer 3-49

Lặp coacute lựa chọn

becircn nhận thocircng baacuteo đatilde nhận đuacuteng tất cả từng goacutei một đệm (buffer) caacutec goacutei nếu cần thiết

becircn gửi chỉ gửi lại caacutec goacutei nagraveo khocircng nhận được ACK becircn gửi định thigrave đối với mỗi goacutei khocircng gửi ACK

cửa sổ becircn gửi N số thứ tự liecircn tục hạn chế số thứ tự caacutec goacutei khocircng gửi ACK

Transport Layer 3-50

Lặp coacute lựa chọn caacutec cửa sổ gửi nhận

Transport Layer 3-51

Lặp coacute lựa chọn

dữ liệu từ lớp trecircn nếu số thứ tự kế tiếp sẵn

sagraveng trong cửa sổ gửi goacutei

timeout(n) gửi lại goacutei n taacutei khởi tạo

bộ định thigrave

ACK(n) trong [sendbasesendbase+N]

đaacutenh dấu goacutei n lagrave đatilde nhận nếu goacutei khocircng ACK coacute n

nhỏ nhất dịch chuyển cửa sổ base đến số thứ tự khocircng ACK kế tiếp

Gửigoacutei n trong [rcvbase

rcvbase+N-1]

gửi ACK(n) khocircng thứ tự đệm

(buffer) coacute thứ tự truyền (cũng

truyền caacutec goacutei đatilde đệm coacute thứ tự) dịch chuyển cửa sổ đến goacutei chưa nhận kế tiếp

goacutei n trong [rcvbase-Nrcvbase-1]

ACK(n)

ngược lại lờ đi

Nhận

Transport Layer 3-52

Hoạt động của lặp coacute lựa chọn

Transport Layer 3-53

Lặp coacute lựa chọntigravenh trạng khoacute giải quyếtViacute dụ Số thứ tự 0 1 2 3 Kiacutech thước cửa sổ = 3

becircn nhận khocircng thấy sự khaacutec nhau trong 2 tigravenh huống

chuyển khocircng chiacutenh xaacutec dữ liệu trugraveng lặp như dữ liệu mới trong (a)

Hỏi quan hệ giữa datildey số thứ tự vagrave kiacutech thước cửa sổ

Transport Layer 3-54

Chương 3 Nội dung trigravenh bagravey

31 Caacutec dịch vụ lớp Transport

32 Multiplexing vagrave demultiplexing

33 Vận chuyển khocircng kết nối UDP

34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy

35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối

36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn

37 Điều khiển tắc nghẽn TCP

Transport Layer 3-55

TCP Tổng quan RFCs 793 1122 1323 2018 2581

dữ liệu full duplex luồng dữ liệu đi 2 chiều

trong cugraveng một kết nối MSS maximum

segment size ndash kiacutech thước đoạn tối đa

hướng kết nối bắt tay (trao đổi caacutec

thocircng điệp điều khiển) trạng thaacutei becircn gửi becircn nhận trước khi trao đổi dữ liệu

điều khiển luồng becircn gửi sẽ khocircng lấn aacutet

becircn nhận

point-to-point một becircn gửi một becircn

nhận tin cậy dograveng byte coacute

thứ tự khocircng ldquoranh giới thocircng

điệprdquo kecircnh liecircn lạc

TCP điều khiển luồng vagrave tắc nghẽn thiết lập kiacutech thước cửa sổ

caacutec bộ đệm gửi amp nhận

socketdoor

T C Psend buffer

T C Preceive buffer

socketdoor

segm ent

applicationwrites data

applicationreads data

Transport Layer 3-56

TCP cấu truacutec đoạn

port nguồn port điacutech

32 bits

dữ liệu ứng dụng(độ dagravei thay đổi)

số thứ tự

số ACKcửa sổ nhận

con trỏ URGchecksum

FSRPAUheadlen

notused

Tugravey chọn (độ dagravei thay đổi)

URG dữ liệu khẩn cấp(thường khocircng dugraveng)

ACK ACK hợp lệ

PSH push data now(thường khocircng dugraveng)

RST SYN FINthiết lập kết nối

(caacutec lệnh thiết lậpchia nhỏ)

số byte becircn nhận sẵn sagraveng chấp nhận

đếm bởi số bytecủa dữ liệu

Internetchecksum

(giống UDP)

Transport Layer 3-57

Caacutec số thứ tự TCP vagrave ACKCaacutec số thứ tự

dograveng byte ldquođaacutenh sốrdquo byte đầu tiecircn trong dữ liệu của đoạn

caacutec ACK số thứ tự của byte

kế tiếp được chờ đợi từ phiacutea becircn kia

ACK tiacutech lũyHỏi lagravem thế nagraveo becircn

nhận quản lyacute caacutec đoạn khocircng thứ tự Trả lời TCP khocircng

đề cập tugravey thuộc người hiện thực

Host A Host B

Seq=42 ACK=79 data = lsquoCrsquo

Seq=79 ACK=43 data = lsquoCrsquo

Seq=43 ACK=80

UsernhậplsquoCrsquo

host ACKsnhận phản hồi

lsquoCrsquo

host ACKsbaacuteo nhận

lsquoCrsquo phản hồingược lại lsquoCrsquo

timetigravenh huống telnet đơn giản

Transport Layer 3-58

TCP Round Trip Time vagraveTimeout

Hỏi Lagravem thế nagraveo để thiết lập giaacute trị TCP timeout

dagravei hơn RTT khaacutec với RTT

quaacute ngắn timeout sớm truyền lại khocircng

cần thiết quaacute dagravei phản ứng

chậm đối với việc mất maacutet goacutei

Hỏi Lagravem thế nagraveo để thiết lập RTT

SampleRTT thời gian được đo từ khi truyền đoạn đến khi baacuteo nhận ACK lờ đi việc truyền lại

SampleRTT sẽ thay đổi muốn ước lượng RTT ldquomượt hơnrdquo tiacutenh trung bigravenh một số giaacute

trị đo được gần đoacute khocircng chỉ SampleRTT hiện tại

Transport Layer 3-59

TCP Round Trip Time vagrave Timeout

EstimatedRTT = (1- )EstimatedRTT + SampleRTT

giaacute trị đặc trưng = 0125

Transport Layer 3-60

Viacute dụ đaacutenh giaacute RTTRTT gaiacsumassedu to fantasiaeurecomfr

100

150

200

250

300

350

1 8 15 22 29 36 43 50 57 64 71 78 85 92 99 106

time (seconnds)

RTT

(mill

isec

onds

)

SampleRTT Estimated RTT

Transport Layer 3-61

TCP Round Trip Time vagrave Timeout

Thiết lập timeout EstimtedRTT cộng ldquohệ số dự trữ an toagravenrdquo

sự biến thiecircn lớn trong EstimatedRTT -gt hệ số dự trữ an toagraven lớn hơn ước lượng đầu tiecircn về sự biến thiecircn của SampleRTT từ EstimatedRTT

TimeoutInterval = EstimatedRTT + 4DevRTT

DevRTT = (1-)DevRTT + |SampleRTT-EstimatedRTT|

(tiecircu biểu = 025)

Sau đoacute thiết lập timeout interval

Transport Layer 3-62

TCP truyền dữ liệu tin cậy

TCP tạo dịch vụ rdt trecircn dịch vụ khocircng tin cậy IP

caacutec đoạn Pipelined caacutec ACK tiacutech lũy TCP dugraveng bộ định thigrave

truyền lại đơn

Truyền lại được kiacutech hoạt bởi caacutec sự kiện timeout caacutec ack trugraveng lặp

luacutec đầu khảo saacutet caacutec becircn gửi TCP đơn giản lờ đi caacutec ack trugraveng lặp lờ đi điều khiển luồng

điều khiển tắc nghẽn

Transport Layer 3-63

TCP caacutec sự kiệndữ liệu đatilde nhận từ ứng

dụng tạo đoạn với số thứ

tự của noacute số thứ tự lagrave số theo

byte dữ liệu đầu tiecircn khởi động bộ định thigrave

nếu chưa chạy khoảng thời gian hết

hạn TimeOutInterval

timeout gửi lại đoạn nagraveo gacircy

ra timeout khởi động lại bộ định

thigrave Ack đatilde nhận

cập nhật caacutei gigrave sẽ được ACK

khởi động bộ định thigrave nếu coacute caacutec đoạn cograven chờ

Transport Layer 3-64

TCP becircn gửi(đơn giản)

NextSeqNum = InitialSeqNum SendBase = InitialSeqNum

loop (forever) switch(event)

event data received from application above create TCP segment with sequence number NextSeqNum if (timer currently not running) start timer pass segment to IP NextSeqNum = NextSeqNum + length(data)

event timer timeout retransmit not-yet-acknowledged segment with smallest sequence number start timer

event ACK received with ACK field value of y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer

end of loop forever

Chuacute thiacutechbull SendBase-1 byte vừa được ACK tiacutech lũy Viacute dụbull SendBase-1 = 71y= 73 vigrave thế becircn nhận muốn 73+ y gt SendBase vigrave thế dữ liệu mới được chấp nhận

Transport Layer 3-65

TCP caacutec tigravenh huống truyền lại

Host A

Seq=100 20 bytes data

ACK=100

timetimeout sớm

Host B

Seq=92 8 bytes data

ACK=120

Seq=92 8 bytes data

Seq=

92

tim

eout

ACK=120

Host A

Seq=92 8 bytes data

ACK=100

loss

tim

eout

tigravenh huống mất ACK

Host B

X

Seq=92 8 bytes data

ACK=100

time

Seq=

92

tim

eout

SendBase= 100

SendBase= 120

SendBase= 120

Sendbase= 100

Transport Layer 3-66

TCP caacutec tigravenh huống truyền lại (tt)Host A

Seq=92 8 bytes data

ACK=100

loss

tim

eout

Cumulative ACK scenario

Host B

X

Seq=100 20 bytes data

ACK=120

time

SendBase= 120

Transport Layer 3-67

TCP sinh ra ACK [RFC 1122 RFC 2581]

Sự kiện tại becircn nhận

Đoạn đến với đuacuteng số thứ tự mong muốn Tất cả dữ liệu đếnđatilde được ACK

Đoạn đến với đuacuteng số thứ tự mong muốn Một đoạn khaacutec đangchờ ACK

Caacutec đoạn đến khocircng thứ tựlớn hơn số thứ tự đoạn mong muốnCoacute khoảng trống

Đoạn đếnlấp đầy từng phần hoặc toagraven bộkhoảng trống

TCP becircn nhận hagravenh động

ACK trễ Chờ đến 500mscho đoạn kế tiếp Nếu khocircng coacute đoạnkế tiếp gửi ACK

Gửi ngay một ACK tiacutech lũy chấp nhậncho cả caacutec đoạn theo thứ tự

Gửi ngay ACK trugraveng lặp chỉ thị số thứ tựđoạn của byte kế tiếp đang mong chờ

Gửi ngay ACK với điều kiện lagrave đoạnbắt đầu ngay điểm coacute khoảng trống

Transport Layer 3-68

Truyền lại nhanh

Chu kỳ Time-out thường tương đối dagravei độ trễ dagravei trước khi gửi

lại goacutei đatilde mất

Xaacutec nhận caacutec đoạn đatilde mất bằng caacutec ACK trugraveng lặp becircn gửi thường gửi

nhiều đoạn song song Nếu đoạn bị mất sẽ

xảy ra tigravenh trạng giống như nhiều ACK trugraveng nhau

Nếu becircn gửi nhận 3 ACK của cugraveng một dữ liệu noacute cho lagrave đoạn sau dữ liệu đatilde ACK bị mất Truyền lại nhanh gửi

lại đoạn trước khi bộ định thigrave hết hạn

Transport Layer 3-69

sự kiện ACK đatilde nhận với trường lagrave y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer else increment count of dup ACKs received for y if (count of dup ACKs received for y = 3) resend segment with sequence number y

Giải thuật truyền lại nhanh

một ACK trugraveng lặp cho đoạn đatilde được ACK

Truyền lại nhanh

Transport Layer 3-70

Chương 3 Nội dung trigravenh bagravey

31 Caacutec dịch vụ lớp Transport

32 Multiplexing vagrave demultiplexing

33 Vận chuyển khocircng kết nối UDP

34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy

35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối

36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn

37 Điều khiển tắc nghẽn TCP

Transport Layer 3-71

TCP điều khiển luồng

becircn nhận của kết nối TCP coacute một bộ đệm nhận

dịch vụ so trugraveng tốc độ so trugraveng tốc độ gửi với tốc độ nhận của ứng dụng

tiến trigravenh ứng dụng coacute thể chậm tại luacutec đọc bộ đệm

becircn gửi sẽ khocircng lagravem tragraven bộ đệm vigrave truyền quaacute nhiều vagrave

quaacute nhanh

điều khiển luồng

Transport Layer 3-72

TCP điều khiển luồng caacutech lagravem

(Giả sử becircn nhận TCP loại bỏ caacutec đoạn khocircng coacute thứ tự)

dự phograveng trong bộ đệm= RcvWindow

= RcvBuffer-[LastByteRcvd - LastByteRead]

Becircn nhận thocircng baacuteo khoảng dự trữ nhờ giaacute trị RcvWindow trong caacutec đoạn

Becircn gửi hạn chế dữ liệu khocircng được ACK vagraveo RcvWindow bảo đảm bộ đệm nhận

khocircng tragraven

Transport Layer 3-73

Chương 3 Nội dung trigravenh bagravey

31 Caacutec dịch vụ lớp Transport

32 Multiplexing vagrave demultiplexing

33 Vận chuyển khocircng kết nối UDP

34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy

35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối

36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn

37 Điều khiển tắc nghẽn TCP

Transport Layer 3-74

TCP quản lyacute kết nối

Chuacute yacute Becircn gửi vagrave becircn nhận TCP thiết lập ldquokết nốirdquo trước khi trao đổi dữ liệu

khởi tạo caacutec biến TCP caacutec số thứ tự đoạn thocircng tin caacutec bộ đệm điều

khiển luồng (như RcvWindow)

client người khởi xướng kết nối

Socket clientSocket = new Socket(hostnameport

number) server được tiếp xuacutec bởi

client Socket connectionSocket =

welcomeSocketaccept()

3 phương phaacutep bắt tay

Bước 1 client host gửi đoạnTCP SYN đến server xaacutec định số thứ tự khởi đầu khocircng phải dữ liệu

Bước 2 server host nhận SYN trả lời với đoạn SYNACK

server cấp phaacutet caacutec bộ đệm

xaacutec định số thứ tự khởi đầuBước 3 client nhận SYNACK trả

lời với đoạn ACK (coacute thể chứa dữ liệu)

Transport Layer 3-75

TCP quản lyacute kết nối (tt)

Đoacuteng một kết nối

client đoacuteng socket clientSocketclose()

Bước 1 client gửi đoạn điều khiển TCP FIN đến server

Bước 2 server nhận FIN trả lời với ACK Đoacuteng kết nối gửi FIN

client

FIN

server

ACK

ACK

FIN

đoacuteng

đoacuteng

đatilde đoacutengthời g

ian c

hờ

Transport Layer 3-76

TCP quản lyacute kết nối (tt)

Bước 3 client nhận FIN trả lời với ACK

Trong khoảng ldquothời gian chờrdquo ndash sẽ phản hồi với ACK để nhận caacutec FIN

Bước 4 server nhận ACK Kết nối đatilde đoacuteng

Chuacute yacute với một sửa đổi nhỏ coacute thể quản lyacute nhiều FIN đồng thời

client

FIN

server

ACK

ACK

FIN

đang đoacuteng

đang đoacuteng

đatilde đoacuteng

thời g

ian c

hờ

đatilde đoacuteng

Transport Layer 3-77

TCP quản lyacute kết nối (tt)

chu kỳ sống củaTCP client

chu kỳ sống củaTCP server

Transport Layer 3-78

Chương 3 Nội dung trigravenh bagravey

31 Caacutec dịch vụ lớp Transport

32 Multiplexing vagrave demultiplexing

33 Vận chuyển khocircng kết nối UDP

34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy

35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối

36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn

37 Điều khiển tắc nghẽn TCP

Transport Layer 3-79

Caacutec nguyecircn lyacute điều khiển tắc nghẽn

Tắc nghẽn ldquoquaacute nhiều nguồn gửi quaacute nhanh vagrave quaacute nhiều

dữ liệu đến mạngrdquo khaacutec với điều khiển luồng caacutec biểu hiện

caacutec goacutei bị mất (tragraven bộ đệm tại caacutec router) caacutec độ trễ quaacute dagravei (xếp hagraveng trong bộ đệm

của router) lagrave 1 trong 10 vấn đề nan giải nhất

Transport Layer 3-80

Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 1

2 gửi 2 nhận 1 router caacutec bộ

đệm khocircng giới hạn

khocircng coacute truyền lại

caacutec độ trễ lớn hơn khi tắc nghẽn

năng suất coacute thể đạt tối đa

unlimited shared output link buffers

Host Ain original data

Host B

out

Transport Layer 3-81

Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 2

1 router caacutec bộ đệm coacute giới hạn becircn gửi truyền lại caacutec goacutei đatilde mất

chia sẻ vocirc hạncaacutec bộ đệm ouput

Host A in dữ liệu gốc

Host B

out

in dữ liệu gốc cugraveng với dữ liệu truyền lại

Transport Layer 3-82

Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 2 luocircn luocircn

truyền lại ldquohoagraven toagravenrdquo chỉ khi mất maacutet

truyền lại vigrave trễ (khocircng mất) lagravem cho lớn hơn với cugraveng

in

out

=

in

out

gt

in

out

ldquocaacutec chi phiacuterdquo của tắc nghẽn nhiều việc (truyền lại) caacutec truyền lại khocircng cần thiết liecircn kết nhiều bản sao của

goacutei

R2

R2in

ou

t

b

R2

R2in

ou

t

a

R2

R2in

ou

t

c

R4

R3

Transport Layer 3-83

Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 3 4 người gửi caacutec đường qua nhiều hop timeouttruyền lại

in

Hỏi điều gigrave xảy ra nếu vagrave tăng lecircn

in

chia sẻ vocirc hạncaacutec bộ đệm ouput

Host Ain dữ liệu gốc

Host B

out

in dữ liệu gốc cugraveng với dữ liệu truyền lại

Transport Layer 3-84

Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 3

ldquochi phiacuterdquo khaacutec của tắc nghẽn khi caacutec goacutei bị bỏ bất kỳ ldquokhả năng truyền

upstream dugraveng cho goacutei đoacute sẽ bị latildeng phiacuterdquo

Host A

Host B

o

u

t

Transport Layer 3-85

Caacutec caacutech tiếp cận đối với điều khiển tắc nghẽn

điều khiển tắc nghẽn end-end

khocircng coacute phản hồi rotilde ragraveng từ mạng

tắc nghẽn được suy ra từ việc quan saacutet caacutec hệ thống đầu cuối coacute mất maacutet trễ

tiếp cận được quản lyacute bởi TCP

điều khiển tắc nghẽn coacute sự hỗ trợ của mạng

caacutec router cung cấp phản hồi về caacutec hệ thống đầu cuối 1 bit duy nhất chỉ thị

tắc nghẽn (SNA DECbit TCPIP ECN ATM)

tốc độ sẽ gửi được xaacutec định rotilde ragraveng

2 caacutech

Transport Layer 3-86

Viacute dụ điều khiển tắc nghẽn ATM ABR

ABR tốc độ bit sẵn sagraveng

ldquodịch vụ mềm dẻordquo nếu đường gửi ldquochưa

hếtrdquo becircn gửi sẽ dugraveng

băng thocircng sẵn sagraveng nếu đường gửi tắc

nghẽn becircn gửi điều tiết với

tốc độ tối thiểu

RM (resource management)

gửi bởi becircn gửi rải raacutec với caacutec ocirc dữ liệu

caacutec bit trong ocirc thiết lập bởi caacutec switch bit NI khocircng tăng tốc độ

(tắc nghẽn nhẹ) bit CI tắc nghẽn rotilde rệt

Caacutec ocirc RM được trả về becircn gửi từ becircn nhận với nguyecircn vẹn caacutec bit

Transport Layer 3-87

Viacute dụ điều khiển tắc nghẽn ATM ABR

trường 2-byte ER trong ocirc RM switch đatilde tắc nghẽn coacute thể coacute giaacute trị ER thấp hơn trong ocirc tốc độ gửi do đoacute coacute thể được hỗ trợ tối đa trecircn đường

EFCI bit trong caacutec ocirc dữ liệu được cagravei giaacute trị 1 trong switch đatilde tắc nghẽn nếu ocirc dữ liệu đứng trước ocirc RM coacute cagravei EFCI becircn gửi sẽ cagravei

bit CI trong ocirc RM trả về

Transport Layer 3-88

Chương 3 Nội dung trigravenh bagravey

31 Caacutec dịch vụ lớp Transport

32 Multiplexing vagrave demultiplexing

33 Vận chuyển khocircng kết nối UDP

34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy

35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối

36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn

37 Điều khiển tắc nghẽn TCP

Transport Layer 3-89

TCP điều khiển tắc nghẽn additive tăng lecircn multiplicative giảm xuống

8 Kbytes

16 Kbytes

24 Kbytes

time

congestionwindow

Caacutech tiếp cận tăng tốc độ truyền (kiacutech thước cửa sổ) tigravem khả năng băng thocircng coacute thể cho đến khi coacute mất maacutet xảy ra additive tăng lecircn tăng CongWin bởi 1 MSS

mỗi RTT cho đến khi coacute mất maacutet xảy ra multiplicative giảm xuống bỏ CongWin trong

nửa giai đoạn sau khi mất maacutet

timekiacutech

thư

ớc

cửa

sổ

tắc

nghẽ

n

Tigravem kiếm băng thocircng

Transport Layer 3-90

TCP điều khiển tắc nghẽn chi tiết

becircn gửi hạn chế việc truyền LastByteSent-LastByteAcked

CongWin Cocircng thức

CongWin thay đổi chức năng lagrave nhận biết tắc nghẽn trecircn mạng

Lagravem thế nagraveo becircn gửi nhận biết tắc nghẽn

mất maacutet xảy ra = timeout hoặc 3 ack trugraveng lặp

becircn gửi giảm tốc độ (CongWin) sau khi mất maacutet xảy ra

3 cơ chế AIMD khởi động chậm thận trọng sau khi coacute

caacutec sự kiện timeout

tốc độ = CongWin

RTT Bytess

Transport Layer 3-91

TCP khởi động chậm

Khi kết nối bắt đầu CongWin = 1 MSS Viacute dụ MSS = 500 bytes

amp RTT = 200 ms tốc độ khởi tạo = 20

kbps

băng thocircng sẵn sagraveng coacute thể gtgt MSSRTT mong muốn nhanh

choacuteng tăng tốc lecircn tốc độ coacute thể đaacutep ứng

Khi kết nối bắt đầu tăng tốc lecircn rất nhanh cho đến khi sự cố mất maacutet xảy ra đầu tiecircn

Transport Layer 3-92

TCP khởi động chậm (tt)

Khi kết nối bắt đầu tăng tốc lecircn rất nhanh cho đến khi sự cố mất maacutet xảy ra đầu tiecircn nhacircn đocirci CongWin mỗi

RTT hoagraven thagravenh nhờ tăng CongWin ứng với mỗi ACK đatilde nhận

Tổng kết tốc độ khởi đầu lagrave chậm nhưng sau đoacute tăng tốc rất nhanh

Host A

1 đoạn

RTT

Host B

thời gian

2 đoạn

4 đoạn

Transport Layer 3-93

Tinh chếHỏi Khi nagraveo việc tăng

tốc trở thagravenh tuyến tiacutenh

Trả lời Khi CongWin đạt đến 12 giaacute trị của noacute trước khi timeout

Hiện thực Ngưỡng thay đổi Tại thời điểm coacute sự cố

mất maacutet ngưỡng được cagravei giaacute trị bằng frac12 của CongWin ngay trước đoacute

Transport Layer 3-94

Tinh chế nhận biết mất maacutet

Sau 3 ACK trugraveng lặp CongWin sẽ giảm 12 kiacutech thước cửa sổ

tăng tuyến tiacutenh nhưng sau sự cố

timeout CongWin thay giaacute trị

bằng 1 MSS kiacutech thước cửa sổ

tăng cấp lũy thừa khi đến một ngưỡng

thigrave tăng tuyến tiacutenh

3 ACK trugraveng nhau chỉ ra khả năng truyền của mạng timeout chỉ thị ldquonhiều cảnh baacuteordquo về tigravenh huống tắc nghẽn

Nguyecircn lyacute

Transport Layer 3-95

Tổng kết TCP điều khiển tắc nghẽn

Khi CongWin dưới Threshold becircn gửi đang trong giai đoạn khởi động chậm kiacutech thước cửa sổ tăng nhanh theo cấp lũy thừa

Khi CongWin trecircn Threshold becircn gửi đang trong giai đoạn traacutenh tắc nghẽn kiacutech thước cửa sổ tăng nhanh theo cấp tuyến tiacutenh

Khi coacute 3 ACK trugraveng lặp xảy ra Threshold = CongWin2 vagrave CongWin = Threshold

Khi timeout xảy ra Threshold = CongWin2 vagrave CongWin = 1 MSS

Transport Layer 3-96

TCP điều khiển tắc nghẽn becircn gửi

Trạng thaacutei Sự kiện TCP becircn gửi hagravenh động Diễn giải

Slow Start (SS)-Khởi động chậm

ACK baacuteo nhận cho dữ liệu chưa ACK trước đoacute

CongWin = CongWin + MSS If (CongWin gt Threshold) cagravei đặt trạng thaacutei ldquoTraacutenh tắc nghẽnrdquo

Hậu quả lagravem tăng gấp đocirci CongWin mỗi RTT

CongestionAvoidance (CA) ndashTraacutenh tắc nghẽn

ACK baacuteo nhận cho dữ liệu chưa ACK trước đoacute

CongWin = CongWin+MSS (MSSCongWin)

Additive tăng lecircn lagravem tăng CongWin lecircn 1 MSS mỗi RTT

SS hoặc CA Sự cố mất maacutet xảy ra khi thấy coacute 3 ACK trugraveng lặp

Threshold = CongWin2 CongWin = Thresholdcagravei đặt trạng thaacutei ldquoTraacutenh tắc nghẽnrdquo

Khocirci phục nhanh hiện thực giảm xuống multiplicative CongWin sẽ khocircng giảm xuống dưới 1 MSS

SS hoặc CA Timeout Threshold = CongWin2 CongWin = 1 MSScagravei đặt trạng thaacutei ldquoKhởi động chậmrdquo

Vagraveo chế độ ldquoKhởi động chậmrdquo

SS hoặc CA ACK trugraveng lặp

Đếm ACK tăng lecircn cho đoạn vừa được ACK

CongWin vagrave Threshold khocircng thay đổi

Transport Layer 3-97

TCP throughput

Throughout trung bigravenh của TCP biểu diễn qua kiacutech thước của sổ vagrave RTT Bỏ qua trạng thaacutei ldquoKhởi động chậmrdquo

Cho W lagrave kiacutech thước cửa sổ khi coacute mất maacutet xảy ra

Khi kiacutech thước cửa sổ = W lưu lượng = WRTT

Chỉ ngay sau khi mất maacutet cửa sổ giảm xuống = W2 lưu lượng = W2RTT

throughout trung bigravenh 075 WRTT

Transport Layer 3-98

TCP tương lai

Viacute dụ caacutec đoạn dagravei 1500 byte RTT 100ms lưu lượng 10 Gbps

Kiacutech thước cửa sổ yecircu cầu W = 83333 đoạn trecircn đường truyền

Lưu lượng trong caacutec trường hợp mất maacutet

L = 210-10

Phiecircn bản mới của TCP dagravenh cho nhu cầu tốc độ cao

LRTT

MSS221

Transport Layer 3-99

Mục tiecircu nếu K phiecircn lagravem việc TCP chia sẻ kết nối cổ chai của băng thocircng lagrave R mỗi phiecircn coacute tốc độ trung bigravenh lagrave RK

TCP kết nối 1

router cổ chaikhả năng R

TCP kết nối 2

TCP tiacutenh cocircng bằng

Transport Layer 3-100

Tại sao phải TCP cocircng bằng

2 phiecircn lagravem việc cạnh tranh nhau Additive tăng lưu lượng tăng multiplicative giảm lưu lượng tương xứng

R

R

chia sẻ băng thocircng bằng nhau

Connection 1 throughputConnect

ion 2

th

roughput

traacutenh tắc nghẽn additive tăng lecircnmất maacutet giảm cửa sổ bằng 12

traacutenh tắc nghẽn additive tăng lecircnmất maacutet giảm cửa sổ bằng 12

Transport Layer 3-101

TCP tiacutenh cocircng bằng (tt)

Tiacutenh cocircng bằng amp UDP nhiều ứng dụng

thường khocircng dugraveng TCP khocircng muốn tốc độ bị

điều tiết do điều khiển tắc nghẽn

Thay bằng dugraveng UDP truyền audiovideo với

tốc độ ổn định chịu được mất maacutet

Nghiecircn cứu giao thức thacircn thiện với TCP

Tiacutenh cocircng bằng amp caacutec kết nối TCP song song

khocircng coacute gigrave ngăn cản việc ứng dụng mở caacutec kết nối song song giữa 2 host

Trigravenh duyệt Web lagravem giống như thế

Viacute dụ tốc độ R hỗ trợ 9 kết nối ứng dụng mới yecircu cầu 1

TCP coacute tốc độ R10 ứng dụng mới yecircu cầu 11

TCP coacute tốc độ R2

Transport Layer 3-102

Mocirc higravenh trễ

Hỏi Mất bao lacircu để nhận 1 đối tượng từ Web server sau khi gửi yecircu cầu

Bỏ qua tắc nghẽn trễ bị ảnh hưởng bởi

thiết lập kết nối TCP trễ truyền dữ liệu khởi động chậm

Notation caacutec giả định Giả sử một kết nối giữa

client vagrave server coacute tốc độ R

S MSS (bits) O kiacutech thước đối tượng

(bits) khocircng truyền lại (khocircng

mất maacutet khocircng hỏng)

Kiacutech thước cửa sổ Giả định 1 cửa sổ tắc

nghẽn cố định coacute W đoạn Sau đoacute cửa sổ thay đổi

mocirc higravenh khởi động chậm

Transport Layer 3-103

Cửa sổ tắc nghẽn cố định (1)

Trường hợp đầu tiecircnWSR gt RTT + SR cho

đoạn đầu tiecircn trong cửa sổ trả về trước khi cửa sổ dữ liệu gửi ACK

trễ = 2RTT + OR

Transport Layer 3-104

Cửa sổ tắc nghẽn cố định (2)

Trường hợp thứ hai WSR lt RTT + SR sent

chờ cho ACK sau khi gửi dữ liệu

trễ = 2RTT + OR+ (K-1)[SR + RTT - WSR]

Transport Layer 3-105

TCP Mocirc higravenh trễ Khởi động chậm (1)

Bacircy giờ giả sử kiacutech thước cửa sổ tăng lecircn tugravey theo quaacute trigravenh khởi động chậm

Độ trễ của một đối tượng sẽ lagrave

R

S

R

SRTTP

R

ORTTLatency P )12(2

trong đoacute P lagrave số lần TCP rảnh ở tại server

1min KQP

- trong đoacute Q lagrave số lần server rảnh nếu đối tượng đatilde khởi tạo kiacutech thước

- vagrave K lagrave số lượng cửa sổ bao trugravem đối tượng

Transport Layer 3-106

TCP Mocirc higravenh trễ Khởi động chậm (2)

RTT

initia te TCPconnection

requestobject

first w indow= S R

second w indow= 2S R

third w indow= 4S R

fourth w indow= 8S R

com pletetransm issionobject

delivered

tim e atc lient

tim e atserver

Viacute dụbull OS = 15 đoạnbull K = 4 cửa sổbull Q = 2bull P = minK-1Q = 2

Server rảnh P=2 lần

Caacutec thagravenh phần trễbull 2 RTT dagravenh cho thiết lập kết nối vagrave yecircu cầubull OR để truyền đối tượngbullthời gian server rảnh bởi vigrave khởi động chậm

Server rảnh P = minK-1Q lần

Transport Layer 3-107

TCP Mocirc higravenh trễ(3)

R

S

R

SRTTPRTT

R

O

R

SRTT

R

SRTT

R

O

idleTimeRTTR

O

P

kP

k

P

pp

)12(][2

]2[2

2delay

1

1

1

th window after the timeidle 2 1 kR

SRTT

R

S k

ementacknowledg receivesserver until

segment send tostartsserver when from time RTTR

S

window kth the transmit totime2 1

R

Sk

RTT

initia te TCPconnection

requestobject

first w indow= S R

second w indow= 2S R

third w indow= 4S R

fourth w indow= 8S R

com pletetransm issionobject

delivered

tim e atc lient

tim e atserver

Transport Layer 3-108

TCP Mocirc higravenh trễ (4)

)1(log

)1(logmin

12min

222min

222min

2

2

110

110

S

OS

Okk

S

Ok

SOk

OSSSkK

k

k

k

caacutech tiacutenh toaacuten Q tương tự (xem HW)

K = số lượng cửa sổ bao trugravem đối tượngLagravem thế nagraveo tiacutenh được K

Transport Layer 3-109

HTTP Mocirc higravenh Giả sử trang Web chứa

1 trang HTML (kiacutech thước O bits) M higravenh ảnh (mỗi caacutei kiacutech thướcO bits)

HTTP khocircng bền vững M+1 TCP kết nối Thời gian đaacutep ứng = (M+1)OR + (M+1)2RTT + tổng số thời

gian rảnh HTTP bền vững

2 RTT để yecircu cầu vagrave nhận file HTML 1 RTT để yecircu cầu vagrave nhận M higravenh ảnh Thời gian đaacutep ứng = (M+1)OR + 3RTT + tổng số thời gian

rảnh HTTP khocircng bền vững với X kết nối song song

Giả sử MX lagrave số nguyecircn 1 TCP kết nối cho file MX thiết lập caacutec kết nối song song cho caacutec higravenh ảnh Thời gian đaacutep ứng = (M+1)OR + (MX + 1)2RTT + tổng số

thời gian rảnh

Transport Layer 3-110

02468

101214161820

28Kbps

100Kbps

1Mbps

10Mbps

non-persistent

persistent

parallel non-persistent

HTTP thời gian đaacutep ứng (giacircy)RTT = 100 msec O = 5 Kbytes M=10 vagrave X=5

Với băng thocircng thấp thời gian kết nối amp đaacutep ứng trội hơn thời gian truyền

Caacutec kết nối bền vững chỉ cho sự cải thiện khocircng đaacuteng kể trecircn caacutec kết nối song song

Transport Layer 3-111

0

10

20

30

40

50

60

70

28Kbps

100Kbps

1Mbps

10Mbps

non-persistent

persistent

parallel non-persistent

HTTP thời gian đaacutep ứng (giacircy)

RTT =1 sec O = 5 Kbytes M=10 and X=5

Với RTT lớn hơn thời gian đaacutep ứng trội hơn thời gian trễ chờ thiết lập kết nốiTCP amp khởi động chậm Caacutec kết nối bền vững bacircy giờ cho thấy cải thiện rotilde rệt đặc biệtvới caacutec mạng băng thocircng cao

Transport Layer 3-112

Chương 3 Tổng kết caacutec nguyecircn lyacute của caacutec

dịch vụ lớp transport multiplexing

demultiplexing truyền dữ liệu tin cậy điều khiển luồng điều khiển tắc nghẽn

khởi tạo vagrave hiện thực trong Internet UDP TCP

Tiếp theo nghiecircn cứu xong

caacutec vấn đề ldquongoagravei biecircnrdquo (caacutec lớp application transport)

chuẩn bị vagraveo phần ldquolotildeirdquo của mạng

  • Slide 1
  • Chương 3 Lớp Transport
  • Chương 3 Nội dung trigravenh bagravey
  • Caacutec dịch vụ vagrave giao thức Transport
  • Lớp Transport với lớp network
  • Caacutec giao thức lớp transport trecircn Internet
  • Slide 7
  • Multiplexingdemultiplexing
  • Demultiplexing lagravem việc như thế nagraveo
  • Demultiplexing khocircng kết nối
  • Demultiplexing khocircng kết nối (tiếp)
  • Demultiplexing hướng kết nối
  • Demultiplexing hướng kết nối (tiếp)
  • Demultiplexing hướng kết nối Threaded Web Server
  • Slide 15
  • UDP User Datagram Protocol [RFC 768]
  • UDP (tt)
  • UDP checksum
  • Viacute dụ Checksum
  • Slide 20
  • Caacutec nguyecircn lyacute truyền dữ liệu tin cậy
  • Slide 22
  • Slide 23
  • Truyền dữ liệu tin cậy
  • Slide 25
  • Rdt10 truyền dữ liệu tin cậy trecircn 1 kecircnh truyền tin cậy
  • Rdt20 kecircnh với caacutec lỗi
  • rdt20 đặc tả FSM
  • rdt20 hoạt động khi khocircng lỗi
  • rdt20 hoạt động khi coacute lỗi
  • rdt20 coacute lỗ hổng nghiecircm trọng
  • rdt21 người gửi quản lyacute caacutec ACKNAK bị hỏng
  • Slide 33
  • rdt21 thảo luận
  • rdt22 một giao thức khocircng cần NAK
  • rdt22 gửi nhận caacutec mảnh
  • rdt30 caacutec kecircnh với lỗi vagrave mất maacutet
  • rdt30 gửi
  • hagravenh động của rdt30
  • Slide 40
  • Hiệu suất của rdt30
  • rdt30 hoạt động dừng-vagrave-chờ
  • Caacutec giao thức Pipelined
  • Pipelining độ khả dụng tăng
  • Go-Back-N
  • GBN becircn gửi mở rộng FSM
  • GBN becircn nhận mở rộng FSM
  • GBN hoạt động
  • Lặp coacute lựa chọn
  • Lặp coacute lựa chọn caacutec cửa sổ gửi nhận
  • Slide 51
  • Hoạt động của lặp coacute lựa chọn
  • Lặp coacute lựa chọn tigravenh trạng khoacute giải quyết
  • Slide 54
  • TCP Tổng quan RFCs 793 1122 1323 2018 2581
  • TCP cấu truacutec đoạn
  • Caacutec số thứ tự TCP vagrave ACK
  • TCP Round Trip Time vagraveTimeout
  • TCP Round Trip Time vagrave Timeout
  • Viacute dụ đaacutenh giaacute RTT
  • Slide 61
  • TCP truyền dữ liệu tin cậy
  • TCP caacutec sự kiện
  • TCP becircn gửi (đơn giản)
  • TCP caacutec tigravenh huống truyền lại
  • TCP caacutec tigravenh huống truyền lại (tt)
  • TCP sinh ra ACK [RFC 1122 RFC 2581]
  • Truyền lại nhanh
  • Giải thuật truyền lại nhanh
  • Slide 70
  • TCP điều khiển luồng
  • TCP điều khiển luồng caacutech lagravem
  • Slide 73
  • TCP quản lyacute kết nối
  • TCP quản lyacute kết nối (tt)
  • Slide 76
  • Slide 77
  • Slide 78
  • Caacutec nguyecircn lyacute điều khiển tắc nghẽn
  • Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 1
  • Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 2
  • Slide 82
  • Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 3
  • Slide 84
  • Caacutec caacutech tiếp cận đối với điều khiển tắc nghẽn
  • Viacute dụ điều khiển tắc nghẽn ATM ABR
  • Slide 87
  • Slide 88
  • TCP điều khiển tắc nghẽn additive tăng lecircn multiplicative giảm xuống
  • TCP điều khiển tắc nghẽn chi tiết
  • TCP khởi động chậm
  • TCP khởi động chậm (tt)
  • Tinh chế
  • Tinh chế nhận biết mất maacutet
  • Tổng kết TCP điều khiển tắc nghẽn
  • TCP điều khiển tắc nghẽn becircn gửi
  • TCP throughput
  • TCP tương lai
  • TCP tiacutenh cocircng bằng
  • Tại sao phải TCP cocircng bằng
  • TCP tiacutenh cocircng bằng (tt)
  • Mocirc higravenh trễ
  • Cửa sổ tắc nghẽn cố định (1)
  • Cửa sổ tắc nghẽn cố định (2)
  • TCP Mocirc higravenh trễ Khởi động chậm (1)
  • TCP Mocirc higravenh trễ Khởi động chậm (2)
  • TCP Mocirc higravenh trễ(3)
  • TCP Mocirc higravenh trễ (4)
  • HTTP Mocirc higravenh
  • Slide 110
  • Slide 111
  • Chương 3 Tổng kết

Transport Layer 3-6

Caacutec giao thức lớp transport trecircn Internet tin cậy truyền theo

thứ tự (TCP) điều khiển tắc nghẽn điều khiển luồng thiết lập kết nối

khocircng tin cậy truyền khocircng theo thứ tự UDP mở rộng của giao thức

IP

khocircng coacute caacutec dịch vụ bảo đảm trễ bảo đảm bandwidth

application

transportnetworkdata linkphysical

application

transportnetworkdata linkphysical

networkdata linkphysical

networkdata linkphysical

networkdata linkphysical

networkdata linkphysicalnetwork

data linkphysical

logical end-end transport

Transport Layer 3-7

Chương 3 Nội dung trigravenh bagravey

31 Caacutec dịch vụ lớp Transport

32 Multiplexing vagrave demultiplexing

33 Vận chuyển khocircng kết nối UDP

34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy

35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối

36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn

37 Điều khiển tắc nghẽn TCP

Transport Layer 3-8

Multiplexingdemultiplexing

application

transport

network

link

physical

P1 application

transport

network

link

physical

application

transport

network

link

physical

P2P3 P4P1

host 1 host 2 host 3

= tiến trigravenh = socket

vận chuyển caacutec đoạn đatilde nhận được đến đuacuteng socket

Demultiplexing tại host nhậnthu nhặt dữ liệu từ nhiều socket đoacuteng goacutei dữ liệu vớiheader (sẽ dugraveng sau đoacute chodemultiplexing)

Multiplexing tại host gửi

Transport Layer 3-9

Demultiplexing lagravem việc như thế nagraveo host nhận caacutec IP datagrams

mỗi datagram coacute địa chỉ IP nguồn vagrave IP điacutech

mỗi datagram mang 1 đoạn của lớp transport

mỗi đoạn coacute số port nguồn vagrave điacutech

host dugraveng địa chỉ IP amp số port để điều hướng đoạn đến socket thiacutech hợp

port nguồn port điacutech

32 bits

dữ liệu ứng dụng(thocircng điệp)

caacutec header fields khaacutec

dạng thức đoạn TCPUDP

Transport Layer 3-10

Demultiplexing khocircng kết nối

Tạo caacutec sockets với caacutec số port

DatagramSocket mySocket1 = new DatagramSocket(12534)

DatagramSocket mySocket2 = new DatagramSocket(12535)

UDP socket được xaacutec định bởi bộ 2

(địa chỉ IP số port điacutech)

Khi host nhận đoạn UDP kiểm tra port điacutech trong

đoạn điều hướng đoạn UDP

đến socket nagraveo phugrave hợp với số port đoacute

IP datagrams với địa chỉ IP nguồn vagravehoặc số port khaacutec nhau coacute thể được điều hướng đến cugraveng socket

Transport Layer 3-11

Demultiplexing khocircng kết nối (tiếp)

DatagramSocket serverSocket = new DatagramSocket(6428)

ClientIPB

P2

client IP A

P1P1P3

serverIP C

SP 6428

DP 9157

SP 9157

DP 6428

SP 6428

DP 5775

SP 5775

DP 6428

SP cung cấp ldquođịa chỉ trở vềrdquo

Transport Layer 3-12

Demultiplexing hướng kết nối

TCP socket được xaacutec định bởi bộ 4 địa chỉ IP nguồn số port nguồn địa chỉ IP điacutech số port điacutech

host nhận dugraveng cả 4 giaacute trị trecircn để điều hướng đoạn đến socket thiacutech hợp

Host server coacute thể hỗ trợ nhiều TCP socket đồng thời mỗi socket được xaacutec

định bởi bộ 4 của noacute

Web server coacute caacutec socket khaacutec nhau cho mỗi kết nối từ client kết nối HTTP khocircng bền

vững sẽ coacute socket khaacutec nhau cho mỗi yecircu cầu

Transport Layer 3-13

Demultiplexing hướng kết nối (tiếp)

ClientIPB

P1

client IP A

P1P2P4

serverIP C

SP 9157

DP 80

SP 9157

DP 80

P5 P6 P3

D-IPCS-IP A

D-IPC

S-IP B

SP 5775

DP 80

D-IPCS-IP B

Transport Layer 3-14

Demultiplexing hướng kết nối Threaded Web Server

ClientIPB

P1

client IP A

P1P2

serverIP C

SP 9157

DP 80

SP 9157

DP 80

P4 P3

D-IPCS-IP A

D-IPC

S-IP B

SP 5775

DP 80

D-IPCS-IP B

Transport Layer 3-15

Chương 3 Nội dung trigravenh bagravey

31 Caacutec dịch vụ lớp Transport

32 Multiplexing vagrave demultiplexing

33 Vận chuyển khocircng kết nối UDP

34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy

35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối

36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn

37 Điều khiển tắc nghẽn TCP

Transport Layer 3-16

UDP User Datagram Protocol [RFC 768]

giao thức Internet transport ldquođơn giản hoacuteardquo

dịch vụ ldquobest effortrdquo caacutec đoạn UDP coacute thể mất maacutet vận chuyển khocircng thứ

tự đến ứng dụng connectionless (khocircng

kết nối) khocircng bắt tay giữa

người nhận vagrave người gửi UDP

mỗi đoạn UDP được quản lyacute độc lập

Coacute UDP để lagravem gigrave khocircng thiết lập kết nối

(giuacutep coacute thể thecircm delay) đơn giản khocircng trạng

thaacutei kết nối tại nơi gửi nơi nhận

header của đoạn nhỏ khocircng điều khiển tắc

nghẽn UDP coacute thể gửi nhanh nhất theo mong muốn

Transport Layer 3-17

UDP (tt)

thường dugraveng cho caacutec ứng dụng streaming multimedia chịu mất maacutet cảm nhận tốc độ

ngoagravei ra UDP dugraveng DNS SNMP

truyền tin cậy trecircn UDP thecircm khả năng nagravey tại lớp application sửa lỗi

source port dest port

32 bits

dữ liệu ứng dụng

(thocircng điệp)

dạng thức đoạn UDP

length checksumĐộ dagravei

đoạn UDPbao gồm cả

header

Transport Layer 3-18

UDP checksum

Người gửi đối xử caacutec nội dung

đoạn như một chuỗi caacutec số nguyecircn 16-bit

checksum bổ sung(tổng bugrave 1) của caacutec nội dung đoạn

đặt giaacute trị checksum vagraveo trường UDP checksum

Người nhận tiacutenh toaacuten checksum của

đoạn đatilde nhận kiểm tra giaacute trị trecircn coacute bằng

với giaacute trị trong trường checksum NO ndash coacute lỗi xảy ra YES ndash khocircng coacute lỗi Nhưng coacute thể cograven lỗi

khaacutec nữa Xem tiếp phần sau hellip

Mục tiecircu kiểm tra caacutec ldquolỗirdquo (caacutec bit cờ đatilde bật lecircn) trong caacutec đoạn đatilde truyền

Transport Layer 3-19

Viacute dụ Checksum Lưu yacute

Khi cộng caacutec số một bit nhớ ở phiacutea cao nhất coacute thể sẽ phải thecircm vagraveo kết quả

Viacute dụ cộng hai số nguyecircn 16-bit

1 1 1 1 0 0 1 1 0 0 1 1 0 0 1 1 01 1 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1

1 1 0 1 1 1 0 1 1 1 0 1 1 1 0 1 1

1 1 0 1 1 1 0 1 1 1 0 1 1 1 1 0 01 0 1 0 0 0 1 0 0 0 1 0 0 0 0 1 1

bit dư

tổngchecksum

Transport Layer 3-20

Chương 3 Nội dung trigravenh bagravey

31 Caacutec dịch vụ lớp Transport

32 Multiplexing vagrave demultiplexing

33 Vận chuyển khocircng kết nối UDP

34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy

35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối

36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn

37 Điều khiển tắc nghẽn TCP

Transport Layer 3-21

Caacutec nguyecircn lyacute truyền dữ liệu tin cậy quan trọng trong caacutec lớp application transport link lagrave danh saacutech 10 vấn đề quan trọng nhất của mạng

caacutec đặc thugrave của kecircnh truyền khocircng tin cậy sẽ xaacutec định sự phức tạp của giao thức truyền dữ liệu data transfer protocol (rdt)

Transport Layer 3-22

Caacutec nguyecircn lyacute truyền dữ liệu tin cậy quan trọng trong caacutec lớp application transport link lagrave danh saacutech 10 vấn đề quan trọng nhất của mạng

caacutec đặc thugrave của kecircnh truyền khocircng tin cậy sẽ xaacutec định sự phức tạp của giao thức truyền dữ liệu data transfer protocol (rdt)

Transport Layer 3-23

Caacutec nguyecircn lyacute truyền dữ liệu tin cậy quan trọng trong caacutec lớp application transport link lagrave danh saacutech 10 vấn đề quan trọng nhất của mạng

caacutec đặc thugrave của kecircnh truyền khocircng tin cậy sẽ xaacutec định sự phức tạp của giao thức truyền dữ liệu data transfer protocol (rdt)

Transport Layer 3-24

Truyền dữ liệu tin cậy

sendside

receiveside

rdt_send() được gọi bởi lớp app Chuyển dữ liệu cần truyền

đến lớp cao hơn becircn nhận

udt_send() được gọi bởi rdt để truyền caacutec goacutei trecircn kecircnh khocircng tin cậy đến nơi

nhận

rdt_rcv() được gọi khi goacutei đến kecircnh becircn nhận

deliver_data() được gọi bởi rdt để truyền dữ liệu

đến lớp cao hơn

Transport Layer 3-25

Truyền dữ liệu tin cậy

Sẽ chỉ xem xeacutet truyền dữ liệu theo 1 hướng duy

nhất nhưng điều khiển luồng thocircng tin sẽ theo cả 2

chiều

dugraveng maacutey trạng thaacutei hữu hạn (finite state machines-FSM) để xaacutec định người gửi người nhận

trthaacutei1

trthaacutei2

sự kiện gacircy ra trạng thaacutei truyềncaacutec hagravenh động xảy ra khi truyền

trạng thaacutei khi ở ldquotrạng thaacuteirdquo nagravey thigrave

trạng thaacutei kế tiếp duy nhất được xaacutec định bởi sự kiện kế

tiếp

sự kiệncaacutec hagravenh động

Transport Layer 3-26

Rdt10 truyền dữ liệu tin cậy trecircn 1 kecircnh truyền tin cậy

kecircnh ưu tiecircn tin cậy hoagraven toagraven khocircng coacute caacutec lỗi khocircng mất maacutet caacutec goacutei

caacutec FSM phacircn biệt cho người gửi người nhận người gửi gửi dữ liệu vagraveo kecircnh ưu tiecircn người nhận nhận dữ liệu từ kecircnh ưu tiecircn

chờ gọi từ lớp trecircn packet = make_pkt(data)

udt_send(packet)

rdt_send(data)

extract (packetdata)deliver_data(data)

chờ gọi từ lớp dưới

rdt_rcv(packet)

người gửi người nhận

Transport Layer 3-27

Rdt20 kecircnh với caacutec lỗi

kecircnh ưu tiecircn coacute thể bật lecircn một số bit trong goacutei checksum để kiểm tra caacutec lỗi

Hỏi lagravem sao khocirci phục caacutec lỗi acknowledgements (ACKs) becircn nhận rotilde ragraveng thocircng

baacuteo cho becircn gửi rằng quaacute trigravenh nhận goacutei tốt negative acknowledgements (NAKs) becircn nhận rotilde ragraveng

thocircng baacuteo cho becircn gửi rằng quaacute trigravenh nhận goacutei coacute lỗi người gửi gửi lại goacutei nagraveo được xaacutec nhận lagrave NAK

caacutec cơ chế mới trong rdt20 (sau rdt10) kiểm tra lỗi nhận phản hồi caacutec thocircng điệp điều khiển (ACKNAK)

becircn nhận becircn gửi

Transport Layer 3-28

rdt20 đặc tả FSM

chờ gọi từ lớp trecircn

snkpkt = make_pkt(data checksum)udt_send(sndpkt)

extract(rcvpktdata)deliver_data(data)udt_send(ACK)

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)

rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp isNAK(rcvpkt)

udt_send(NAK)

rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)

chờ ACK hoặc NAK

chờ gọi từ lớp dưới

người gửi

người nhậnrdt_send(data)

Transport Layer 3-29

rdt20 hoạt động khi khocircng lỗi

chờ gọi từ lớp dưới

snkpkt = make_pkt(data checksum)udt_send(sndpkt)

extract(rcvpktdata)deliver_data(data)udt_send(ACK)

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)

rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp isNAK(rcvpkt)

udt_send(NAK)

rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)

chờ ACK hoặc NAK

chờ gọi từ lớp dưới

rdt_send(data)

Transport Layer 3-30

rdt20 hoạt động khi coacute lỗi

chờ gọi từ lớp dưới

snkpkt = make_pkt(data checksum)udt_send(sndpkt)

extract(rcvpktdata)deliver_data(data)udt_send(ACK)

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)

rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp isNAK(rcvpkt)

udt_send(NAK)

rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)

chờ ACK hoặc NAK

chờ gọi từ lớp dưới

rdt_send(data)

Transport Layer 3-31

rdt20 coacute lỗ hổng nghiecircm trọngĐiều gigrave xảy ra nếu

ACKNAK bị hỏng người gửi khocircng biết điều

gigrave đatilde xảy ra tại becircn nhận

khocircng thể đơn phương truyền lại khả năng trugraveng lặp

Quản lyacute trugraveng lặp người gửi truyền lại goacutei

hiện tại nếu ACKNAK bị hỏng

người gửi thecircm số thứ tự vagraveo mỗi goacutei

người nhận hủy (khocircng nhận) goacutei trugraveng lặp

Người gửi gửi 1 goacutei sau đoacute dừng lại chờ phản hồitừ người nhận

dừng vagrave chờ

Transport Layer 3-32

rdt21 người gửi quản lyacute caacutec ACKNAK bị hỏng

chờ gọi 0 từ lớp trecircn

sndpkt = make_pkt(0 data checksum)udt_send(sndpkt)

rdt_send(data)

chờ ACK hoặc NAK

0 udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) ||isNAK(rcvpkt) )

sndpkt = make_pkt(1 data checksum)udt_send(sndpkt)

rdt_send(data)

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) ||isNAK(rcvpkt) )

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt)

chờ gọi 1 từ lớp trecircn

chờ ACK hoặc NAK

1

Transport Layer 3-33

rdt21 người gửi quản lyacute caacutec ACKNAK bị hỏng

chờ 0 từ dưới

sndpkt = make_pkt(NAK chksum)udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp not corrupt(rcvpkt) ampamp has_seq0(rcvpkt)

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp has_seq1(rcvpkt)

extract(rcvpktdata)deliver_data(data)sndpkt = make_pkt(ACK chksum)udt_send(sndpkt)

chờ 1 từ dưới

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp has_seq0(rcvpkt)

extract(rcvpktdata)deliver_data(data)sndpkt = make_pkt(ACK chksum)udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp (corrupt(rcvpkt)

sndpkt = make_pkt(ACK chksum)udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp not corrupt(rcvpkt) ampamp has_seq1(rcvpkt)

rdt_rcv(rcvpkt) ampamp (corrupt(rcvpkt)

sndpkt = make_pkt(ACK chksum)udt_send(sndpkt)

sndpkt = make_pkt(NAK chksum)udt_send(sndpkt)

Transport Layer 3-34

rdt21 thảo luận

người gửi số thứ tự thecircm vagraveo

goacutei chỉ cần hai số thứ tự

(01) lagrave đủ Tại sao phải kiểm tra nếu việc

nhận ACKNAK bị hỏng

số trạng thaacutei tăng lecircn 2 lần trạng thaacutei phải ldquonhớrdquo

goacutei ldquohiện tạirdquo coacute số thứ tự lagrave 0 hay 1

người nhận phải kiểm tra coacute

nhận trugraveng goacutei khocircng trạng thaacutei chỉ rotilde coacute

hay khocircng mong chờ số thứ tự 0 hoặc 1

chuacute yacute người nhận khocircng biết ACKNAK vừa rồi của noacute coacute được người gửi nhận tốt hay khocircng

Transport Layer 3-35

rdt22 một giao thức khocircng cần NAK

chức năng giống như rdt21 chỉ dugraveng caacutec ACK thay cho NAK người nhận gửi ACK cho goacutei vừa

rồi đatilde nhận tốt người nhận phải rotilde ragraveng chegraven số thứ tự của goacutei vừa ACK

trugraveng ACK tại người gửi hậu quả giống như hagravenh động của NAK truyền lại goacutei vừa rồi

Transport Layer 3-36

rdt22 gửi nhận caacutec mảnh

Chờ cho gọi 0 từ

trecircn

sndpkt = make_pkt(0 data checksum)udt_send(sndpkt)

rdt_send(data)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) || isACK(rcvpkt1) )

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt0)

Chờ cho ACK

0

gửi phacircn mảnhFSM

Chờ cho gọi

0 từ dưới

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp has_seq1(rcvpkt)

extract(rcvpktdata)deliver_data(data)sndpkt = make_pkt(ACK1 chksum)udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp (corrupt(rcvpkt) || has_seq1(rcvpkt))

udt_send(sndpkt)

nhận phacircn mảnhFSM

Transport Layer 3-37

rdt30 caacutec kecircnh với lỗi vagrave mất maacutet

Giả định mới kecircnh ưu tiecircn cũng coacute thể lagravem mất caacutec goacutei (dữ liệu hoặc caacutec ACK) checksum số thứ tự

caacutec ACK caacutec việc truyền lại sẽ hỗ trợ nhưng khocircng đủ

Caacutech tiếp cận người gửi chờ ACK trong khoảng thời gian ldquochấp nhận đượcrdquo

truyền lại nếu khocircng nhận ACK trong khoảng thời gian nagravey

nếu goacutei (hoặc ACK) chỉ trễ (khocircng mất) truyền lại sẽ gacircy trugraveng

nhưng dugraveng số thứ tự sẽ giải quyết được

người nhận phải xaacutec định số thứ tự của goacutei vừa gửi ACK

cần bộ định thigrave đếm lugravei

Transport Layer 3-38

rdt30 gửi

sndpkt = make_pkt(0 data checksum)udt_send(sndpkt)start_timer

rdt_send(data)

Chờ cho

ACK 0

rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) ||isACK(rcvpkt1) )

Chờ cho gọi 1 từ trecircn

sndpkt = make_pkt(1 data checksum)udt_send(sndpkt)start_timer

rdt_send(data)

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt0)

rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) ||isACK(rcvpkt0) )

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt1)

stop_timerstop_timer

udt_send(sndpkt)start_timer

timeout

udt_send(sndpkt)start_timer

timeout

rdt_rcv(rcvpkt)

Chờ cho gọi 0 từ trecircn

Chờ cho

ACK 1

rdt_rcv(rcvpkt)

Transport Layer 3-39

hagravenh động của rdt30

Transport Layer 3-40

hagravenh động của rdt30

Transport Layer 3-41

Hiệu suất của rdt30

rdt30 lagravem việc được nhưng đaacutenh giaacute hiệu suất hơi rắc rối viacute dụ liecircn kết 1 Gbps trễ lan truyền giữa hai đầu cuối lagrave 15

ms goacutei 1KB

T truyền = 8kbpkt109 bsec

= 8 microsec

U sender độ khả dụng ndash

U sender

= 008

30008 = 000027

microseconds

L R

RTT + L R =

L (độ dagravei goacutei tiacutenh bằng bits)R (tốc độ truyền bps)

=

goacutei 1KB mỗi 30 msec -gt 33kBs trecircn đường truyền 1 Gbps giao thức network hạn chế việc dugraveng caacutec tagravei nguyecircn vật

lyacute

Transport Layer 3-42

rdt30 hoạt động dừng-vagrave-chờ

goacutei đầu tiecircn đatilde truyền t = 0

gửi nhận

RTT

goacutei cuối cugraveng đatilde truyền t = L R

goacutei đầu tiecircn đatilde đếngoacutei cuối cugraveng đatilde đến gửi ACK

ACK đến gửi goacutei kế tiếp t = RTT + L R

U sender

= 008

30008 = 000027

microseconds

L R

RTT + L R =

Transport Layer 3-43

Caacutec giao thức Pipelined

Pipelining người gửi cho pheacutep gửi nhiều goacutei đồng thời khocircng cần chờ baacuteo nhận được nhoacutem caacutec số thứ tự phải tăng dần phải coacute bộ nhớ đệm tại nơi gửi vagravehoặc nơi nhận

hai dạng phổ biến của caacutec giao thức pipelined go-Back-N Lặp coacute lựa chọn

Transport Layer 3-44

Pipelining độ khả dụng tăng

goacutei đầu tiecircn đatilde truyền t = 0

sender receiver

RTT

goacutei cuối cugraveng đatilde truyền t = L R

goacutei đầu tiecircn đatilde đếngoacutei cuối cugraveng đatilde đến gửi ACK

ACK đến gửi goacuteikế tiếp t = RTT + L R

bit cuối của goacutei thứ 2 đến gửi ACKbit cuối của goacutei thứ 3 đến gửi ACK

U sender

= 024

30008 = 00008

microseconds

3 L R

RTT + L R =

Độ khả dụng tăng lecircngấp 3 lần

Transport Layer 3-45

Go-Back-NBecircn gửi k-bit số thứ tự trong header của goacutei ldquocửa sổrdquo tăng lecircn đến N cho pheacutep gửi caacutec goacutei liecircn tục khocircng cần ACK

ACK(n) ACKs tất cả caacutec goacutei đến chứa số thứ tự n ndash ldquoACK tiacutech lũyrdquo coacute thể nhận caacutec ACK trugraveng lặp (xem becircn nhận)

định thigrave cho mỗi goacutei trecircn đường truyền timeout(n) gửi lại goacutei n vagrave tất cả caacutec goacutei coacute số thứ tự cao

hơn trong cửa sổ

Transport Layer 3-46

GBN becircn gửi mở rộng FSM

chờ start_timerudt_send(sndpkt[base])udt_send(sndpkt[base+1])hellipudt_send(sndpkt[nextseqnum-1])

timeout

rdt_send(data)

if (nextseqnum lt base+N) sndpkt[nextseqnum] = make_pkt(nextseqnumdatachksum) udt_send(sndpkt[nextseqnum]) if (base == nextseqnum) start_timer nextseqnum++ else refuse_data(data)

base = getacknum(rcvpkt)+1If (base == nextseqnum) stop_timer else start_timer

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)

base=1nextseqnum=1

rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)

Transport Layer 3-47

GBN becircn nhận mở rộng FSM

ACK-duy nhất luocircn luocircn gửi ACK cho goacutei đatilde nhận đuacuteng với số thứ tự xếp hạng cao nhất coacute thể sinh ra caacutec ACK trugraveng nhau chỉ cần nhớ expectedseqnum

goacutei khocircng theo thứ tự hủy -gt khocircng nhận vagraveo bộ đệm gửi lại ACK với số thứ tự xếp hạng cao nhất

chờ

udt_send(sndpkt)

default

rdt_rcv(rcvpkt) ampamp notcurrupt(rcvpkt) ampamp hasseqnum(rcvpktexpectedseqnum)

extract(rcvpktdata)deliver_data(data)sndpkt = make_pkt(expectedseqnumACKchksum)udt_send(sndpkt)expectedseqnum++

expectedseqnum=1sndpkt = make_pkt(expectedseqnumACKchksum)

Transport Layer 3-48

GBN hoạt động

Transport Layer 3-49

Lặp coacute lựa chọn

becircn nhận thocircng baacuteo đatilde nhận đuacuteng tất cả từng goacutei một đệm (buffer) caacutec goacutei nếu cần thiết

becircn gửi chỉ gửi lại caacutec goacutei nagraveo khocircng nhận được ACK becircn gửi định thigrave đối với mỗi goacutei khocircng gửi ACK

cửa sổ becircn gửi N số thứ tự liecircn tục hạn chế số thứ tự caacutec goacutei khocircng gửi ACK

Transport Layer 3-50

Lặp coacute lựa chọn caacutec cửa sổ gửi nhận

Transport Layer 3-51

Lặp coacute lựa chọn

dữ liệu từ lớp trecircn nếu số thứ tự kế tiếp sẵn

sagraveng trong cửa sổ gửi goacutei

timeout(n) gửi lại goacutei n taacutei khởi tạo

bộ định thigrave

ACK(n) trong [sendbasesendbase+N]

đaacutenh dấu goacutei n lagrave đatilde nhận nếu goacutei khocircng ACK coacute n

nhỏ nhất dịch chuyển cửa sổ base đến số thứ tự khocircng ACK kế tiếp

Gửigoacutei n trong [rcvbase

rcvbase+N-1]

gửi ACK(n) khocircng thứ tự đệm

(buffer) coacute thứ tự truyền (cũng

truyền caacutec goacutei đatilde đệm coacute thứ tự) dịch chuyển cửa sổ đến goacutei chưa nhận kế tiếp

goacutei n trong [rcvbase-Nrcvbase-1]

ACK(n)

ngược lại lờ đi

Nhận

Transport Layer 3-52

Hoạt động của lặp coacute lựa chọn

Transport Layer 3-53

Lặp coacute lựa chọntigravenh trạng khoacute giải quyếtViacute dụ Số thứ tự 0 1 2 3 Kiacutech thước cửa sổ = 3

becircn nhận khocircng thấy sự khaacutec nhau trong 2 tigravenh huống

chuyển khocircng chiacutenh xaacutec dữ liệu trugraveng lặp như dữ liệu mới trong (a)

Hỏi quan hệ giữa datildey số thứ tự vagrave kiacutech thước cửa sổ

Transport Layer 3-54

Chương 3 Nội dung trigravenh bagravey

31 Caacutec dịch vụ lớp Transport

32 Multiplexing vagrave demultiplexing

33 Vận chuyển khocircng kết nối UDP

34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy

35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối

36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn

37 Điều khiển tắc nghẽn TCP

Transport Layer 3-55

TCP Tổng quan RFCs 793 1122 1323 2018 2581

dữ liệu full duplex luồng dữ liệu đi 2 chiều

trong cugraveng một kết nối MSS maximum

segment size ndash kiacutech thước đoạn tối đa

hướng kết nối bắt tay (trao đổi caacutec

thocircng điệp điều khiển) trạng thaacutei becircn gửi becircn nhận trước khi trao đổi dữ liệu

điều khiển luồng becircn gửi sẽ khocircng lấn aacutet

becircn nhận

point-to-point một becircn gửi một becircn

nhận tin cậy dograveng byte coacute

thứ tự khocircng ldquoranh giới thocircng

điệprdquo kecircnh liecircn lạc

TCP điều khiển luồng vagrave tắc nghẽn thiết lập kiacutech thước cửa sổ

caacutec bộ đệm gửi amp nhận

socketdoor

T C Psend buffer

T C Preceive buffer

socketdoor

segm ent

applicationwrites data

applicationreads data

Transport Layer 3-56

TCP cấu truacutec đoạn

port nguồn port điacutech

32 bits

dữ liệu ứng dụng(độ dagravei thay đổi)

số thứ tự

số ACKcửa sổ nhận

con trỏ URGchecksum

FSRPAUheadlen

notused

Tugravey chọn (độ dagravei thay đổi)

URG dữ liệu khẩn cấp(thường khocircng dugraveng)

ACK ACK hợp lệ

PSH push data now(thường khocircng dugraveng)

RST SYN FINthiết lập kết nối

(caacutec lệnh thiết lậpchia nhỏ)

số byte becircn nhận sẵn sagraveng chấp nhận

đếm bởi số bytecủa dữ liệu

Internetchecksum

(giống UDP)

Transport Layer 3-57

Caacutec số thứ tự TCP vagrave ACKCaacutec số thứ tự

dograveng byte ldquođaacutenh sốrdquo byte đầu tiecircn trong dữ liệu của đoạn

caacutec ACK số thứ tự của byte

kế tiếp được chờ đợi từ phiacutea becircn kia

ACK tiacutech lũyHỏi lagravem thế nagraveo becircn

nhận quản lyacute caacutec đoạn khocircng thứ tự Trả lời TCP khocircng

đề cập tugravey thuộc người hiện thực

Host A Host B

Seq=42 ACK=79 data = lsquoCrsquo

Seq=79 ACK=43 data = lsquoCrsquo

Seq=43 ACK=80

UsernhậplsquoCrsquo

host ACKsnhận phản hồi

lsquoCrsquo

host ACKsbaacuteo nhận

lsquoCrsquo phản hồingược lại lsquoCrsquo

timetigravenh huống telnet đơn giản

Transport Layer 3-58

TCP Round Trip Time vagraveTimeout

Hỏi Lagravem thế nagraveo để thiết lập giaacute trị TCP timeout

dagravei hơn RTT khaacutec với RTT

quaacute ngắn timeout sớm truyền lại khocircng

cần thiết quaacute dagravei phản ứng

chậm đối với việc mất maacutet goacutei

Hỏi Lagravem thế nagraveo để thiết lập RTT

SampleRTT thời gian được đo từ khi truyền đoạn đến khi baacuteo nhận ACK lờ đi việc truyền lại

SampleRTT sẽ thay đổi muốn ước lượng RTT ldquomượt hơnrdquo tiacutenh trung bigravenh một số giaacute

trị đo được gần đoacute khocircng chỉ SampleRTT hiện tại

Transport Layer 3-59

TCP Round Trip Time vagrave Timeout

EstimatedRTT = (1- )EstimatedRTT + SampleRTT

giaacute trị đặc trưng = 0125

Transport Layer 3-60

Viacute dụ đaacutenh giaacute RTTRTT gaiacsumassedu to fantasiaeurecomfr

100

150

200

250

300

350

1 8 15 22 29 36 43 50 57 64 71 78 85 92 99 106

time (seconnds)

RTT

(mill

isec

onds

)

SampleRTT Estimated RTT

Transport Layer 3-61

TCP Round Trip Time vagrave Timeout

Thiết lập timeout EstimtedRTT cộng ldquohệ số dự trữ an toagravenrdquo

sự biến thiecircn lớn trong EstimatedRTT -gt hệ số dự trữ an toagraven lớn hơn ước lượng đầu tiecircn về sự biến thiecircn của SampleRTT từ EstimatedRTT

TimeoutInterval = EstimatedRTT + 4DevRTT

DevRTT = (1-)DevRTT + |SampleRTT-EstimatedRTT|

(tiecircu biểu = 025)

Sau đoacute thiết lập timeout interval

Transport Layer 3-62

TCP truyền dữ liệu tin cậy

TCP tạo dịch vụ rdt trecircn dịch vụ khocircng tin cậy IP

caacutec đoạn Pipelined caacutec ACK tiacutech lũy TCP dugraveng bộ định thigrave

truyền lại đơn

Truyền lại được kiacutech hoạt bởi caacutec sự kiện timeout caacutec ack trugraveng lặp

luacutec đầu khảo saacutet caacutec becircn gửi TCP đơn giản lờ đi caacutec ack trugraveng lặp lờ đi điều khiển luồng

điều khiển tắc nghẽn

Transport Layer 3-63

TCP caacutec sự kiệndữ liệu đatilde nhận từ ứng

dụng tạo đoạn với số thứ

tự của noacute số thứ tự lagrave số theo

byte dữ liệu đầu tiecircn khởi động bộ định thigrave

nếu chưa chạy khoảng thời gian hết

hạn TimeOutInterval

timeout gửi lại đoạn nagraveo gacircy

ra timeout khởi động lại bộ định

thigrave Ack đatilde nhận

cập nhật caacutei gigrave sẽ được ACK

khởi động bộ định thigrave nếu coacute caacutec đoạn cograven chờ

Transport Layer 3-64

TCP becircn gửi(đơn giản)

NextSeqNum = InitialSeqNum SendBase = InitialSeqNum

loop (forever) switch(event)

event data received from application above create TCP segment with sequence number NextSeqNum if (timer currently not running) start timer pass segment to IP NextSeqNum = NextSeqNum + length(data)

event timer timeout retransmit not-yet-acknowledged segment with smallest sequence number start timer

event ACK received with ACK field value of y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer

end of loop forever

Chuacute thiacutechbull SendBase-1 byte vừa được ACK tiacutech lũy Viacute dụbull SendBase-1 = 71y= 73 vigrave thế becircn nhận muốn 73+ y gt SendBase vigrave thế dữ liệu mới được chấp nhận

Transport Layer 3-65

TCP caacutec tigravenh huống truyền lại

Host A

Seq=100 20 bytes data

ACK=100

timetimeout sớm

Host B

Seq=92 8 bytes data

ACK=120

Seq=92 8 bytes data

Seq=

92

tim

eout

ACK=120

Host A

Seq=92 8 bytes data

ACK=100

loss

tim

eout

tigravenh huống mất ACK

Host B

X

Seq=92 8 bytes data

ACK=100

time

Seq=

92

tim

eout

SendBase= 100

SendBase= 120

SendBase= 120

Sendbase= 100

Transport Layer 3-66

TCP caacutec tigravenh huống truyền lại (tt)Host A

Seq=92 8 bytes data

ACK=100

loss

tim

eout

Cumulative ACK scenario

Host B

X

Seq=100 20 bytes data

ACK=120

time

SendBase= 120

Transport Layer 3-67

TCP sinh ra ACK [RFC 1122 RFC 2581]

Sự kiện tại becircn nhận

Đoạn đến với đuacuteng số thứ tự mong muốn Tất cả dữ liệu đếnđatilde được ACK

Đoạn đến với đuacuteng số thứ tự mong muốn Một đoạn khaacutec đangchờ ACK

Caacutec đoạn đến khocircng thứ tựlớn hơn số thứ tự đoạn mong muốnCoacute khoảng trống

Đoạn đếnlấp đầy từng phần hoặc toagraven bộkhoảng trống

TCP becircn nhận hagravenh động

ACK trễ Chờ đến 500mscho đoạn kế tiếp Nếu khocircng coacute đoạnkế tiếp gửi ACK

Gửi ngay một ACK tiacutech lũy chấp nhậncho cả caacutec đoạn theo thứ tự

Gửi ngay ACK trugraveng lặp chỉ thị số thứ tựđoạn của byte kế tiếp đang mong chờ

Gửi ngay ACK với điều kiện lagrave đoạnbắt đầu ngay điểm coacute khoảng trống

Transport Layer 3-68

Truyền lại nhanh

Chu kỳ Time-out thường tương đối dagravei độ trễ dagravei trước khi gửi

lại goacutei đatilde mất

Xaacutec nhận caacutec đoạn đatilde mất bằng caacutec ACK trugraveng lặp becircn gửi thường gửi

nhiều đoạn song song Nếu đoạn bị mất sẽ

xảy ra tigravenh trạng giống như nhiều ACK trugraveng nhau

Nếu becircn gửi nhận 3 ACK của cugraveng một dữ liệu noacute cho lagrave đoạn sau dữ liệu đatilde ACK bị mất Truyền lại nhanh gửi

lại đoạn trước khi bộ định thigrave hết hạn

Transport Layer 3-69

sự kiện ACK đatilde nhận với trường lagrave y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer else increment count of dup ACKs received for y if (count of dup ACKs received for y = 3) resend segment with sequence number y

Giải thuật truyền lại nhanh

một ACK trugraveng lặp cho đoạn đatilde được ACK

Truyền lại nhanh

Transport Layer 3-70

Chương 3 Nội dung trigravenh bagravey

31 Caacutec dịch vụ lớp Transport

32 Multiplexing vagrave demultiplexing

33 Vận chuyển khocircng kết nối UDP

34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy

35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối

36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn

37 Điều khiển tắc nghẽn TCP

Transport Layer 3-71

TCP điều khiển luồng

becircn nhận của kết nối TCP coacute một bộ đệm nhận

dịch vụ so trugraveng tốc độ so trugraveng tốc độ gửi với tốc độ nhận của ứng dụng

tiến trigravenh ứng dụng coacute thể chậm tại luacutec đọc bộ đệm

becircn gửi sẽ khocircng lagravem tragraven bộ đệm vigrave truyền quaacute nhiều vagrave

quaacute nhanh

điều khiển luồng

Transport Layer 3-72

TCP điều khiển luồng caacutech lagravem

(Giả sử becircn nhận TCP loại bỏ caacutec đoạn khocircng coacute thứ tự)

dự phograveng trong bộ đệm= RcvWindow

= RcvBuffer-[LastByteRcvd - LastByteRead]

Becircn nhận thocircng baacuteo khoảng dự trữ nhờ giaacute trị RcvWindow trong caacutec đoạn

Becircn gửi hạn chế dữ liệu khocircng được ACK vagraveo RcvWindow bảo đảm bộ đệm nhận

khocircng tragraven

Transport Layer 3-73

Chương 3 Nội dung trigravenh bagravey

31 Caacutec dịch vụ lớp Transport

32 Multiplexing vagrave demultiplexing

33 Vận chuyển khocircng kết nối UDP

34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy

35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối

36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn

37 Điều khiển tắc nghẽn TCP

Transport Layer 3-74

TCP quản lyacute kết nối

Chuacute yacute Becircn gửi vagrave becircn nhận TCP thiết lập ldquokết nốirdquo trước khi trao đổi dữ liệu

khởi tạo caacutec biến TCP caacutec số thứ tự đoạn thocircng tin caacutec bộ đệm điều

khiển luồng (như RcvWindow)

client người khởi xướng kết nối

Socket clientSocket = new Socket(hostnameport

number) server được tiếp xuacutec bởi

client Socket connectionSocket =

welcomeSocketaccept()

3 phương phaacutep bắt tay

Bước 1 client host gửi đoạnTCP SYN đến server xaacutec định số thứ tự khởi đầu khocircng phải dữ liệu

Bước 2 server host nhận SYN trả lời với đoạn SYNACK

server cấp phaacutet caacutec bộ đệm

xaacutec định số thứ tự khởi đầuBước 3 client nhận SYNACK trả

lời với đoạn ACK (coacute thể chứa dữ liệu)

Transport Layer 3-75

TCP quản lyacute kết nối (tt)

Đoacuteng một kết nối

client đoacuteng socket clientSocketclose()

Bước 1 client gửi đoạn điều khiển TCP FIN đến server

Bước 2 server nhận FIN trả lời với ACK Đoacuteng kết nối gửi FIN

client

FIN

server

ACK

ACK

FIN

đoacuteng

đoacuteng

đatilde đoacutengthời g

ian c

hờ

Transport Layer 3-76

TCP quản lyacute kết nối (tt)

Bước 3 client nhận FIN trả lời với ACK

Trong khoảng ldquothời gian chờrdquo ndash sẽ phản hồi với ACK để nhận caacutec FIN

Bước 4 server nhận ACK Kết nối đatilde đoacuteng

Chuacute yacute với một sửa đổi nhỏ coacute thể quản lyacute nhiều FIN đồng thời

client

FIN

server

ACK

ACK

FIN

đang đoacuteng

đang đoacuteng

đatilde đoacuteng

thời g

ian c

hờ

đatilde đoacuteng

Transport Layer 3-77

TCP quản lyacute kết nối (tt)

chu kỳ sống củaTCP client

chu kỳ sống củaTCP server

Transport Layer 3-78

Chương 3 Nội dung trigravenh bagravey

31 Caacutec dịch vụ lớp Transport

32 Multiplexing vagrave demultiplexing

33 Vận chuyển khocircng kết nối UDP

34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy

35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối

36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn

37 Điều khiển tắc nghẽn TCP

Transport Layer 3-79

Caacutec nguyecircn lyacute điều khiển tắc nghẽn

Tắc nghẽn ldquoquaacute nhiều nguồn gửi quaacute nhanh vagrave quaacute nhiều

dữ liệu đến mạngrdquo khaacutec với điều khiển luồng caacutec biểu hiện

caacutec goacutei bị mất (tragraven bộ đệm tại caacutec router) caacutec độ trễ quaacute dagravei (xếp hagraveng trong bộ đệm

của router) lagrave 1 trong 10 vấn đề nan giải nhất

Transport Layer 3-80

Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 1

2 gửi 2 nhận 1 router caacutec bộ

đệm khocircng giới hạn

khocircng coacute truyền lại

caacutec độ trễ lớn hơn khi tắc nghẽn

năng suất coacute thể đạt tối đa

unlimited shared output link buffers

Host Ain original data

Host B

out

Transport Layer 3-81

Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 2

1 router caacutec bộ đệm coacute giới hạn becircn gửi truyền lại caacutec goacutei đatilde mất

chia sẻ vocirc hạncaacutec bộ đệm ouput

Host A in dữ liệu gốc

Host B

out

in dữ liệu gốc cugraveng với dữ liệu truyền lại

Transport Layer 3-82

Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 2 luocircn luocircn

truyền lại ldquohoagraven toagravenrdquo chỉ khi mất maacutet

truyền lại vigrave trễ (khocircng mất) lagravem cho lớn hơn với cugraveng

in

out

=

in

out

gt

in

out

ldquocaacutec chi phiacuterdquo của tắc nghẽn nhiều việc (truyền lại) caacutec truyền lại khocircng cần thiết liecircn kết nhiều bản sao của

goacutei

R2

R2in

ou

t

b

R2

R2in

ou

t

a

R2

R2in

ou

t

c

R4

R3

Transport Layer 3-83

Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 3 4 người gửi caacutec đường qua nhiều hop timeouttruyền lại

in

Hỏi điều gigrave xảy ra nếu vagrave tăng lecircn

in

chia sẻ vocirc hạncaacutec bộ đệm ouput

Host Ain dữ liệu gốc

Host B

out

in dữ liệu gốc cugraveng với dữ liệu truyền lại

Transport Layer 3-84

Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 3

ldquochi phiacuterdquo khaacutec của tắc nghẽn khi caacutec goacutei bị bỏ bất kỳ ldquokhả năng truyền

upstream dugraveng cho goacutei đoacute sẽ bị latildeng phiacuterdquo

Host A

Host B

o

u

t

Transport Layer 3-85

Caacutec caacutech tiếp cận đối với điều khiển tắc nghẽn

điều khiển tắc nghẽn end-end

khocircng coacute phản hồi rotilde ragraveng từ mạng

tắc nghẽn được suy ra từ việc quan saacutet caacutec hệ thống đầu cuối coacute mất maacutet trễ

tiếp cận được quản lyacute bởi TCP

điều khiển tắc nghẽn coacute sự hỗ trợ của mạng

caacutec router cung cấp phản hồi về caacutec hệ thống đầu cuối 1 bit duy nhất chỉ thị

tắc nghẽn (SNA DECbit TCPIP ECN ATM)

tốc độ sẽ gửi được xaacutec định rotilde ragraveng

2 caacutech

Transport Layer 3-86

Viacute dụ điều khiển tắc nghẽn ATM ABR

ABR tốc độ bit sẵn sagraveng

ldquodịch vụ mềm dẻordquo nếu đường gửi ldquochưa

hếtrdquo becircn gửi sẽ dugraveng

băng thocircng sẵn sagraveng nếu đường gửi tắc

nghẽn becircn gửi điều tiết với

tốc độ tối thiểu

RM (resource management)

gửi bởi becircn gửi rải raacutec với caacutec ocirc dữ liệu

caacutec bit trong ocirc thiết lập bởi caacutec switch bit NI khocircng tăng tốc độ

(tắc nghẽn nhẹ) bit CI tắc nghẽn rotilde rệt

Caacutec ocirc RM được trả về becircn gửi từ becircn nhận với nguyecircn vẹn caacutec bit

Transport Layer 3-87

Viacute dụ điều khiển tắc nghẽn ATM ABR

trường 2-byte ER trong ocirc RM switch đatilde tắc nghẽn coacute thể coacute giaacute trị ER thấp hơn trong ocirc tốc độ gửi do đoacute coacute thể được hỗ trợ tối đa trecircn đường

EFCI bit trong caacutec ocirc dữ liệu được cagravei giaacute trị 1 trong switch đatilde tắc nghẽn nếu ocirc dữ liệu đứng trước ocirc RM coacute cagravei EFCI becircn gửi sẽ cagravei

bit CI trong ocirc RM trả về

Transport Layer 3-88

Chương 3 Nội dung trigravenh bagravey

31 Caacutec dịch vụ lớp Transport

32 Multiplexing vagrave demultiplexing

33 Vận chuyển khocircng kết nối UDP

34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy

35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối

36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn

37 Điều khiển tắc nghẽn TCP

Transport Layer 3-89

TCP điều khiển tắc nghẽn additive tăng lecircn multiplicative giảm xuống

8 Kbytes

16 Kbytes

24 Kbytes

time

congestionwindow

Caacutech tiếp cận tăng tốc độ truyền (kiacutech thước cửa sổ) tigravem khả năng băng thocircng coacute thể cho đến khi coacute mất maacutet xảy ra additive tăng lecircn tăng CongWin bởi 1 MSS

mỗi RTT cho đến khi coacute mất maacutet xảy ra multiplicative giảm xuống bỏ CongWin trong

nửa giai đoạn sau khi mất maacutet

timekiacutech

thư

ớc

cửa

sổ

tắc

nghẽ

n

Tigravem kiếm băng thocircng

Transport Layer 3-90

TCP điều khiển tắc nghẽn chi tiết

becircn gửi hạn chế việc truyền LastByteSent-LastByteAcked

CongWin Cocircng thức

CongWin thay đổi chức năng lagrave nhận biết tắc nghẽn trecircn mạng

Lagravem thế nagraveo becircn gửi nhận biết tắc nghẽn

mất maacutet xảy ra = timeout hoặc 3 ack trugraveng lặp

becircn gửi giảm tốc độ (CongWin) sau khi mất maacutet xảy ra

3 cơ chế AIMD khởi động chậm thận trọng sau khi coacute

caacutec sự kiện timeout

tốc độ = CongWin

RTT Bytess

Transport Layer 3-91

TCP khởi động chậm

Khi kết nối bắt đầu CongWin = 1 MSS Viacute dụ MSS = 500 bytes

amp RTT = 200 ms tốc độ khởi tạo = 20

kbps

băng thocircng sẵn sagraveng coacute thể gtgt MSSRTT mong muốn nhanh

choacuteng tăng tốc lecircn tốc độ coacute thể đaacutep ứng

Khi kết nối bắt đầu tăng tốc lecircn rất nhanh cho đến khi sự cố mất maacutet xảy ra đầu tiecircn

Transport Layer 3-92

TCP khởi động chậm (tt)

Khi kết nối bắt đầu tăng tốc lecircn rất nhanh cho đến khi sự cố mất maacutet xảy ra đầu tiecircn nhacircn đocirci CongWin mỗi

RTT hoagraven thagravenh nhờ tăng CongWin ứng với mỗi ACK đatilde nhận

Tổng kết tốc độ khởi đầu lagrave chậm nhưng sau đoacute tăng tốc rất nhanh

Host A

1 đoạn

RTT

Host B

thời gian

2 đoạn

4 đoạn

Transport Layer 3-93

Tinh chếHỏi Khi nagraveo việc tăng

tốc trở thagravenh tuyến tiacutenh

Trả lời Khi CongWin đạt đến 12 giaacute trị của noacute trước khi timeout

Hiện thực Ngưỡng thay đổi Tại thời điểm coacute sự cố

mất maacutet ngưỡng được cagravei giaacute trị bằng frac12 của CongWin ngay trước đoacute

Transport Layer 3-94

Tinh chế nhận biết mất maacutet

Sau 3 ACK trugraveng lặp CongWin sẽ giảm 12 kiacutech thước cửa sổ

tăng tuyến tiacutenh nhưng sau sự cố

timeout CongWin thay giaacute trị

bằng 1 MSS kiacutech thước cửa sổ

tăng cấp lũy thừa khi đến một ngưỡng

thigrave tăng tuyến tiacutenh

3 ACK trugraveng nhau chỉ ra khả năng truyền của mạng timeout chỉ thị ldquonhiều cảnh baacuteordquo về tigravenh huống tắc nghẽn

Nguyecircn lyacute

Transport Layer 3-95

Tổng kết TCP điều khiển tắc nghẽn

Khi CongWin dưới Threshold becircn gửi đang trong giai đoạn khởi động chậm kiacutech thước cửa sổ tăng nhanh theo cấp lũy thừa

Khi CongWin trecircn Threshold becircn gửi đang trong giai đoạn traacutenh tắc nghẽn kiacutech thước cửa sổ tăng nhanh theo cấp tuyến tiacutenh

Khi coacute 3 ACK trugraveng lặp xảy ra Threshold = CongWin2 vagrave CongWin = Threshold

Khi timeout xảy ra Threshold = CongWin2 vagrave CongWin = 1 MSS

Transport Layer 3-96

TCP điều khiển tắc nghẽn becircn gửi

Trạng thaacutei Sự kiện TCP becircn gửi hagravenh động Diễn giải

Slow Start (SS)-Khởi động chậm

ACK baacuteo nhận cho dữ liệu chưa ACK trước đoacute

CongWin = CongWin + MSS If (CongWin gt Threshold) cagravei đặt trạng thaacutei ldquoTraacutenh tắc nghẽnrdquo

Hậu quả lagravem tăng gấp đocirci CongWin mỗi RTT

CongestionAvoidance (CA) ndashTraacutenh tắc nghẽn

ACK baacuteo nhận cho dữ liệu chưa ACK trước đoacute

CongWin = CongWin+MSS (MSSCongWin)

Additive tăng lecircn lagravem tăng CongWin lecircn 1 MSS mỗi RTT

SS hoặc CA Sự cố mất maacutet xảy ra khi thấy coacute 3 ACK trugraveng lặp

Threshold = CongWin2 CongWin = Thresholdcagravei đặt trạng thaacutei ldquoTraacutenh tắc nghẽnrdquo

Khocirci phục nhanh hiện thực giảm xuống multiplicative CongWin sẽ khocircng giảm xuống dưới 1 MSS

SS hoặc CA Timeout Threshold = CongWin2 CongWin = 1 MSScagravei đặt trạng thaacutei ldquoKhởi động chậmrdquo

Vagraveo chế độ ldquoKhởi động chậmrdquo

SS hoặc CA ACK trugraveng lặp

Đếm ACK tăng lecircn cho đoạn vừa được ACK

CongWin vagrave Threshold khocircng thay đổi

Transport Layer 3-97

TCP throughput

Throughout trung bigravenh của TCP biểu diễn qua kiacutech thước của sổ vagrave RTT Bỏ qua trạng thaacutei ldquoKhởi động chậmrdquo

Cho W lagrave kiacutech thước cửa sổ khi coacute mất maacutet xảy ra

Khi kiacutech thước cửa sổ = W lưu lượng = WRTT

Chỉ ngay sau khi mất maacutet cửa sổ giảm xuống = W2 lưu lượng = W2RTT

throughout trung bigravenh 075 WRTT

Transport Layer 3-98

TCP tương lai

Viacute dụ caacutec đoạn dagravei 1500 byte RTT 100ms lưu lượng 10 Gbps

Kiacutech thước cửa sổ yecircu cầu W = 83333 đoạn trecircn đường truyền

Lưu lượng trong caacutec trường hợp mất maacutet

L = 210-10

Phiecircn bản mới của TCP dagravenh cho nhu cầu tốc độ cao

LRTT

MSS221

Transport Layer 3-99

Mục tiecircu nếu K phiecircn lagravem việc TCP chia sẻ kết nối cổ chai của băng thocircng lagrave R mỗi phiecircn coacute tốc độ trung bigravenh lagrave RK

TCP kết nối 1

router cổ chaikhả năng R

TCP kết nối 2

TCP tiacutenh cocircng bằng

Transport Layer 3-100

Tại sao phải TCP cocircng bằng

2 phiecircn lagravem việc cạnh tranh nhau Additive tăng lưu lượng tăng multiplicative giảm lưu lượng tương xứng

R

R

chia sẻ băng thocircng bằng nhau

Connection 1 throughputConnect

ion 2

th

roughput

traacutenh tắc nghẽn additive tăng lecircnmất maacutet giảm cửa sổ bằng 12

traacutenh tắc nghẽn additive tăng lecircnmất maacutet giảm cửa sổ bằng 12

Transport Layer 3-101

TCP tiacutenh cocircng bằng (tt)

Tiacutenh cocircng bằng amp UDP nhiều ứng dụng

thường khocircng dugraveng TCP khocircng muốn tốc độ bị

điều tiết do điều khiển tắc nghẽn

Thay bằng dugraveng UDP truyền audiovideo với

tốc độ ổn định chịu được mất maacutet

Nghiecircn cứu giao thức thacircn thiện với TCP

Tiacutenh cocircng bằng amp caacutec kết nối TCP song song

khocircng coacute gigrave ngăn cản việc ứng dụng mở caacutec kết nối song song giữa 2 host

Trigravenh duyệt Web lagravem giống như thế

Viacute dụ tốc độ R hỗ trợ 9 kết nối ứng dụng mới yecircu cầu 1

TCP coacute tốc độ R10 ứng dụng mới yecircu cầu 11

TCP coacute tốc độ R2

Transport Layer 3-102

Mocirc higravenh trễ

Hỏi Mất bao lacircu để nhận 1 đối tượng từ Web server sau khi gửi yecircu cầu

Bỏ qua tắc nghẽn trễ bị ảnh hưởng bởi

thiết lập kết nối TCP trễ truyền dữ liệu khởi động chậm

Notation caacutec giả định Giả sử một kết nối giữa

client vagrave server coacute tốc độ R

S MSS (bits) O kiacutech thước đối tượng

(bits) khocircng truyền lại (khocircng

mất maacutet khocircng hỏng)

Kiacutech thước cửa sổ Giả định 1 cửa sổ tắc

nghẽn cố định coacute W đoạn Sau đoacute cửa sổ thay đổi

mocirc higravenh khởi động chậm

Transport Layer 3-103

Cửa sổ tắc nghẽn cố định (1)

Trường hợp đầu tiecircnWSR gt RTT + SR cho

đoạn đầu tiecircn trong cửa sổ trả về trước khi cửa sổ dữ liệu gửi ACK

trễ = 2RTT + OR

Transport Layer 3-104

Cửa sổ tắc nghẽn cố định (2)

Trường hợp thứ hai WSR lt RTT + SR sent

chờ cho ACK sau khi gửi dữ liệu

trễ = 2RTT + OR+ (K-1)[SR + RTT - WSR]

Transport Layer 3-105

TCP Mocirc higravenh trễ Khởi động chậm (1)

Bacircy giờ giả sử kiacutech thước cửa sổ tăng lecircn tugravey theo quaacute trigravenh khởi động chậm

Độ trễ của một đối tượng sẽ lagrave

R

S

R

SRTTP

R

ORTTLatency P )12(2

trong đoacute P lagrave số lần TCP rảnh ở tại server

1min KQP

- trong đoacute Q lagrave số lần server rảnh nếu đối tượng đatilde khởi tạo kiacutech thước

- vagrave K lagrave số lượng cửa sổ bao trugravem đối tượng

Transport Layer 3-106

TCP Mocirc higravenh trễ Khởi động chậm (2)

RTT

initia te TCPconnection

requestobject

first w indow= S R

second w indow= 2S R

third w indow= 4S R

fourth w indow= 8S R

com pletetransm issionobject

delivered

tim e atc lient

tim e atserver

Viacute dụbull OS = 15 đoạnbull K = 4 cửa sổbull Q = 2bull P = minK-1Q = 2

Server rảnh P=2 lần

Caacutec thagravenh phần trễbull 2 RTT dagravenh cho thiết lập kết nối vagrave yecircu cầubull OR để truyền đối tượngbullthời gian server rảnh bởi vigrave khởi động chậm

Server rảnh P = minK-1Q lần

Transport Layer 3-107

TCP Mocirc higravenh trễ(3)

R

S

R

SRTTPRTT

R

O

R

SRTT

R

SRTT

R

O

idleTimeRTTR

O

P

kP

k

P

pp

)12(][2

]2[2

2delay

1

1

1

th window after the timeidle 2 1 kR

SRTT

R

S k

ementacknowledg receivesserver until

segment send tostartsserver when from time RTTR

S

window kth the transmit totime2 1

R

Sk

RTT

initia te TCPconnection

requestobject

first w indow= S R

second w indow= 2S R

third w indow= 4S R

fourth w indow= 8S R

com pletetransm issionobject

delivered

tim e atc lient

tim e atserver

Transport Layer 3-108

TCP Mocirc higravenh trễ (4)

)1(log

)1(logmin

12min

222min

222min

2

2

110

110

S

OS

Okk

S

Ok

SOk

OSSSkK

k

k

k

caacutech tiacutenh toaacuten Q tương tự (xem HW)

K = số lượng cửa sổ bao trugravem đối tượngLagravem thế nagraveo tiacutenh được K

Transport Layer 3-109

HTTP Mocirc higravenh Giả sử trang Web chứa

1 trang HTML (kiacutech thước O bits) M higravenh ảnh (mỗi caacutei kiacutech thướcO bits)

HTTP khocircng bền vững M+1 TCP kết nối Thời gian đaacutep ứng = (M+1)OR + (M+1)2RTT + tổng số thời

gian rảnh HTTP bền vững

2 RTT để yecircu cầu vagrave nhận file HTML 1 RTT để yecircu cầu vagrave nhận M higravenh ảnh Thời gian đaacutep ứng = (M+1)OR + 3RTT + tổng số thời gian

rảnh HTTP khocircng bền vững với X kết nối song song

Giả sử MX lagrave số nguyecircn 1 TCP kết nối cho file MX thiết lập caacutec kết nối song song cho caacutec higravenh ảnh Thời gian đaacutep ứng = (M+1)OR + (MX + 1)2RTT + tổng số

thời gian rảnh

Transport Layer 3-110

02468

101214161820

28Kbps

100Kbps

1Mbps

10Mbps

non-persistent

persistent

parallel non-persistent

HTTP thời gian đaacutep ứng (giacircy)RTT = 100 msec O = 5 Kbytes M=10 vagrave X=5

Với băng thocircng thấp thời gian kết nối amp đaacutep ứng trội hơn thời gian truyền

Caacutec kết nối bền vững chỉ cho sự cải thiện khocircng đaacuteng kể trecircn caacutec kết nối song song

Transport Layer 3-111

0

10

20

30

40

50

60

70

28Kbps

100Kbps

1Mbps

10Mbps

non-persistent

persistent

parallel non-persistent

HTTP thời gian đaacutep ứng (giacircy)

RTT =1 sec O = 5 Kbytes M=10 and X=5

Với RTT lớn hơn thời gian đaacutep ứng trội hơn thời gian trễ chờ thiết lập kết nốiTCP amp khởi động chậm Caacutec kết nối bền vững bacircy giờ cho thấy cải thiện rotilde rệt đặc biệtvới caacutec mạng băng thocircng cao

Transport Layer 3-112

Chương 3 Tổng kết caacutec nguyecircn lyacute của caacutec

dịch vụ lớp transport multiplexing

demultiplexing truyền dữ liệu tin cậy điều khiển luồng điều khiển tắc nghẽn

khởi tạo vagrave hiện thực trong Internet UDP TCP

Tiếp theo nghiecircn cứu xong

caacutec vấn đề ldquongoagravei biecircnrdquo (caacutec lớp application transport)

chuẩn bị vagraveo phần ldquolotildeirdquo của mạng

  • Slide 1
  • Chương 3 Lớp Transport
  • Chương 3 Nội dung trigravenh bagravey
  • Caacutec dịch vụ vagrave giao thức Transport
  • Lớp Transport với lớp network
  • Caacutec giao thức lớp transport trecircn Internet
  • Slide 7
  • Multiplexingdemultiplexing
  • Demultiplexing lagravem việc như thế nagraveo
  • Demultiplexing khocircng kết nối
  • Demultiplexing khocircng kết nối (tiếp)
  • Demultiplexing hướng kết nối
  • Demultiplexing hướng kết nối (tiếp)
  • Demultiplexing hướng kết nối Threaded Web Server
  • Slide 15
  • UDP User Datagram Protocol [RFC 768]
  • UDP (tt)
  • UDP checksum
  • Viacute dụ Checksum
  • Slide 20
  • Caacutec nguyecircn lyacute truyền dữ liệu tin cậy
  • Slide 22
  • Slide 23
  • Truyền dữ liệu tin cậy
  • Slide 25
  • Rdt10 truyền dữ liệu tin cậy trecircn 1 kecircnh truyền tin cậy
  • Rdt20 kecircnh với caacutec lỗi
  • rdt20 đặc tả FSM
  • rdt20 hoạt động khi khocircng lỗi
  • rdt20 hoạt động khi coacute lỗi
  • rdt20 coacute lỗ hổng nghiecircm trọng
  • rdt21 người gửi quản lyacute caacutec ACKNAK bị hỏng
  • Slide 33
  • rdt21 thảo luận
  • rdt22 một giao thức khocircng cần NAK
  • rdt22 gửi nhận caacutec mảnh
  • rdt30 caacutec kecircnh với lỗi vagrave mất maacutet
  • rdt30 gửi
  • hagravenh động của rdt30
  • Slide 40
  • Hiệu suất của rdt30
  • rdt30 hoạt động dừng-vagrave-chờ
  • Caacutec giao thức Pipelined
  • Pipelining độ khả dụng tăng
  • Go-Back-N
  • GBN becircn gửi mở rộng FSM
  • GBN becircn nhận mở rộng FSM
  • GBN hoạt động
  • Lặp coacute lựa chọn
  • Lặp coacute lựa chọn caacutec cửa sổ gửi nhận
  • Slide 51
  • Hoạt động của lặp coacute lựa chọn
  • Lặp coacute lựa chọn tigravenh trạng khoacute giải quyết
  • Slide 54
  • TCP Tổng quan RFCs 793 1122 1323 2018 2581
  • TCP cấu truacutec đoạn
  • Caacutec số thứ tự TCP vagrave ACK
  • TCP Round Trip Time vagraveTimeout
  • TCP Round Trip Time vagrave Timeout
  • Viacute dụ đaacutenh giaacute RTT
  • Slide 61
  • TCP truyền dữ liệu tin cậy
  • TCP caacutec sự kiện
  • TCP becircn gửi (đơn giản)
  • TCP caacutec tigravenh huống truyền lại
  • TCP caacutec tigravenh huống truyền lại (tt)
  • TCP sinh ra ACK [RFC 1122 RFC 2581]
  • Truyền lại nhanh
  • Giải thuật truyền lại nhanh
  • Slide 70
  • TCP điều khiển luồng
  • TCP điều khiển luồng caacutech lagravem
  • Slide 73
  • TCP quản lyacute kết nối
  • TCP quản lyacute kết nối (tt)
  • Slide 76
  • Slide 77
  • Slide 78
  • Caacutec nguyecircn lyacute điều khiển tắc nghẽn
  • Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 1
  • Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 2
  • Slide 82
  • Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 3
  • Slide 84
  • Caacutec caacutech tiếp cận đối với điều khiển tắc nghẽn
  • Viacute dụ điều khiển tắc nghẽn ATM ABR
  • Slide 87
  • Slide 88
  • TCP điều khiển tắc nghẽn additive tăng lecircn multiplicative giảm xuống
  • TCP điều khiển tắc nghẽn chi tiết
  • TCP khởi động chậm
  • TCP khởi động chậm (tt)
  • Tinh chế
  • Tinh chế nhận biết mất maacutet
  • Tổng kết TCP điều khiển tắc nghẽn
  • TCP điều khiển tắc nghẽn becircn gửi
  • TCP throughput
  • TCP tương lai
  • TCP tiacutenh cocircng bằng
  • Tại sao phải TCP cocircng bằng
  • TCP tiacutenh cocircng bằng (tt)
  • Mocirc higravenh trễ
  • Cửa sổ tắc nghẽn cố định (1)
  • Cửa sổ tắc nghẽn cố định (2)
  • TCP Mocirc higravenh trễ Khởi động chậm (1)
  • TCP Mocirc higravenh trễ Khởi động chậm (2)
  • TCP Mocirc higravenh trễ(3)
  • TCP Mocirc higravenh trễ (4)
  • HTTP Mocirc higravenh
  • Slide 110
  • Slide 111
  • Chương 3 Tổng kết

Transport Layer 3-7

Chương 3 Nội dung trigravenh bagravey

31 Caacutec dịch vụ lớp Transport

32 Multiplexing vagrave demultiplexing

33 Vận chuyển khocircng kết nối UDP

34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy

35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối

36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn

37 Điều khiển tắc nghẽn TCP

Transport Layer 3-8

Multiplexingdemultiplexing

application

transport

network

link

physical

P1 application

transport

network

link

physical

application

transport

network

link

physical

P2P3 P4P1

host 1 host 2 host 3

= tiến trigravenh = socket

vận chuyển caacutec đoạn đatilde nhận được đến đuacuteng socket

Demultiplexing tại host nhậnthu nhặt dữ liệu từ nhiều socket đoacuteng goacutei dữ liệu vớiheader (sẽ dugraveng sau đoacute chodemultiplexing)

Multiplexing tại host gửi

Transport Layer 3-9

Demultiplexing lagravem việc như thế nagraveo host nhận caacutec IP datagrams

mỗi datagram coacute địa chỉ IP nguồn vagrave IP điacutech

mỗi datagram mang 1 đoạn của lớp transport

mỗi đoạn coacute số port nguồn vagrave điacutech

host dugraveng địa chỉ IP amp số port để điều hướng đoạn đến socket thiacutech hợp

port nguồn port điacutech

32 bits

dữ liệu ứng dụng(thocircng điệp)

caacutec header fields khaacutec

dạng thức đoạn TCPUDP

Transport Layer 3-10

Demultiplexing khocircng kết nối

Tạo caacutec sockets với caacutec số port

DatagramSocket mySocket1 = new DatagramSocket(12534)

DatagramSocket mySocket2 = new DatagramSocket(12535)

UDP socket được xaacutec định bởi bộ 2

(địa chỉ IP số port điacutech)

Khi host nhận đoạn UDP kiểm tra port điacutech trong

đoạn điều hướng đoạn UDP

đến socket nagraveo phugrave hợp với số port đoacute

IP datagrams với địa chỉ IP nguồn vagravehoặc số port khaacutec nhau coacute thể được điều hướng đến cugraveng socket

Transport Layer 3-11

Demultiplexing khocircng kết nối (tiếp)

DatagramSocket serverSocket = new DatagramSocket(6428)

ClientIPB

P2

client IP A

P1P1P3

serverIP C

SP 6428

DP 9157

SP 9157

DP 6428

SP 6428

DP 5775

SP 5775

DP 6428

SP cung cấp ldquođịa chỉ trở vềrdquo

Transport Layer 3-12

Demultiplexing hướng kết nối

TCP socket được xaacutec định bởi bộ 4 địa chỉ IP nguồn số port nguồn địa chỉ IP điacutech số port điacutech

host nhận dugraveng cả 4 giaacute trị trecircn để điều hướng đoạn đến socket thiacutech hợp

Host server coacute thể hỗ trợ nhiều TCP socket đồng thời mỗi socket được xaacutec

định bởi bộ 4 của noacute

Web server coacute caacutec socket khaacutec nhau cho mỗi kết nối từ client kết nối HTTP khocircng bền

vững sẽ coacute socket khaacutec nhau cho mỗi yecircu cầu

Transport Layer 3-13

Demultiplexing hướng kết nối (tiếp)

ClientIPB

P1

client IP A

P1P2P4

serverIP C

SP 9157

DP 80

SP 9157

DP 80

P5 P6 P3

D-IPCS-IP A

D-IPC

S-IP B

SP 5775

DP 80

D-IPCS-IP B

Transport Layer 3-14

Demultiplexing hướng kết nối Threaded Web Server

ClientIPB

P1

client IP A

P1P2

serverIP C

SP 9157

DP 80

SP 9157

DP 80

P4 P3

D-IPCS-IP A

D-IPC

S-IP B

SP 5775

DP 80

D-IPCS-IP B

Transport Layer 3-15

Chương 3 Nội dung trigravenh bagravey

31 Caacutec dịch vụ lớp Transport

32 Multiplexing vagrave demultiplexing

33 Vận chuyển khocircng kết nối UDP

34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy

35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối

36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn

37 Điều khiển tắc nghẽn TCP

Transport Layer 3-16

UDP User Datagram Protocol [RFC 768]

giao thức Internet transport ldquođơn giản hoacuteardquo

dịch vụ ldquobest effortrdquo caacutec đoạn UDP coacute thể mất maacutet vận chuyển khocircng thứ

tự đến ứng dụng connectionless (khocircng

kết nối) khocircng bắt tay giữa

người nhận vagrave người gửi UDP

mỗi đoạn UDP được quản lyacute độc lập

Coacute UDP để lagravem gigrave khocircng thiết lập kết nối

(giuacutep coacute thể thecircm delay) đơn giản khocircng trạng

thaacutei kết nối tại nơi gửi nơi nhận

header của đoạn nhỏ khocircng điều khiển tắc

nghẽn UDP coacute thể gửi nhanh nhất theo mong muốn

Transport Layer 3-17

UDP (tt)

thường dugraveng cho caacutec ứng dụng streaming multimedia chịu mất maacutet cảm nhận tốc độ

ngoagravei ra UDP dugraveng DNS SNMP

truyền tin cậy trecircn UDP thecircm khả năng nagravey tại lớp application sửa lỗi

source port dest port

32 bits

dữ liệu ứng dụng

(thocircng điệp)

dạng thức đoạn UDP

length checksumĐộ dagravei

đoạn UDPbao gồm cả

header

Transport Layer 3-18

UDP checksum

Người gửi đối xử caacutec nội dung

đoạn như một chuỗi caacutec số nguyecircn 16-bit

checksum bổ sung(tổng bugrave 1) của caacutec nội dung đoạn

đặt giaacute trị checksum vagraveo trường UDP checksum

Người nhận tiacutenh toaacuten checksum của

đoạn đatilde nhận kiểm tra giaacute trị trecircn coacute bằng

với giaacute trị trong trường checksum NO ndash coacute lỗi xảy ra YES ndash khocircng coacute lỗi Nhưng coacute thể cograven lỗi

khaacutec nữa Xem tiếp phần sau hellip

Mục tiecircu kiểm tra caacutec ldquolỗirdquo (caacutec bit cờ đatilde bật lecircn) trong caacutec đoạn đatilde truyền

Transport Layer 3-19

Viacute dụ Checksum Lưu yacute

Khi cộng caacutec số một bit nhớ ở phiacutea cao nhất coacute thể sẽ phải thecircm vagraveo kết quả

Viacute dụ cộng hai số nguyecircn 16-bit

1 1 1 1 0 0 1 1 0 0 1 1 0 0 1 1 01 1 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1

1 1 0 1 1 1 0 1 1 1 0 1 1 1 0 1 1

1 1 0 1 1 1 0 1 1 1 0 1 1 1 1 0 01 0 1 0 0 0 1 0 0 0 1 0 0 0 0 1 1

bit dư

tổngchecksum

Transport Layer 3-20

Chương 3 Nội dung trigravenh bagravey

31 Caacutec dịch vụ lớp Transport

32 Multiplexing vagrave demultiplexing

33 Vận chuyển khocircng kết nối UDP

34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy

35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối

36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn

37 Điều khiển tắc nghẽn TCP

Transport Layer 3-21

Caacutec nguyecircn lyacute truyền dữ liệu tin cậy quan trọng trong caacutec lớp application transport link lagrave danh saacutech 10 vấn đề quan trọng nhất của mạng

caacutec đặc thugrave của kecircnh truyền khocircng tin cậy sẽ xaacutec định sự phức tạp của giao thức truyền dữ liệu data transfer protocol (rdt)

Transport Layer 3-22

Caacutec nguyecircn lyacute truyền dữ liệu tin cậy quan trọng trong caacutec lớp application transport link lagrave danh saacutech 10 vấn đề quan trọng nhất của mạng

caacutec đặc thugrave của kecircnh truyền khocircng tin cậy sẽ xaacutec định sự phức tạp của giao thức truyền dữ liệu data transfer protocol (rdt)

Transport Layer 3-23

Caacutec nguyecircn lyacute truyền dữ liệu tin cậy quan trọng trong caacutec lớp application transport link lagrave danh saacutech 10 vấn đề quan trọng nhất của mạng

caacutec đặc thugrave của kecircnh truyền khocircng tin cậy sẽ xaacutec định sự phức tạp của giao thức truyền dữ liệu data transfer protocol (rdt)

Transport Layer 3-24

Truyền dữ liệu tin cậy

sendside

receiveside

rdt_send() được gọi bởi lớp app Chuyển dữ liệu cần truyền

đến lớp cao hơn becircn nhận

udt_send() được gọi bởi rdt để truyền caacutec goacutei trecircn kecircnh khocircng tin cậy đến nơi

nhận

rdt_rcv() được gọi khi goacutei đến kecircnh becircn nhận

deliver_data() được gọi bởi rdt để truyền dữ liệu

đến lớp cao hơn

Transport Layer 3-25

Truyền dữ liệu tin cậy

Sẽ chỉ xem xeacutet truyền dữ liệu theo 1 hướng duy

nhất nhưng điều khiển luồng thocircng tin sẽ theo cả 2

chiều

dugraveng maacutey trạng thaacutei hữu hạn (finite state machines-FSM) để xaacutec định người gửi người nhận

trthaacutei1

trthaacutei2

sự kiện gacircy ra trạng thaacutei truyềncaacutec hagravenh động xảy ra khi truyền

trạng thaacutei khi ở ldquotrạng thaacuteirdquo nagravey thigrave

trạng thaacutei kế tiếp duy nhất được xaacutec định bởi sự kiện kế

tiếp

sự kiệncaacutec hagravenh động

Transport Layer 3-26

Rdt10 truyền dữ liệu tin cậy trecircn 1 kecircnh truyền tin cậy

kecircnh ưu tiecircn tin cậy hoagraven toagraven khocircng coacute caacutec lỗi khocircng mất maacutet caacutec goacutei

caacutec FSM phacircn biệt cho người gửi người nhận người gửi gửi dữ liệu vagraveo kecircnh ưu tiecircn người nhận nhận dữ liệu từ kecircnh ưu tiecircn

chờ gọi từ lớp trecircn packet = make_pkt(data)

udt_send(packet)

rdt_send(data)

extract (packetdata)deliver_data(data)

chờ gọi từ lớp dưới

rdt_rcv(packet)

người gửi người nhận

Transport Layer 3-27

Rdt20 kecircnh với caacutec lỗi

kecircnh ưu tiecircn coacute thể bật lecircn một số bit trong goacutei checksum để kiểm tra caacutec lỗi

Hỏi lagravem sao khocirci phục caacutec lỗi acknowledgements (ACKs) becircn nhận rotilde ragraveng thocircng

baacuteo cho becircn gửi rằng quaacute trigravenh nhận goacutei tốt negative acknowledgements (NAKs) becircn nhận rotilde ragraveng

thocircng baacuteo cho becircn gửi rằng quaacute trigravenh nhận goacutei coacute lỗi người gửi gửi lại goacutei nagraveo được xaacutec nhận lagrave NAK

caacutec cơ chế mới trong rdt20 (sau rdt10) kiểm tra lỗi nhận phản hồi caacutec thocircng điệp điều khiển (ACKNAK)

becircn nhận becircn gửi

Transport Layer 3-28

rdt20 đặc tả FSM

chờ gọi từ lớp trecircn

snkpkt = make_pkt(data checksum)udt_send(sndpkt)

extract(rcvpktdata)deliver_data(data)udt_send(ACK)

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)

rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp isNAK(rcvpkt)

udt_send(NAK)

rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)

chờ ACK hoặc NAK

chờ gọi từ lớp dưới

người gửi

người nhậnrdt_send(data)

Transport Layer 3-29

rdt20 hoạt động khi khocircng lỗi

chờ gọi từ lớp dưới

snkpkt = make_pkt(data checksum)udt_send(sndpkt)

extract(rcvpktdata)deliver_data(data)udt_send(ACK)

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)

rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp isNAK(rcvpkt)

udt_send(NAK)

rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)

chờ ACK hoặc NAK

chờ gọi từ lớp dưới

rdt_send(data)

Transport Layer 3-30

rdt20 hoạt động khi coacute lỗi

chờ gọi từ lớp dưới

snkpkt = make_pkt(data checksum)udt_send(sndpkt)

extract(rcvpktdata)deliver_data(data)udt_send(ACK)

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)

rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp isNAK(rcvpkt)

udt_send(NAK)

rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)

chờ ACK hoặc NAK

chờ gọi từ lớp dưới

rdt_send(data)

Transport Layer 3-31

rdt20 coacute lỗ hổng nghiecircm trọngĐiều gigrave xảy ra nếu

ACKNAK bị hỏng người gửi khocircng biết điều

gigrave đatilde xảy ra tại becircn nhận

khocircng thể đơn phương truyền lại khả năng trugraveng lặp

Quản lyacute trugraveng lặp người gửi truyền lại goacutei

hiện tại nếu ACKNAK bị hỏng

người gửi thecircm số thứ tự vagraveo mỗi goacutei

người nhận hủy (khocircng nhận) goacutei trugraveng lặp

Người gửi gửi 1 goacutei sau đoacute dừng lại chờ phản hồitừ người nhận

dừng vagrave chờ

Transport Layer 3-32

rdt21 người gửi quản lyacute caacutec ACKNAK bị hỏng

chờ gọi 0 từ lớp trecircn

sndpkt = make_pkt(0 data checksum)udt_send(sndpkt)

rdt_send(data)

chờ ACK hoặc NAK

0 udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) ||isNAK(rcvpkt) )

sndpkt = make_pkt(1 data checksum)udt_send(sndpkt)

rdt_send(data)

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) ||isNAK(rcvpkt) )

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt)

chờ gọi 1 từ lớp trecircn

chờ ACK hoặc NAK

1

Transport Layer 3-33

rdt21 người gửi quản lyacute caacutec ACKNAK bị hỏng

chờ 0 từ dưới

sndpkt = make_pkt(NAK chksum)udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp not corrupt(rcvpkt) ampamp has_seq0(rcvpkt)

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp has_seq1(rcvpkt)

extract(rcvpktdata)deliver_data(data)sndpkt = make_pkt(ACK chksum)udt_send(sndpkt)

chờ 1 từ dưới

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp has_seq0(rcvpkt)

extract(rcvpktdata)deliver_data(data)sndpkt = make_pkt(ACK chksum)udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp (corrupt(rcvpkt)

sndpkt = make_pkt(ACK chksum)udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp not corrupt(rcvpkt) ampamp has_seq1(rcvpkt)

rdt_rcv(rcvpkt) ampamp (corrupt(rcvpkt)

sndpkt = make_pkt(ACK chksum)udt_send(sndpkt)

sndpkt = make_pkt(NAK chksum)udt_send(sndpkt)

Transport Layer 3-34

rdt21 thảo luận

người gửi số thứ tự thecircm vagraveo

goacutei chỉ cần hai số thứ tự

(01) lagrave đủ Tại sao phải kiểm tra nếu việc

nhận ACKNAK bị hỏng

số trạng thaacutei tăng lecircn 2 lần trạng thaacutei phải ldquonhớrdquo

goacutei ldquohiện tạirdquo coacute số thứ tự lagrave 0 hay 1

người nhận phải kiểm tra coacute

nhận trugraveng goacutei khocircng trạng thaacutei chỉ rotilde coacute

hay khocircng mong chờ số thứ tự 0 hoặc 1

chuacute yacute người nhận khocircng biết ACKNAK vừa rồi của noacute coacute được người gửi nhận tốt hay khocircng

Transport Layer 3-35

rdt22 một giao thức khocircng cần NAK

chức năng giống như rdt21 chỉ dugraveng caacutec ACK thay cho NAK người nhận gửi ACK cho goacutei vừa

rồi đatilde nhận tốt người nhận phải rotilde ragraveng chegraven số thứ tự của goacutei vừa ACK

trugraveng ACK tại người gửi hậu quả giống như hagravenh động của NAK truyền lại goacutei vừa rồi

Transport Layer 3-36

rdt22 gửi nhận caacutec mảnh

Chờ cho gọi 0 từ

trecircn

sndpkt = make_pkt(0 data checksum)udt_send(sndpkt)

rdt_send(data)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) || isACK(rcvpkt1) )

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt0)

Chờ cho ACK

0

gửi phacircn mảnhFSM

Chờ cho gọi

0 từ dưới

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp has_seq1(rcvpkt)

extract(rcvpktdata)deliver_data(data)sndpkt = make_pkt(ACK1 chksum)udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp (corrupt(rcvpkt) || has_seq1(rcvpkt))

udt_send(sndpkt)

nhận phacircn mảnhFSM

Transport Layer 3-37

rdt30 caacutec kecircnh với lỗi vagrave mất maacutet

Giả định mới kecircnh ưu tiecircn cũng coacute thể lagravem mất caacutec goacutei (dữ liệu hoặc caacutec ACK) checksum số thứ tự

caacutec ACK caacutec việc truyền lại sẽ hỗ trợ nhưng khocircng đủ

Caacutech tiếp cận người gửi chờ ACK trong khoảng thời gian ldquochấp nhận đượcrdquo

truyền lại nếu khocircng nhận ACK trong khoảng thời gian nagravey

nếu goacutei (hoặc ACK) chỉ trễ (khocircng mất) truyền lại sẽ gacircy trugraveng

nhưng dugraveng số thứ tự sẽ giải quyết được

người nhận phải xaacutec định số thứ tự của goacutei vừa gửi ACK

cần bộ định thigrave đếm lugravei

Transport Layer 3-38

rdt30 gửi

sndpkt = make_pkt(0 data checksum)udt_send(sndpkt)start_timer

rdt_send(data)

Chờ cho

ACK 0

rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) ||isACK(rcvpkt1) )

Chờ cho gọi 1 từ trecircn

sndpkt = make_pkt(1 data checksum)udt_send(sndpkt)start_timer

rdt_send(data)

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt0)

rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) ||isACK(rcvpkt0) )

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt1)

stop_timerstop_timer

udt_send(sndpkt)start_timer

timeout

udt_send(sndpkt)start_timer

timeout

rdt_rcv(rcvpkt)

Chờ cho gọi 0 từ trecircn

Chờ cho

ACK 1

rdt_rcv(rcvpkt)

Transport Layer 3-39

hagravenh động của rdt30

Transport Layer 3-40

hagravenh động của rdt30

Transport Layer 3-41

Hiệu suất của rdt30

rdt30 lagravem việc được nhưng đaacutenh giaacute hiệu suất hơi rắc rối viacute dụ liecircn kết 1 Gbps trễ lan truyền giữa hai đầu cuối lagrave 15

ms goacutei 1KB

T truyền = 8kbpkt109 bsec

= 8 microsec

U sender độ khả dụng ndash

U sender

= 008

30008 = 000027

microseconds

L R

RTT + L R =

L (độ dagravei goacutei tiacutenh bằng bits)R (tốc độ truyền bps)

=

goacutei 1KB mỗi 30 msec -gt 33kBs trecircn đường truyền 1 Gbps giao thức network hạn chế việc dugraveng caacutec tagravei nguyecircn vật

lyacute

Transport Layer 3-42

rdt30 hoạt động dừng-vagrave-chờ

goacutei đầu tiecircn đatilde truyền t = 0

gửi nhận

RTT

goacutei cuối cugraveng đatilde truyền t = L R

goacutei đầu tiecircn đatilde đếngoacutei cuối cugraveng đatilde đến gửi ACK

ACK đến gửi goacutei kế tiếp t = RTT + L R

U sender

= 008

30008 = 000027

microseconds

L R

RTT + L R =

Transport Layer 3-43

Caacutec giao thức Pipelined

Pipelining người gửi cho pheacutep gửi nhiều goacutei đồng thời khocircng cần chờ baacuteo nhận được nhoacutem caacutec số thứ tự phải tăng dần phải coacute bộ nhớ đệm tại nơi gửi vagravehoặc nơi nhận

hai dạng phổ biến của caacutec giao thức pipelined go-Back-N Lặp coacute lựa chọn

Transport Layer 3-44

Pipelining độ khả dụng tăng

goacutei đầu tiecircn đatilde truyền t = 0

sender receiver

RTT

goacutei cuối cugraveng đatilde truyền t = L R

goacutei đầu tiecircn đatilde đếngoacutei cuối cugraveng đatilde đến gửi ACK

ACK đến gửi goacuteikế tiếp t = RTT + L R

bit cuối của goacutei thứ 2 đến gửi ACKbit cuối của goacutei thứ 3 đến gửi ACK

U sender

= 024

30008 = 00008

microseconds

3 L R

RTT + L R =

Độ khả dụng tăng lecircngấp 3 lần

Transport Layer 3-45

Go-Back-NBecircn gửi k-bit số thứ tự trong header của goacutei ldquocửa sổrdquo tăng lecircn đến N cho pheacutep gửi caacutec goacutei liecircn tục khocircng cần ACK

ACK(n) ACKs tất cả caacutec goacutei đến chứa số thứ tự n ndash ldquoACK tiacutech lũyrdquo coacute thể nhận caacutec ACK trugraveng lặp (xem becircn nhận)

định thigrave cho mỗi goacutei trecircn đường truyền timeout(n) gửi lại goacutei n vagrave tất cả caacutec goacutei coacute số thứ tự cao

hơn trong cửa sổ

Transport Layer 3-46

GBN becircn gửi mở rộng FSM

chờ start_timerudt_send(sndpkt[base])udt_send(sndpkt[base+1])hellipudt_send(sndpkt[nextseqnum-1])

timeout

rdt_send(data)

if (nextseqnum lt base+N) sndpkt[nextseqnum] = make_pkt(nextseqnumdatachksum) udt_send(sndpkt[nextseqnum]) if (base == nextseqnum) start_timer nextseqnum++ else refuse_data(data)

base = getacknum(rcvpkt)+1If (base == nextseqnum) stop_timer else start_timer

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)

base=1nextseqnum=1

rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)

Transport Layer 3-47

GBN becircn nhận mở rộng FSM

ACK-duy nhất luocircn luocircn gửi ACK cho goacutei đatilde nhận đuacuteng với số thứ tự xếp hạng cao nhất coacute thể sinh ra caacutec ACK trugraveng nhau chỉ cần nhớ expectedseqnum

goacutei khocircng theo thứ tự hủy -gt khocircng nhận vagraveo bộ đệm gửi lại ACK với số thứ tự xếp hạng cao nhất

chờ

udt_send(sndpkt)

default

rdt_rcv(rcvpkt) ampamp notcurrupt(rcvpkt) ampamp hasseqnum(rcvpktexpectedseqnum)

extract(rcvpktdata)deliver_data(data)sndpkt = make_pkt(expectedseqnumACKchksum)udt_send(sndpkt)expectedseqnum++

expectedseqnum=1sndpkt = make_pkt(expectedseqnumACKchksum)

Transport Layer 3-48

GBN hoạt động

Transport Layer 3-49

Lặp coacute lựa chọn

becircn nhận thocircng baacuteo đatilde nhận đuacuteng tất cả từng goacutei một đệm (buffer) caacutec goacutei nếu cần thiết

becircn gửi chỉ gửi lại caacutec goacutei nagraveo khocircng nhận được ACK becircn gửi định thigrave đối với mỗi goacutei khocircng gửi ACK

cửa sổ becircn gửi N số thứ tự liecircn tục hạn chế số thứ tự caacutec goacutei khocircng gửi ACK

Transport Layer 3-50

Lặp coacute lựa chọn caacutec cửa sổ gửi nhận

Transport Layer 3-51

Lặp coacute lựa chọn

dữ liệu từ lớp trecircn nếu số thứ tự kế tiếp sẵn

sagraveng trong cửa sổ gửi goacutei

timeout(n) gửi lại goacutei n taacutei khởi tạo

bộ định thigrave

ACK(n) trong [sendbasesendbase+N]

đaacutenh dấu goacutei n lagrave đatilde nhận nếu goacutei khocircng ACK coacute n

nhỏ nhất dịch chuyển cửa sổ base đến số thứ tự khocircng ACK kế tiếp

Gửigoacutei n trong [rcvbase

rcvbase+N-1]

gửi ACK(n) khocircng thứ tự đệm

(buffer) coacute thứ tự truyền (cũng

truyền caacutec goacutei đatilde đệm coacute thứ tự) dịch chuyển cửa sổ đến goacutei chưa nhận kế tiếp

goacutei n trong [rcvbase-Nrcvbase-1]

ACK(n)

ngược lại lờ đi

Nhận

Transport Layer 3-52

Hoạt động của lặp coacute lựa chọn

Transport Layer 3-53

Lặp coacute lựa chọntigravenh trạng khoacute giải quyếtViacute dụ Số thứ tự 0 1 2 3 Kiacutech thước cửa sổ = 3

becircn nhận khocircng thấy sự khaacutec nhau trong 2 tigravenh huống

chuyển khocircng chiacutenh xaacutec dữ liệu trugraveng lặp như dữ liệu mới trong (a)

Hỏi quan hệ giữa datildey số thứ tự vagrave kiacutech thước cửa sổ

Transport Layer 3-54

Chương 3 Nội dung trigravenh bagravey

31 Caacutec dịch vụ lớp Transport

32 Multiplexing vagrave demultiplexing

33 Vận chuyển khocircng kết nối UDP

34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy

35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối

36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn

37 Điều khiển tắc nghẽn TCP

Transport Layer 3-55

TCP Tổng quan RFCs 793 1122 1323 2018 2581

dữ liệu full duplex luồng dữ liệu đi 2 chiều

trong cugraveng một kết nối MSS maximum

segment size ndash kiacutech thước đoạn tối đa

hướng kết nối bắt tay (trao đổi caacutec

thocircng điệp điều khiển) trạng thaacutei becircn gửi becircn nhận trước khi trao đổi dữ liệu

điều khiển luồng becircn gửi sẽ khocircng lấn aacutet

becircn nhận

point-to-point một becircn gửi một becircn

nhận tin cậy dograveng byte coacute

thứ tự khocircng ldquoranh giới thocircng

điệprdquo kecircnh liecircn lạc

TCP điều khiển luồng vagrave tắc nghẽn thiết lập kiacutech thước cửa sổ

caacutec bộ đệm gửi amp nhận

socketdoor

T C Psend buffer

T C Preceive buffer

socketdoor

segm ent

applicationwrites data

applicationreads data

Transport Layer 3-56

TCP cấu truacutec đoạn

port nguồn port điacutech

32 bits

dữ liệu ứng dụng(độ dagravei thay đổi)

số thứ tự

số ACKcửa sổ nhận

con trỏ URGchecksum

FSRPAUheadlen

notused

Tugravey chọn (độ dagravei thay đổi)

URG dữ liệu khẩn cấp(thường khocircng dugraveng)

ACK ACK hợp lệ

PSH push data now(thường khocircng dugraveng)

RST SYN FINthiết lập kết nối

(caacutec lệnh thiết lậpchia nhỏ)

số byte becircn nhận sẵn sagraveng chấp nhận

đếm bởi số bytecủa dữ liệu

Internetchecksum

(giống UDP)

Transport Layer 3-57

Caacutec số thứ tự TCP vagrave ACKCaacutec số thứ tự

dograveng byte ldquođaacutenh sốrdquo byte đầu tiecircn trong dữ liệu của đoạn

caacutec ACK số thứ tự của byte

kế tiếp được chờ đợi từ phiacutea becircn kia

ACK tiacutech lũyHỏi lagravem thế nagraveo becircn

nhận quản lyacute caacutec đoạn khocircng thứ tự Trả lời TCP khocircng

đề cập tugravey thuộc người hiện thực

Host A Host B

Seq=42 ACK=79 data = lsquoCrsquo

Seq=79 ACK=43 data = lsquoCrsquo

Seq=43 ACK=80

UsernhậplsquoCrsquo

host ACKsnhận phản hồi

lsquoCrsquo

host ACKsbaacuteo nhận

lsquoCrsquo phản hồingược lại lsquoCrsquo

timetigravenh huống telnet đơn giản

Transport Layer 3-58

TCP Round Trip Time vagraveTimeout

Hỏi Lagravem thế nagraveo để thiết lập giaacute trị TCP timeout

dagravei hơn RTT khaacutec với RTT

quaacute ngắn timeout sớm truyền lại khocircng

cần thiết quaacute dagravei phản ứng

chậm đối với việc mất maacutet goacutei

Hỏi Lagravem thế nagraveo để thiết lập RTT

SampleRTT thời gian được đo từ khi truyền đoạn đến khi baacuteo nhận ACK lờ đi việc truyền lại

SampleRTT sẽ thay đổi muốn ước lượng RTT ldquomượt hơnrdquo tiacutenh trung bigravenh một số giaacute

trị đo được gần đoacute khocircng chỉ SampleRTT hiện tại

Transport Layer 3-59

TCP Round Trip Time vagrave Timeout

EstimatedRTT = (1- )EstimatedRTT + SampleRTT

giaacute trị đặc trưng = 0125

Transport Layer 3-60

Viacute dụ đaacutenh giaacute RTTRTT gaiacsumassedu to fantasiaeurecomfr

100

150

200

250

300

350

1 8 15 22 29 36 43 50 57 64 71 78 85 92 99 106

time (seconnds)

RTT

(mill

isec

onds

)

SampleRTT Estimated RTT

Transport Layer 3-61

TCP Round Trip Time vagrave Timeout

Thiết lập timeout EstimtedRTT cộng ldquohệ số dự trữ an toagravenrdquo

sự biến thiecircn lớn trong EstimatedRTT -gt hệ số dự trữ an toagraven lớn hơn ước lượng đầu tiecircn về sự biến thiecircn của SampleRTT từ EstimatedRTT

TimeoutInterval = EstimatedRTT + 4DevRTT

DevRTT = (1-)DevRTT + |SampleRTT-EstimatedRTT|

(tiecircu biểu = 025)

Sau đoacute thiết lập timeout interval

Transport Layer 3-62

TCP truyền dữ liệu tin cậy

TCP tạo dịch vụ rdt trecircn dịch vụ khocircng tin cậy IP

caacutec đoạn Pipelined caacutec ACK tiacutech lũy TCP dugraveng bộ định thigrave

truyền lại đơn

Truyền lại được kiacutech hoạt bởi caacutec sự kiện timeout caacutec ack trugraveng lặp

luacutec đầu khảo saacutet caacutec becircn gửi TCP đơn giản lờ đi caacutec ack trugraveng lặp lờ đi điều khiển luồng

điều khiển tắc nghẽn

Transport Layer 3-63

TCP caacutec sự kiệndữ liệu đatilde nhận từ ứng

dụng tạo đoạn với số thứ

tự của noacute số thứ tự lagrave số theo

byte dữ liệu đầu tiecircn khởi động bộ định thigrave

nếu chưa chạy khoảng thời gian hết

hạn TimeOutInterval

timeout gửi lại đoạn nagraveo gacircy

ra timeout khởi động lại bộ định

thigrave Ack đatilde nhận

cập nhật caacutei gigrave sẽ được ACK

khởi động bộ định thigrave nếu coacute caacutec đoạn cograven chờ

Transport Layer 3-64

TCP becircn gửi(đơn giản)

NextSeqNum = InitialSeqNum SendBase = InitialSeqNum

loop (forever) switch(event)

event data received from application above create TCP segment with sequence number NextSeqNum if (timer currently not running) start timer pass segment to IP NextSeqNum = NextSeqNum + length(data)

event timer timeout retransmit not-yet-acknowledged segment with smallest sequence number start timer

event ACK received with ACK field value of y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer

end of loop forever

Chuacute thiacutechbull SendBase-1 byte vừa được ACK tiacutech lũy Viacute dụbull SendBase-1 = 71y= 73 vigrave thế becircn nhận muốn 73+ y gt SendBase vigrave thế dữ liệu mới được chấp nhận

Transport Layer 3-65

TCP caacutec tigravenh huống truyền lại

Host A

Seq=100 20 bytes data

ACK=100

timetimeout sớm

Host B

Seq=92 8 bytes data

ACK=120

Seq=92 8 bytes data

Seq=

92

tim

eout

ACK=120

Host A

Seq=92 8 bytes data

ACK=100

loss

tim

eout

tigravenh huống mất ACK

Host B

X

Seq=92 8 bytes data

ACK=100

time

Seq=

92

tim

eout

SendBase= 100

SendBase= 120

SendBase= 120

Sendbase= 100

Transport Layer 3-66

TCP caacutec tigravenh huống truyền lại (tt)Host A

Seq=92 8 bytes data

ACK=100

loss

tim

eout

Cumulative ACK scenario

Host B

X

Seq=100 20 bytes data

ACK=120

time

SendBase= 120

Transport Layer 3-67

TCP sinh ra ACK [RFC 1122 RFC 2581]

Sự kiện tại becircn nhận

Đoạn đến với đuacuteng số thứ tự mong muốn Tất cả dữ liệu đếnđatilde được ACK

Đoạn đến với đuacuteng số thứ tự mong muốn Một đoạn khaacutec đangchờ ACK

Caacutec đoạn đến khocircng thứ tựlớn hơn số thứ tự đoạn mong muốnCoacute khoảng trống

Đoạn đếnlấp đầy từng phần hoặc toagraven bộkhoảng trống

TCP becircn nhận hagravenh động

ACK trễ Chờ đến 500mscho đoạn kế tiếp Nếu khocircng coacute đoạnkế tiếp gửi ACK

Gửi ngay một ACK tiacutech lũy chấp nhậncho cả caacutec đoạn theo thứ tự

Gửi ngay ACK trugraveng lặp chỉ thị số thứ tựđoạn của byte kế tiếp đang mong chờ

Gửi ngay ACK với điều kiện lagrave đoạnbắt đầu ngay điểm coacute khoảng trống

Transport Layer 3-68

Truyền lại nhanh

Chu kỳ Time-out thường tương đối dagravei độ trễ dagravei trước khi gửi

lại goacutei đatilde mất

Xaacutec nhận caacutec đoạn đatilde mất bằng caacutec ACK trugraveng lặp becircn gửi thường gửi

nhiều đoạn song song Nếu đoạn bị mất sẽ

xảy ra tigravenh trạng giống như nhiều ACK trugraveng nhau

Nếu becircn gửi nhận 3 ACK của cugraveng một dữ liệu noacute cho lagrave đoạn sau dữ liệu đatilde ACK bị mất Truyền lại nhanh gửi

lại đoạn trước khi bộ định thigrave hết hạn

Transport Layer 3-69

sự kiện ACK đatilde nhận với trường lagrave y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer else increment count of dup ACKs received for y if (count of dup ACKs received for y = 3) resend segment with sequence number y

Giải thuật truyền lại nhanh

một ACK trugraveng lặp cho đoạn đatilde được ACK

Truyền lại nhanh

Transport Layer 3-70

Chương 3 Nội dung trigravenh bagravey

31 Caacutec dịch vụ lớp Transport

32 Multiplexing vagrave demultiplexing

33 Vận chuyển khocircng kết nối UDP

34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy

35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối

36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn

37 Điều khiển tắc nghẽn TCP

Transport Layer 3-71

TCP điều khiển luồng

becircn nhận của kết nối TCP coacute một bộ đệm nhận

dịch vụ so trugraveng tốc độ so trugraveng tốc độ gửi với tốc độ nhận của ứng dụng

tiến trigravenh ứng dụng coacute thể chậm tại luacutec đọc bộ đệm

becircn gửi sẽ khocircng lagravem tragraven bộ đệm vigrave truyền quaacute nhiều vagrave

quaacute nhanh

điều khiển luồng

Transport Layer 3-72

TCP điều khiển luồng caacutech lagravem

(Giả sử becircn nhận TCP loại bỏ caacutec đoạn khocircng coacute thứ tự)

dự phograveng trong bộ đệm= RcvWindow

= RcvBuffer-[LastByteRcvd - LastByteRead]

Becircn nhận thocircng baacuteo khoảng dự trữ nhờ giaacute trị RcvWindow trong caacutec đoạn

Becircn gửi hạn chế dữ liệu khocircng được ACK vagraveo RcvWindow bảo đảm bộ đệm nhận

khocircng tragraven

Transport Layer 3-73

Chương 3 Nội dung trigravenh bagravey

31 Caacutec dịch vụ lớp Transport

32 Multiplexing vagrave demultiplexing

33 Vận chuyển khocircng kết nối UDP

34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy

35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối

36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn

37 Điều khiển tắc nghẽn TCP

Transport Layer 3-74

TCP quản lyacute kết nối

Chuacute yacute Becircn gửi vagrave becircn nhận TCP thiết lập ldquokết nốirdquo trước khi trao đổi dữ liệu

khởi tạo caacutec biến TCP caacutec số thứ tự đoạn thocircng tin caacutec bộ đệm điều

khiển luồng (như RcvWindow)

client người khởi xướng kết nối

Socket clientSocket = new Socket(hostnameport

number) server được tiếp xuacutec bởi

client Socket connectionSocket =

welcomeSocketaccept()

3 phương phaacutep bắt tay

Bước 1 client host gửi đoạnTCP SYN đến server xaacutec định số thứ tự khởi đầu khocircng phải dữ liệu

Bước 2 server host nhận SYN trả lời với đoạn SYNACK

server cấp phaacutet caacutec bộ đệm

xaacutec định số thứ tự khởi đầuBước 3 client nhận SYNACK trả

lời với đoạn ACK (coacute thể chứa dữ liệu)

Transport Layer 3-75

TCP quản lyacute kết nối (tt)

Đoacuteng một kết nối

client đoacuteng socket clientSocketclose()

Bước 1 client gửi đoạn điều khiển TCP FIN đến server

Bước 2 server nhận FIN trả lời với ACK Đoacuteng kết nối gửi FIN

client

FIN

server

ACK

ACK

FIN

đoacuteng

đoacuteng

đatilde đoacutengthời g

ian c

hờ

Transport Layer 3-76

TCP quản lyacute kết nối (tt)

Bước 3 client nhận FIN trả lời với ACK

Trong khoảng ldquothời gian chờrdquo ndash sẽ phản hồi với ACK để nhận caacutec FIN

Bước 4 server nhận ACK Kết nối đatilde đoacuteng

Chuacute yacute với một sửa đổi nhỏ coacute thể quản lyacute nhiều FIN đồng thời

client

FIN

server

ACK

ACK

FIN

đang đoacuteng

đang đoacuteng

đatilde đoacuteng

thời g

ian c

hờ

đatilde đoacuteng

Transport Layer 3-77

TCP quản lyacute kết nối (tt)

chu kỳ sống củaTCP client

chu kỳ sống củaTCP server

Transport Layer 3-78

Chương 3 Nội dung trigravenh bagravey

31 Caacutec dịch vụ lớp Transport

32 Multiplexing vagrave demultiplexing

33 Vận chuyển khocircng kết nối UDP

34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy

35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối

36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn

37 Điều khiển tắc nghẽn TCP

Transport Layer 3-79

Caacutec nguyecircn lyacute điều khiển tắc nghẽn

Tắc nghẽn ldquoquaacute nhiều nguồn gửi quaacute nhanh vagrave quaacute nhiều

dữ liệu đến mạngrdquo khaacutec với điều khiển luồng caacutec biểu hiện

caacutec goacutei bị mất (tragraven bộ đệm tại caacutec router) caacutec độ trễ quaacute dagravei (xếp hagraveng trong bộ đệm

của router) lagrave 1 trong 10 vấn đề nan giải nhất

Transport Layer 3-80

Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 1

2 gửi 2 nhận 1 router caacutec bộ

đệm khocircng giới hạn

khocircng coacute truyền lại

caacutec độ trễ lớn hơn khi tắc nghẽn

năng suất coacute thể đạt tối đa

unlimited shared output link buffers

Host Ain original data

Host B

out

Transport Layer 3-81

Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 2

1 router caacutec bộ đệm coacute giới hạn becircn gửi truyền lại caacutec goacutei đatilde mất

chia sẻ vocirc hạncaacutec bộ đệm ouput

Host A in dữ liệu gốc

Host B

out

in dữ liệu gốc cugraveng với dữ liệu truyền lại

Transport Layer 3-82

Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 2 luocircn luocircn

truyền lại ldquohoagraven toagravenrdquo chỉ khi mất maacutet

truyền lại vigrave trễ (khocircng mất) lagravem cho lớn hơn với cugraveng

in

out

=

in

out

gt

in

out

ldquocaacutec chi phiacuterdquo của tắc nghẽn nhiều việc (truyền lại) caacutec truyền lại khocircng cần thiết liecircn kết nhiều bản sao của

goacutei

R2

R2in

ou

t

b

R2

R2in

ou

t

a

R2

R2in

ou

t

c

R4

R3

Transport Layer 3-83

Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 3 4 người gửi caacutec đường qua nhiều hop timeouttruyền lại

in

Hỏi điều gigrave xảy ra nếu vagrave tăng lecircn

in

chia sẻ vocirc hạncaacutec bộ đệm ouput

Host Ain dữ liệu gốc

Host B

out

in dữ liệu gốc cugraveng với dữ liệu truyền lại

Transport Layer 3-84

Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 3

ldquochi phiacuterdquo khaacutec của tắc nghẽn khi caacutec goacutei bị bỏ bất kỳ ldquokhả năng truyền

upstream dugraveng cho goacutei đoacute sẽ bị latildeng phiacuterdquo

Host A

Host B

o

u

t

Transport Layer 3-85

Caacutec caacutech tiếp cận đối với điều khiển tắc nghẽn

điều khiển tắc nghẽn end-end

khocircng coacute phản hồi rotilde ragraveng từ mạng

tắc nghẽn được suy ra từ việc quan saacutet caacutec hệ thống đầu cuối coacute mất maacutet trễ

tiếp cận được quản lyacute bởi TCP

điều khiển tắc nghẽn coacute sự hỗ trợ của mạng

caacutec router cung cấp phản hồi về caacutec hệ thống đầu cuối 1 bit duy nhất chỉ thị

tắc nghẽn (SNA DECbit TCPIP ECN ATM)

tốc độ sẽ gửi được xaacutec định rotilde ragraveng

2 caacutech

Transport Layer 3-86

Viacute dụ điều khiển tắc nghẽn ATM ABR

ABR tốc độ bit sẵn sagraveng

ldquodịch vụ mềm dẻordquo nếu đường gửi ldquochưa

hếtrdquo becircn gửi sẽ dugraveng

băng thocircng sẵn sagraveng nếu đường gửi tắc

nghẽn becircn gửi điều tiết với

tốc độ tối thiểu

RM (resource management)

gửi bởi becircn gửi rải raacutec với caacutec ocirc dữ liệu

caacutec bit trong ocirc thiết lập bởi caacutec switch bit NI khocircng tăng tốc độ

(tắc nghẽn nhẹ) bit CI tắc nghẽn rotilde rệt

Caacutec ocirc RM được trả về becircn gửi từ becircn nhận với nguyecircn vẹn caacutec bit

Transport Layer 3-87

Viacute dụ điều khiển tắc nghẽn ATM ABR

trường 2-byte ER trong ocirc RM switch đatilde tắc nghẽn coacute thể coacute giaacute trị ER thấp hơn trong ocirc tốc độ gửi do đoacute coacute thể được hỗ trợ tối đa trecircn đường

EFCI bit trong caacutec ocirc dữ liệu được cagravei giaacute trị 1 trong switch đatilde tắc nghẽn nếu ocirc dữ liệu đứng trước ocirc RM coacute cagravei EFCI becircn gửi sẽ cagravei

bit CI trong ocirc RM trả về

Transport Layer 3-88

Chương 3 Nội dung trigravenh bagravey

31 Caacutec dịch vụ lớp Transport

32 Multiplexing vagrave demultiplexing

33 Vận chuyển khocircng kết nối UDP

34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy

35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối

36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn

37 Điều khiển tắc nghẽn TCP

Transport Layer 3-89

TCP điều khiển tắc nghẽn additive tăng lecircn multiplicative giảm xuống

8 Kbytes

16 Kbytes

24 Kbytes

time

congestionwindow

Caacutech tiếp cận tăng tốc độ truyền (kiacutech thước cửa sổ) tigravem khả năng băng thocircng coacute thể cho đến khi coacute mất maacutet xảy ra additive tăng lecircn tăng CongWin bởi 1 MSS

mỗi RTT cho đến khi coacute mất maacutet xảy ra multiplicative giảm xuống bỏ CongWin trong

nửa giai đoạn sau khi mất maacutet

timekiacutech

thư

ớc

cửa

sổ

tắc

nghẽ

n

Tigravem kiếm băng thocircng

Transport Layer 3-90

TCP điều khiển tắc nghẽn chi tiết

becircn gửi hạn chế việc truyền LastByteSent-LastByteAcked

CongWin Cocircng thức

CongWin thay đổi chức năng lagrave nhận biết tắc nghẽn trecircn mạng

Lagravem thế nagraveo becircn gửi nhận biết tắc nghẽn

mất maacutet xảy ra = timeout hoặc 3 ack trugraveng lặp

becircn gửi giảm tốc độ (CongWin) sau khi mất maacutet xảy ra

3 cơ chế AIMD khởi động chậm thận trọng sau khi coacute

caacutec sự kiện timeout

tốc độ = CongWin

RTT Bytess

Transport Layer 3-91

TCP khởi động chậm

Khi kết nối bắt đầu CongWin = 1 MSS Viacute dụ MSS = 500 bytes

amp RTT = 200 ms tốc độ khởi tạo = 20

kbps

băng thocircng sẵn sagraveng coacute thể gtgt MSSRTT mong muốn nhanh

choacuteng tăng tốc lecircn tốc độ coacute thể đaacutep ứng

Khi kết nối bắt đầu tăng tốc lecircn rất nhanh cho đến khi sự cố mất maacutet xảy ra đầu tiecircn

Transport Layer 3-92

TCP khởi động chậm (tt)

Khi kết nối bắt đầu tăng tốc lecircn rất nhanh cho đến khi sự cố mất maacutet xảy ra đầu tiecircn nhacircn đocirci CongWin mỗi

RTT hoagraven thagravenh nhờ tăng CongWin ứng với mỗi ACK đatilde nhận

Tổng kết tốc độ khởi đầu lagrave chậm nhưng sau đoacute tăng tốc rất nhanh

Host A

1 đoạn

RTT

Host B

thời gian

2 đoạn

4 đoạn

Transport Layer 3-93

Tinh chếHỏi Khi nagraveo việc tăng

tốc trở thagravenh tuyến tiacutenh

Trả lời Khi CongWin đạt đến 12 giaacute trị của noacute trước khi timeout

Hiện thực Ngưỡng thay đổi Tại thời điểm coacute sự cố

mất maacutet ngưỡng được cagravei giaacute trị bằng frac12 của CongWin ngay trước đoacute

Transport Layer 3-94

Tinh chế nhận biết mất maacutet

Sau 3 ACK trugraveng lặp CongWin sẽ giảm 12 kiacutech thước cửa sổ

tăng tuyến tiacutenh nhưng sau sự cố

timeout CongWin thay giaacute trị

bằng 1 MSS kiacutech thước cửa sổ

tăng cấp lũy thừa khi đến một ngưỡng

thigrave tăng tuyến tiacutenh

3 ACK trugraveng nhau chỉ ra khả năng truyền của mạng timeout chỉ thị ldquonhiều cảnh baacuteordquo về tigravenh huống tắc nghẽn

Nguyecircn lyacute

Transport Layer 3-95

Tổng kết TCP điều khiển tắc nghẽn

Khi CongWin dưới Threshold becircn gửi đang trong giai đoạn khởi động chậm kiacutech thước cửa sổ tăng nhanh theo cấp lũy thừa

Khi CongWin trecircn Threshold becircn gửi đang trong giai đoạn traacutenh tắc nghẽn kiacutech thước cửa sổ tăng nhanh theo cấp tuyến tiacutenh

Khi coacute 3 ACK trugraveng lặp xảy ra Threshold = CongWin2 vagrave CongWin = Threshold

Khi timeout xảy ra Threshold = CongWin2 vagrave CongWin = 1 MSS

Transport Layer 3-96

TCP điều khiển tắc nghẽn becircn gửi

Trạng thaacutei Sự kiện TCP becircn gửi hagravenh động Diễn giải

Slow Start (SS)-Khởi động chậm

ACK baacuteo nhận cho dữ liệu chưa ACK trước đoacute

CongWin = CongWin + MSS If (CongWin gt Threshold) cagravei đặt trạng thaacutei ldquoTraacutenh tắc nghẽnrdquo

Hậu quả lagravem tăng gấp đocirci CongWin mỗi RTT

CongestionAvoidance (CA) ndashTraacutenh tắc nghẽn

ACK baacuteo nhận cho dữ liệu chưa ACK trước đoacute

CongWin = CongWin+MSS (MSSCongWin)

Additive tăng lecircn lagravem tăng CongWin lecircn 1 MSS mỗi RTT

SS hoặc CA Sự cố mất maacutet xảy ra khi thấy coacute 3 ACK trugraveng lặp

Threshold = CongWin2 CongWin = Thresholdcagravei đặt trạng thaacutei ldquoTraacutenh tắc nghẽnrdquo

Khocirci phục nhanh hiện thực giảm xuống multiplicative CongWin sẽ khocircng giảm xuống dưới 1 MSS

SS hoặc CA Timeout Threshold = CongWin2 CongWin = 1 MSScagravei đặt trạng thaacutei ldquoKhởi động chậmrdquo

Vagraveo chế độ ldquoKhởi động chậmrdquo

SS hoặc CA ACK trugraveng lặp

Đếm ACK tăng lecircn cho đoạn vừa được ACK

CongWin vagrave Threshold khocircng thay đổi

Transport Layer 3-97

TCP throughput

Throughout trung bigravenh của TCP biểu diễn qua kiacutech thước của sổ vagrave RTT Bỏ qua trạng thaacutei ldquoKhởi động chậmrdquo

Cho W lagrave kiacutech thước cửa sổ khi coacute mất maacutet xảy ra

Khi kiacutech thước cửa sổ = W lưu lượng = WRTT

Chỉ ngay sau khi mất maacutet cửa sổ giảm xuống = W2 lưu lượng = W2RTT

throughout trung bigravenh 075 WRTT

Transport Layer 3-98

TCP tương lai

Viacute dụ caacutec đoạn dagravei 1500 byte RTT 100ms lưu lượng 10 Gbps

Kiacutech thước cửa sổ yecircu cầu W = 83333 đoạn trecircn đường truyền

Lưu lượng trong caacutec trường hợp mất maacutet

L = 210-10

Phiecircn bản mới của TCP dagravenh cho nhu cầu tốc độ cao

LRTT

MSS221

Transport Layer 3-99

Mục tiecircu nếu K phiecircn lagravem việc TCP chia sẻ kết nối cổ chai của băng thocircng lagrave R mỗi phiecircn coacute tốc độ trung bigravenh lagrave RK

TCP kết nối 1

router cổ chaikhả năng R

TCP kết nối 2

TCP tiacutenh cocircng bằng

Transport Layer 3-100

Tại sao phải TCP cocircng bằng

2 phiecircn lagravem việc cạnh tranh nhau Additive tăng lưu lượng tăng multiplicative giảm lưu lượng tương xứng

R

R

chia sẻ băng thocircng bằng nhau

Connection 1 throughputConnect

ion 2

th

roughput

traacutenh tắc nghẽn additive tăng lecircnmất maacutet giảm cửa sổ bằng 12

traacutenh tắc nghẽn additive tăng lecircnmất maacutet giảm cửa sổ bằng 12

Transport Layer 3-101

TCP tiacutenh cocircng bằng (tt)

Tiacutenh cocircng bằng amp UDP nhiều ứng dụng

thường khocircng dugraveng TCP khocircng muốn tốc độ bị

điều tiết do điều khiển tắc nghẽn

Thay bằng dugraveng UDP truyền audiovideo với

tốc độ ổn định chịu được mất maacutet

Nghiecircn cứu giao thức thacircn thiện với TCP

Tiacutenh cocircng bằng amp caacutec kết nối TCP song song

khocircng coacute gigrave ngăn cản việc ứng dụng mở caacutec kết nối song song giữa 2 host

Trigravenh duyệt Web lagravem giống như thế

Viacute dụ tốc độ R hỗ trợ 9 kết nối ứng dụng mới yecircu cầu 1

TCP coacute tốc độ R10 ứng dụng mới yecircu cầu 11

TCP coacute tốc độ R2

Transport Layer 3-102

Mocirc higravenh trễ

Hỏi Mất bao lacircu để nhận 1 đối tượng từ Web server sau khi gửi yecircu cầu

Bỏ qua tắc nghẽn trễ bị ảnh hưởng bởi

thiết lập kết nối TCP trễ truyền dữ liệu khởi động chậm

Notation caacutec giả định Giả sử một kết nối giữa

client vagrave server coacute tốc độ R

S MSS (bits) O kiacutech thước đối tượng

(bits) khocircng truyền lại (khocircng

mất maacutet khocircng hỏng)

Kiacutech thước cửa sổ Giả định 1 cửa sổ tắc

nghẽn cố định coacute W đoạn Sau đoacute cửa sổ thay đổi

mocirc higravenh khởi động chậm

Transport Layer 3-103

Cửa sổ tắc nghẽn cố định (1)

Trường hợp đầu tiecircnWSR gt RTT + SR cho

đoạn đầu tiecircn trong cửa sổ trả về trước khi cửa sổ dữ liệu gửi ACK

trễ = 2RTT + OR

Transport Layer 3-104

Cửa sổ tắc nghẽn cố định (2)

Trường hợp thứ hai WSR lt RTT + SR sent

chờ cho ACK sau khi gửi dữ liệu

trễ = 2RTT + OR+ (K-1)[SR + RTT - WSR]

Transport Layer 3-105

TCP Mocirc higravenh trễ Khởi động chậm (1)

Bacircy giờ giả sử kiacutech thước cửa sổ tăng lecircn tugravey theo quaacute trigravenh khởi động chậm

Độ trễ của một đối tượng sẽ lagrave

R

S

R

SRTTP

R

ORTTLatency P )12(2

trong đoacute P lagrave số lần TCP rảnh ở tại server

1min KQP

- trong đoacute Q lagrave số lần server rảnh nếu đối tượng đatilde khởi tạo kiacutech thước

- vagrave K lagrave số lượng cửa sổ bao trugravem đối tượng

Transport Layer 3-106

TCP Mocirc higravenh trễ Khởi động chậm (2)

RTT

initia te TCPconnection

requestobject

first w indow= S R

second w indow= 2S R

third w indow= 4S R

fourth w indow= 8S R

com pletetransm issionobject

delivered

tim e atc lient

tim e atserver

Viacute dụbull OS = 15 đoạnbull K = 4 cửa sổbull Q = 2bull P = minK-1Q = 2

Server rảnh P=2 lần

Caacutec thagravenh phần trễbull 2 RTT dagravenh cho thiết lập kết nối vagrave yecircu cầubull OR để truyền đối tượngbullthời gian server rảnh bởi vigrave khởi động chậm

Server rảnh P = minK-1Q lần

Transport Layer 3-107

TCP Mocirc higravenh trễ(3)

R

S

R

SRTTPRTT

R

O

R

SRTT

R

SRTT

R

O

idleTimeRTTR

O

P

kP

k

P

pp

)12(][2

]2[2

2delay

1

1

1

th window after the timeidle 2 1 kR

SRTT

R

S k

ementacknowledg receivesserver until

segment send tostartsserver when from time RTTR

S

window kth the transmit totime2 1

R

Sk

RTT

initia te TCPconnection

requestobject

first w indow= S R

second w indow= 2S R

third w indow= 4S R

fourth w indow= 8S R

com pletetransm issionobject

delivered

tim e atc lient

tim e atserver

Transport Layer 3-108

TCP Mocirc higravenh trễ (4)

)1(log

)1(logmin

12min

222min

222min

2

2

110

110

S

OS

Okk

S

Ok

SOk

OSSSkK

k

k

k

caacutech tiacutenh toaacuten Q tương tự (xem HW)

K = số lượng cửa sổ bao trugravem đối tượngLagravem thế nagraveo tiacutenh được K

Transport Layer 3-109

HTTP Mocirc higravenh Giả sử trang Web chứa

1 trang HTML (kiacutech thước O bits) M higravenh ảnh (mỗi caacutei kiacutech thướcO bits)

HTTP khocircng bền vững M+1 TCP kết nối Thời gian đaacutep ứng = (M+1)OR + (M+1)2RTT + tổng số thời

gian rảnh HTTP bền vững

2 RTT để yecircu cầu vagrave nhận file HTML 1 RTT để yecircu cầu vagrave nhận M higravenh ảnh Thời gian đaacutep ứng = (M+1)OR + 3RTT + tổng số thời gian

rảnh HTTP khocircng bền vững với X kết nối song song

Giả sử MX lagrave số nguyecircn 1 TCP kết nối cho file MX thiết lập caacutec kết nối song song cho caacutec higravenh ảnh Thời gian đaacutep ứng = (M+1)OR + (MX + 1)2RTT + tổng số

thời gian rảnh

Transport Layer 3-110

02468

101214161820

28Kbps

100Kbps

1Mbps

10Mbps

non-persistent

persistent

parallel non-persistent

HTTP thời gian đaacutep ứng (giacircy)RTT = 100 msec O = 5 Kbytes M=10 vagrave X=5

Với băng thocircng thấp thời gian kết nối amp đaacutep ứng trội hơn thời gian truyền

Caacutec kết nối bền vững chỉ cho sự cải thiện khocircng đaacuteng kể trecircn caacutec kết nối song song

Transport Layer 3-111

0

10

20

30

40

50

60

70

28Kbps

100Kbps

1Mbps

10Mbps

non-persistent

persistent

parallel non-persistent

HTTP thời gian đaacutep ứng (giacircy)

RTT =1 sec O = 5 Kbytes M=10 and X=5

Với RTT lớn hơn thời gian đaacutep ứng trội hơn thời gian trễ chờ thiết lập kết nốiTCP amp khởi động chậm Caacutec kết nối bền vững bacircy giờ cho thấy cải thiện rotilde rệt đặc biệtvới caacutec mạng băng thocircng cao

Transport Layer 3-112

Chương 3 Tổng kết caacutec nguyecircn lyacute của caacutec

dịch vụ lớp transport multiplexing

demultiplexing truyền dữ liệu tin cậy điều khiển luồng điều khiển tắc nghẽn

khởi tạo vagrave hiện thực trong Internet UDP TCP

Tiếp theo nghiecircn cứu xong

caacutec vấn đề ldquongoagravei biecircnrdquo (caacutec lớp application transport)

chuẩn bị vagraveo phần ldquolotildeirdquo của mạng

  • Slide 1
  • Chương 3 Lớp Transport
  • Chương 3 Nội dung trigravenh bagravey
  • Caacutec dịch vụ vagrave giao thức Transport
  • Lớp Transport với lớp network
  • Caacutec giao thức lớp transport trecircn Internet
  • Slide 7
  • Multiplexingdemultiplexing
  • Demultiplexing lagravem việc như thế nagraveo
  • Demultiplexing khocircng kết nối
  • Demultiplexing khocircng kết nối (tiếp)
  • Demultiplexing hướng kết nối
  • Demultiplexing hướng kết nối (tiếp)
  • Demultiplexing hướng kết nối Threaded Web Server
  • Slide 15
  • UDP User Datagram Protocol [RFC 768]
  • UDP (tt)
  • UDP checksum
  • Viacute dụ Checksum
  • Slide 20
  • Caacutec nguyecircn lyacute truyền dữ liệu tin cậy
  • Slide 22
  • Slide 23
  • Truyền dữ liệu tin cậy
  • Slide 25
  • Rdt10 truyền dữ liệu tin cậy trecircn 1 kecircnh truyền tin cậy
  • Rdt20 kecircnh với caacutec lỗi
  • rdt20 đặc tả FSM
  • rdt20 hoạt động khi khocircng lỗi
  • rdt20 hoạt động khi coacute lỗi
  • rdt20 coacute lỗ hổng nghiecircm trọng
  • rdt21 người gửi quản lyacute caacutec ACKNAK bị hỏng
  • Slide 33
  • rdt21 thảo luận
  • rdt22 một giao thức khocircng cần NAK
  • rdt22 gửi nhận caacutec mảnh
  • rdt30 caacutec kecircnh với lỗi vagrave mất maacutet
  • rdt30 gửi
  • hagravenh động của rdt30
  • Slide 40
  • Hiệu suất của rdt30
  • rdt30 hoạt động dừng-vagrave-chờ
  • Caacutec giao thức Pipelined
  • Pipelining độ khả dụng tăng
  • Go-Back-N
  • GBN becircn gửi mở rộng FSM
  • GBN becircn nhận mở rộng FSM
  • GBN hoạt động
  • Lặp coacute lựa chọn
  • Lặp coacute lựa chọn caacutec cửa sổ gửi nhận
  • Slide 51
  • Hoạt động của lặp coacute lựa chọn
  • Lặp coacute lựa chọn tigravenh trạng khoacute giải quyết
  • Slide 54
  • TCP Tổng quan RFCs 793 1122 1323 2018 2581
  • TCP cấu truacutec đoạn
  • Caacutec số thứ tự TCP vagrave ACK
  • TCP Round Trip Time vagraveTimeout
  • TCP Round Trip Time vagrave Timeout
  • Viacute dụ đaacutenh giaacute RTT
  • Slide 61
  • TCP truyền dữ liệu tin cậy
  • TCP caacutec sự kiện
  • TCP becircn gửi (đơn giản)
  • TCP caacutec tigravenh huống truyền lại
  • TCP caacutec tigravenh huống truyền lại (tt)
  • TCP sinh ra ACK [RFC 1122 RFC 2581]
  • Truyền lại nhanh
  • Giải thuật truyền lại nhanh
  • Slide 70
  • TCP điều khiển luồng
  • TCP điều khiển luồng caacutech lagravem
  • Slide 73
  • TCP quản lyacute kết nối
  • TCP quản lyacute kết nối (tt)
  • Slide 76
  • Slide 77
  • Slide 78
  • Caacutec nguyecircn lyacute điều khiển tắc nghẽn
  • Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 1
  • Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 2
  • Slide 82
  • Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 3
  • Slide 84
  • Caacutec caacutech tiếp cận đối với điều khiển tắc nghẽn
  • Viacute dụ điều khiển tắc nghẽn ATM ABR
  • Slide 87
  • Slide 88
  • TCP điều khiển tắc nghẽn additive tăng lecircn multiplicative giảm xuống
  • TCP điều khiển tắc nghẽn chi tiết
  • TCP khởi động chậm
  • TCP khởi động chậm (tt)
  • Tinh chế
  • Tinh chế nhận biết mất maacutet
  • Tổng kết TCP điều khiển tắc nghẽn
  • TCP điều khiển tắc nghẽn becircn gửi
  • TCP throughput
  • TCP tương lai
  • TCP tiacutenh cocircng bằng
  • Tại sao phải TCP cocircng bằng
  • TCP tiacutenh cocircng bằng (tt)
  • Mocirc higravenh trễ
  • Cửa sổ tắc nghẽn cố định (1)
  • Cửa sổ tắc nghẽn cố định (2)
  • TCP Mocirc higravenh trễ Khởi động chậm (1)
  • TCP Mocirc higravenh trễ Khởi động chậm (2)
  • TCP Mocirc higravenh trễ(3)
  • TCP Mocirc higravenh trễ (4)
  • HTTP Mocirc higravenh
  • Slide 110
  • Slide 111
  • Chương 3 Tổng kết

Transport Layer 3-8

Multiplexingdemultiplexing

application

transport

network

link

physical

P1 application

transport

network

link

physical

application

transport

network

link

physical

P2P3 P4P1

host 1 host 2 host 3

= tiến trigravenh = socket

vận chuyển caacutec đoạn đatilde nhận được đến đuacuteng socket

Demultiplexing tại host nhậnthu nhặt dữ liệu từ nhiều socket đoacuteng goacutei dữ liệu vớiheader (sẽ dugraveng sau đoacute chodemultiplexing)

Multiplexing tại host gửi

Transport Layer 3-9

Demultiplexing lagravem việc như thế nagraveo host nhận caacutec IP datagrams

mỗi datagram coacute địa chỉ IP nguồn vagrave IP điacutech

mỗi datagram mang 1 đoạn của lớp transport

mỗi đoạn coacute số port nguồn vagrave điacutech

host dugraveng địa chỉ IP amp số port để điều hướng đoạn đến socket thiacutech hợp

port nguồn port điacutech

32 bits

dữ liệu ứng dụng(thocircng điệp)

caacutec header fields khaacutec

dạng thức đoạn TCPUDP

Transport Layer 3-10

Demultiplexing khocircng kết nối

Tạo caacutec sockets với caacutec số port

DatagramSocket mySocket1 = new DatagramSocket(12534)

DatagramSocket mySocket2 = new DatagramSocket(12535)

UDP socket được xaacutec định bởi bộ 2

(địa chỉ IP số port điacutech)

Khi host nhận đoạn UDP kiểm tra port điacutech trong

đoạn điều hướng đoạn UDP

đến socket nagraveo phugrave hợp với số port đoacute

IP datagrams với địa chỉ IP nguồn vagravehoặc số port khaacutec nhau coacute thể được điều hướng đến cugraveng socket

Transport Layer 3-11

Demultiplexing khocircng kết nối (tiếp)

DatagramSocket serverSocket = new DatagramSocket(6428)

ClientIPB

P2

client IP A

P1P1P3

serverIP C

SP 6428

DP 9157

SP 9157

DP 6428

SP 6428

DP 5775

SP 5775

DP 6428

SP cung cấp ldquođịa chỉ trở vềrdquo

Transport Layer 3-12

Demultiplexing hướng kết nối

TCP socket được xaacutec định bởi bộ 4 địa chỉ IP nguồn số port nguồn địa chỉ IP điacutech số port điacutech

host nhận dugraveng cả 4 giaacute trị trecircn để điều hướng đoạn đến socket thiacutech hợp

Host server coacute thể hỗ trợ nhiều TCP socket đồng thời mỗi socket được xaacutec

định bởi bộ 4 của noacute

Web server coacute caacutec socket khaacutec nhau cho mỗi kết nối từ client kết nối HTTP khocircng bền

vững sẽ coacute socket khaacutec nhau cho mỗi yecircu cầu

Transport Layer 3-13

Demultiplexing hướng kết nối (tiếp)

ClientIPB

P1

client IP A

P1P2P4

serverIP C

SP 9157

DP 80

SP 9157

DP 80

P5 P6 P3

D-IPCS-IP A

D-IPC

S-IP B

SP 5775

DP 80

D-IPCS-IP B

Transport Layer 3-14

Demultiplexing hướng kết nối Threaded Web Server

ClientIPB

P1

client IP A

P1P2

serverIP C

SP 9157

DP 80

SP 9157

DP 80

P4 P3

D-IPCS-IP A

D-IPC

S-IP B

SP 5775

DP 80

D-IPCS-IP B

Transport Layer 3-15

Chương 3 Nội dung trigravenh bagravey

31 Caacutec dịch vụ lớp Transport

32 Multiplexing vagrave demultiplexing

33 Vận chuyển khocircng kết nối UDP

34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy

35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối

36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn

37 Điều khiển tắc nghẽn TCP

Transport Layer 3-16

UDP User Datagram Protocol [RFC 768]

giao thức Internet transport ldquođơn giản hoacuteardquo

dịch vụ ldquobest effortrdquo caacutec đoạn UDP coacute thể mất maacutet vận chuyển khocircng thứ

tự đến ứng dụng connectionless (khocircng

kết nối) khocircng bắt tay giữa

người nhận vagrave người gửi UDP

mỗi đoạn UDP được quản lyacute độc lập

Coacute UDP để lagravem gigrave khocircng thiết lập kết nối

(giuacutep coacute thể thecircm delay) đơn giản khocircng trạng

thaacutei kết nối tại nơi gửi nơi nhận

header của đoạn nhỏ khocircng điều khiển tắc

nghẽn UDP coacute thể gửi nhanh nhất theo mong muốn

Transport Layer 3-17

UDP (tt)

thường dugraveng cho caacutec ứng dụng streaming multimedia chịu mất maacutet cảm nhận tốc độ

ngoagravei ra UDP dugraveng DNS SNMP

truyền tin cậy trecircn UDP thecircm khả năng nagravey tại lớp application sửa lỗi

source port dest port

32 bits

dữ liệu ứng dụng

(thocircng điệp)

dạng thức đoạn UDP

length checksumĐộ dagravei

đoạn UDPbao gồm cả

header

Transport Layer 3-18

UDP checksum

Người gửi đối xử caacutec nội dung

đoạn như một chuỗi caacutec số nguyecircn 16-bit

checksum bổ sung(tổng bugrave 1) của caacutec nội dung đoạn

đặt giaacute trị checksum vagraveo trường UDP checksum

Người nhận tiacutenh toaacuten checksum của

đoạn đatilde nhận kiểm tra giaacute trị trecircn coacute bằng

với giaacute trị trong trường checksum NO ndash coacute lỗi xảy ra YES ndash khocircng coacute lỗi Nhưng coacute thể cograven lỗi

khaacutec nữa Xem tiếp phần sau hellip

Mục tiecircu kiểm tra caacutec ldquolỗirdquo (caacutec bit cờ đatilde bật lecircn) trong caacutec đoạn đatilde truyền

Transport Layer 3-19

Viacute dụ Checksum Lưu yacute

Khi cộng caacutec số một bit nhớ ở phiacutea cao nhất coacute thể sẽ phải thecircm vagraveo kết quả

Viacute dụ cộng hai số nguyecircn 16-bit

1 1 1 1 0 0 1 1 0 0 1 1 0 0 1 1 01 1 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1

1 1 0 1 1 1 0 1 1 1 0 1 1 1 0 1 1

1 1 0 1 1 1 0 1 1 1 0 1 1 1 1 0 01 0 1 0 0 0 1 0 0 0 1 0 0 0 0 1 1

bit dư

tổngchecksum

Transport Layer 3-20

Chương 3 Nội dung trigravenh bagravey

31 Caacutec dịch vụ lớp Transport

32 Multiplexing vagrave demultiplexing

33 Vận chuyển khocircng kết nối UDP

34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy

35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối

36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn

37 Điều khiển tắc nghẽn TCP

Transport Layer 3-21

Caacutec nguyecircn lyacute truyền dữ liệu tin cậy quan trọng trong caacutec lớp application transport link lagrave danh saacutech 10 vấn đề quan trọng nhất của mạng

caacutec đặc thugrave của kecircnh truyền khocircng tin cậy sẽ xaacutec định sự phức tạp của giao thức truyền dữ liệu data transfer protocol (rdt)

Transport Layer 3-22

Caacutec nguyecircn lyacute truyền dữ liệu tin cậy quan trọng trong caacutec lớp application transport link lagrave danh saacutech 10 vấn đề quan trọng nhất của mạng

caacutec đặc thugrave của kecircnh truyền khocircng tin cậy sẽ xaacutec định sự phức tạp của giao thức truyền dữ liệu data transfer protocol (rdt)

Transport Layer 3-23

Caacutec nguyecircn lyacute truyền dữ liệu tin cậy quan trọng trong caacutec lớp application transport link lagrave danh saacutech 10 vấn đề quan trọng nhất của mạng

caacutec đặc thugrave của kecircnh truyền khocircng tin cậy sẽ xaacutec định sự phức tạp của giao thức truyền dữ liệu data transfer protocol (rdt)

Transport Layer 3-24

Truyền dữ liệu tin cậy

sendside

receiveside

rdt_send() được gọi bởi lớp app Chuyển dữ liệu cần truyền

đến lớp cao hơn becircn nhận

udt_send() được gọi bởi rdt để truyền caacutec goacutei trecircn kecircnh khocircng tin cậy đến nơi

nhận

rdt_rcv() được gọi khi goacutei đến kecircnh becircn nhận

deliver_data() được gọi bởi rdt để truyền dữ liệu

đến lớp cao hơn

Transport Layer 3-25

Truyền dữ liệu tin cậy

Sẽ chỉ xem xeacutet truyền dữ liệu theo 1 hướng duy

nhất nhưng điều khiển luồng thocircng tin sẽ theo cả 2

chiều

dugraveng maacutey trạng thaacutei hữu hạn (finite state machines-FSM) để xaacutec định người gửi người nhận

trthaacutei1

trthaacutei2

sự kiện gacircy ra trạng thaacutei truyềncaacutec hagravenh động xảy ra khi truyền

trạng thaacutei khi ở ldquotrạng thaacuteirdquo nagravey thigrave

trạng thaacutei kế tiếp duy nhất được xaacutec định bởi sự kiện kế

tiếp

sự kiệncaacutec hagravenh động

Transport Layer 3-26

Rdt10 truyền dữ liệu tin cậy trecircn 1 kecircnh truyền tin cậy

kecircnh ưu tiecircn tin cậy hoagraven toagraven khocircng coacute caacutec lỗi khocircng mất maacutet caacutec goacutei

caacutec FSM phacircn biệt cho người gửi người nhận người gửi gửi dữ liệu vagraveo kecircnh ưu tiecircn người nhận nhận dữ liệu từ kecircnh ưu tiecircn

chờ gọi từ lớp trecircn packet = make_pkt(data)

udt_send(packet)

rdt_send(data)

extract (packetdata)deliver_data(data)

chờ gọi từ lớp dưới

rdt_rcv(packet)

người gửi người nhận

Transport Layer 3-27

Rdt20 kecircnh với caacutec lỗi

kecircnh ưu tiecircn coacute thể bật lecircn một số bit trong goacutei checksum để kiểm tra caacutec lỗi

Hỏi lagravem sao khocirci phục caacutec lỗi acknowledgements (ACKs) becircn nhận rotilde ragraveng thocircng

baacuteo cho becircn gửi rằng quaacute trigravenh nhận goacutei tốt negative acknowledgements (NAKs) becircn nhận rotilde ragraveng

thocircng baacuteo cho becircn gửi rằng quaacute trigravenh nhận goacutei coacute lỗi người gửi gửi lại goacutei nagraveo được xaacutec nhận lagrave NAK

caacutec cơ chế mới trong rdt20 (sau rdt10) kiểm tra lỗi nhận phản hồi caacutec thocircng điệp điều khiển (ACKNAK)

becircn nhận becircn gửi

Transport Layer 3-28

rdt20 đặc tả FSM

chờ gọi từ lớp trecircn

snkpkt = make_pkt(data checksum)udt_send(sndpkt)

extract(rcvpktdata)deliver_data(data)udt_send(ACK)

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)

rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp isNAK(rcvpkt)

udt_send(NAK)

rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)

chờ ACK hoặc NAK

chờ gọi từ lớp dưới

người gửi

người nhậnrdt_send(data)

Transport Layer 3-29

rdt20 hoạt động khi khocircng lỗi

chờ gọi từ lớp dưới

snkpkt = make_pkt(data checksum)udt_send(sndpkt)

extract(rcvpktdata)deliver_data(data)udt_send(ACK)

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)

rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp isNAK(rcvpkt)

udt_send(NAK)

rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)

chờ ACK hoặc NAK

chờ gọi từ lớp dưới

rdt_send(data)

Transport Layer 3-30

rdt20 hoạt động khi coacute lỗi

chờ gọi từ lớp dưới

snkpkt = make_pkt(data checksum)udt_send(sndpkt)

extract(rcvpktdata)deliver_data(data)udt_send(ACK)

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)

rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp isNAK(rcvpkt)

udt_send(NAK)

rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)

chờ ACK hoặc NAK

chờ gọi từ lớp dưới

rdt_send(data)

Transport Layer 3-31

rdt20 coacute lỗ hổng nghiecircm trọngĐiều gigrave xảy ra nếu

ACKNAK bị hỏng người gửi khocircng biết điều

gigrave đatilde xảy ra tại becircn nhận

khocircng thể đơn phương truyền lại khả năng trugraveng lặp

Quản lyacute trugraveng lặp người gửi truyền lại goacutei

hiện tại nếu ACKNAK bị hỏng

người gửi thecircm số thứ tự vagraveo mỗi goacutei

người nhận hủy (khocircng nhận) goacutei trugraveng lặp

Người gửi gửi 1 goacutei sau đoacute dừng lại chờ phản hồitừ người nhận

dừng vagrave chờ

Transport Layer 3-32

rdt21 người gửi quản lyacute caacutec ACKNAK bị hỏng

chờ gọi 0 từ lớp trecircn

sndpkt = make_pkt(0 data checksum)udt_send(sndpkt)

rdt_send(data)

chờ ACK hoặc NAK

0 udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) ||isNAK(rcvpkt) )

sndpkt = make_pkt(1 data checksum)udt_send(sndpkt)

rdt_send(data)

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) ||isNAK(rcvpkt) )

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt)

chờ gọi 1 từ lớp trecircn

chờ ACK hoặc NAK

1

Transport Layer 3-33

rdt21 người gửi quản lyacute caacutec ACKNAK bị hỏng

chờ 0 từ dưới

sndpkt = make_pkt(NAK chksum)udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp not corrupt(rcvpkt) ampamp has_seq0(rcvpkt)

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp has_seq1(rcvpkt)

extract(rcvpktdata)deliver_data(data)sndpkt = make_pkt(ACK chksum)udt_send(sndpkt)

chờ 1 từ dưới

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp has_seq0(rcvpkt)

extract(rcvpktdata)deliver_data(data)sndpkt = make_pkt(ACK chksum)udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp (corrupt(rcvpkt)

sndpkt = make_pkt(ACK chksum)udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp not corrupt(rcvpkt) ampamp has_seq1(rcvpkt)

rdt_rcv(rcvpkt) ampamp (corrupt(rcvpkt)

sndpkt = make_pkt(ACK chksum)udt_send(sndpkt)

sndpkt = make_pkt(NAK chksum)udt_send(sndpkt)

Transport Layer 3-34

rdt21 thảo luận

người gửi số thứ tự thecircm vagraveo

goacutei chỉ cần hai số thứ tự

(01) lagrave đủ Tại sao phải kiểm tra nếu việc

nhận ACKNAK bị hỏng

số trạng thaacutei tăng lecircn 2 lần trạng thaacutei phải ldquonhớrdquo

goacutei ldquohiện tạirdquo coacute số thứ tự lagrave 0 hay 1

người nhận phải kiểm tra coacute

nhận trugraveng goacutei khocircng trạng thaacutei chỉ rotilde coacute

hay khocircng mong chờ số thứ tự 0 hoặc 1

chuacute yacute người nhận khocircng biết ACKNAK vừa rồi của noacute coacute được người gửi nhận tốt hay khocircng

Transport Layer 3-35

rdt22 một giao thức khocircng cần NAK

chức năng giống như rdt21 chỉ dugraveng caacutec ACK thay cho NAK người nhận gửi ACK cho goacutei vừa

rồi đatilde nhận tốt người nhận phải rotilde ragraveng chegraven số thứ tự của goacutei vừa ACK

trugraveng ACK tại người gửi hậu quả giống như hagravenh động của NAK truyền lại goacutei vừa rồi

Transport Layer 3-36

rdt22 gửi nhận caacutec mảnh

Chờ cho gọi 0 từ

trecircn

sndpkt = make_pkt(0 data checksum)udt_send(sndpkt)

rdt_send(data)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) || isACK(rcvpkt1) )

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt0)

Chờ cho ACK

0

gửi phacircn mảnhFSM

Chờ cho gọi

0 từ dưới

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp has_seq1(rcvpkt)

extract(rcvpktdata)deliver_data(data)sndpkt = make_pkt(ACK1 chksum)udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp (corrupt(rcvpkt) || has_seq1(rcvpkt))

udt_send(sndpkt)

nhận phacircn mảnhFSM

Transport Layer 3-37

rdt30 caacutec kecircnh với lỗi vagrave mất maacutet

Giả định mới kecircnh ưu tiecircn cũng coacute thể lagravem mất caacutec goacutei (dữ liệu hoặc caacutec ACK) checksum số thứ tự

caacutec ACK caacutec việc truyền lại sẽ hỗ trợ nhưng khocircng đủ

Caacutech tiếp cận người gửi chờ ACK trong khoảng thời gian ldquochấp nhận đượcrdquo

truyền lại nếu khocircng nhận ACK trong khoảng thời gian nagravey

nếu goacutei (hoặc ACK) chỉ trễ (khocircng mất) truyền lại sẽ gacircy trugraveng

nhưng dugraveng số thứ tự sẽ giải quyết được

người nhận phải xaacutec định số thứ tự của goacutei vừa gửi ACK

cần bộ định thigrave đếm lugravei

Transport Layer 3-38

rdt30 gửi

sndpkt = make_pkt(0 data checksum)udt_send(sndpkt)start_timer

rdt_send(data)

Chờ cho

ACK 0

rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) ||isACK(rcvpkt1) )

Chờ cho gọi 1 từ trecircn

sndpkt = make_pkt(1 data checksum)udt_send(sndpkt)start_timer

rdt_send(data)

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt0)

rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) ||isACK(rcvpkt0) )

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt1)

stop_timerstop_timer

udt_send(sndpkt)start_timer

timeout

udt_send(sndpkt)start_timer

timeout

rdt_rcv(rcvpkt)

Chờ cho gọi 0 từ trecircn

Chờ cho

ACK 1

rdt_rcv(rcvpkt)

Transport Layer 3-39

hagravenh động của rdt30

Transport Layer 3-40

hagravenh động của rdt30

Transport Layer 3-41

Hiệu suất của rdt30

rdt30 lagravem việc được nhưng đaacutenh giaacute hiệu suất hơi rắc rối viacute dụ liecircn kết 1 Gbps trễ lan truyền giữa hai đầu cuối lagrave 15

ms goacutei 1KB

T truyền = 8kbpkt109 bsec

= 8 microsec

U sender độ khả dụng ndash

U sender

= 008

30008 = 000027

microseconds

L R

RTT + L R =

L (độ dagravei goacutei tiacutenh bằng bits)R (tốc độ truyền bps)

=

goacutei 1KB mỗi 30 msec -gt 33kBs trecircn đường truyền 1 Gbps giao thức network hạn chế việc dugraveng caacutec tagravei nguyecircn vật

lyacute

Transport Layer 3-42

rdt30 hoạt động dừng-vagrave-chờ

goacutei đầu tiecircn đatilde truyền t = 0

gửi nhận

RTT

goacutei cuối cugraveng đatilde truyền t = L R

goacutei đầu tiecircn đatilde đếngoacutei cuối cugraveng đatilde đến gửi ACK

ACK đến gửi goacutei kế tiếp t = RTT + L R

U sender

= 008

30008 = 000027

microseconds

L R

RTT + L R =

Transport Layer 3-43

Caacutec giao thức Pipelined

Pipelining người gửi cho pheacutep gửi nhiều goacutei đồng thời khocircng cần chờ baacuteo nhận được nhoacutem caacutec số thứ tự phải tăng dần phải coacute bộ nhớ đệm tại nơi gửi vagravehoặc nơi nhận

hai dạng phổ biến của caacutec giao thức pipelined go-Back-N Lặp coacute lựa chọn

Transport Layer 3-44

Pipelining độ khả dụng tăng

goacutei đầu tiecircn đatilde truyền t = 0

sender receiver

RTT

goacutei cuối cugraveng đatilde truyền t = L R

goacutei đầu tiecircn đatilde đếngoacutei cuối cugraveng đatilde đến gửi ACK

ACK đến gửi goacuteikế tiếp t = RTT + L R

bit cuối của goacutei thứ 2 đến gửi ACKbit cuối của goacutei thứ 3 đến gửi ACK

U sender

= 024

30008 = 00008

microseconds

3 L R

RTT + L R =

Độ khả dụng tăng lecircngấp 3 lần

Transport Layer 3-45

Go-Back-NBecircn gửi k-bit số thứ tự trong header của goacutei ldquocửa sổrdquo tăng lecircn đến N cho pheacutep gửi caacutec goacutei liecircn tục khocircng cần ACK

ACK(n) ACKs tất cả caacutec goacutei đến chứa số thứ tự n ndash ldquoACK tiacutech lũyrdquo coacute thể nhận caacutec ACK trugraveng lặp (xem becircn nhận)

định thigrave cho mỗi goacutei trecircn đường truyền timeout(n) gửi lại goacutei n vagrave tất cả caacutec goacutei coacute số thứ tự cao

hơn trong cửa sổ

Transport Layer 3-46

GBN becircn gửi mở rộng FSM

chờ start_timerudt_send(sndpkt[base])udt_send(sndpkt[base+1])hellipudt_send(sndpkt[nextseqnum-1])

timeout

rdt_send(data)

if (nextseqnum lt base+N) sndpkt[nextseqnum] = make_pkt(nextseqnumdatachksum) udt_send(sndpkt[nextseqnum]) if (base == nextseqnum) start_timer nextseqnum++ else refuse_data(data)

base = getacknum(rcvpkt)+1If (base == nextseqnum) stop_timer else start_timer

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)

base=1nextseqnum=1

rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)

Transport Layer 3-47

GBN becircn nhận mở rộng FSM

ACK-duy nhất luocircn luocircn gửi ACK cho goacutei đatilde nhận đuacuteng với số thứ tự xếp hạng cao nhất coacute thể sinh ra caacutec ACK trugraveng nhau chỉ cần nhớ expectedseqnum

goacutei khocircng theo thứ tự hủy -gt khocircng nhận vagraveo bộ đệm gửi lại ACK với số thứ tự xếp hạng cao nhất

chờ

udt_send(sndpkt)

default

rdt_rcv(rcvpkt) ampamp notcurrupt(rcvpkt) ampamp hasseqnum(rcvpktexpectedseqnum)

extract(rcvpktdata)deliver_data(data)sndpkt = make_pkt(expectedseqnumACKchksum)udt_send(sndpkt)expectedseqnum++

expectedseqnum=1sndpkt = make_pkt(expectedseqnumACKchksum)

Transport Layer 3-48

GBN hoạt động

Transport Layer 3-49

Lặp coacute lựa chọn

becircn nhận thocircng baacuteo đatilde nhận đuacuteng tất cả từng goacutei một đệm (buffer) caacutec goacutei nếu cần thiết

becircn gửi chỉ gửi lại caacutec goacutei nagraveo khocircng nhận được ACK becircn gửi định thigrave đối với mỗi goacutei khocircng gửi ACK

cửa sổ becircn gửi N số thứ tự liecircn tục hạn chế số thứ tự caacutec goacutei khocircng gửi ACK

Transport Layer 3-50

Lặp coacute lựa chọn caacutec cửa sổ gửi nhận

Transport Layer 3-51

Lặp coacute lựa chọn

dữ liệu từ lớp trecircn nếu số thứ tự kế tiếp sẵn

sagraveng trong cửa sổ gửi goacutei

timeout(n) gửi lại goacutei n taacutei khởi tạo

bộ định thigrave

ACK(n) trong [sendbasesendbase+N]

đaacutenh dấu goacutei n lagrave đatilde nhận nếu goacutei khocircng ACK coacute n

nhỏ nhất dịch chuyển cửa sổ base đến số thứ tự khocircng ACK kế tiếp

Gửigoacutei n trong [rcvbase

rcvbase+N-1]

gửi ACK(n) khocircng thứ tự đệm

(buffer) coacute thứ tự truyền (cũng

truyền caacutec goacutei đatilde đệm coacute thứ tự) dịch chuyển cửa sổ đến goacutei chưa nhận kế tiếp

goacutei n trong [rcvbase-Nrcvbase-1]

ACK(n)

ngược lại lờ đi

Nhận

Transport Layer 3-52

Hoạt động của lặp coacute lựa chọn

Transport Layer 3-53

Lặp coacute lựa chọntigravenh trạng khoacute giải quyếtViacute dụ Số thứ tự 0 1 2 3 Kiacutech thước cửa sổ = 3

becircn nhận khocircng thấy sự khaacutec nhau trong 2 tigravenh huống

chuyển khocircng chiacutenh xaacutec dữ liệu trugraveng lặp như dữ liệu mới trong (a)

Hỏi quan hệ giữa datildey số thứ tự vagrave kiacutech thước cửa sổ

Transport Layer 3-54

Chương 3 Nội dung trigravenh bagravey

31 Caacutec dịch vụ lớp Transport

32 Multiplexing vagrave demultiplexing

33 Vận chuyển khocircng kết nối UDP

34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy

35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối

36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn

37 Điều khiển tắc nghẽn TCP

Transport Layer 3-55

TCP Tổng quan RFCs 793 1122 1323 2018 2581

dữ liệu full duplex luồng dữ liệu đi 2 chiều

trong cugraveng một kết nối MSS maximum

segment size ndash kiacutech thước đoạn tối đa

hướng kết nối bắt tay (trao đổi caacutec

thocircng điệp điều khiển) trạng thaacutei becircn gửi becircn nhận trước khi trao đổi dữ liệu

điều khiển luồng becircn gửi sẽ khocircng lấn aacutet

becircn nhận

point-to-point một becircn gửi một becircn

nhận tin cậy dograveng byte coacute

thứ tự khocircng ldquoranh giới thocircng

điệprdquo kecircnh liecircn lạc

TCP điều khiển luồng vagrave tắc nghẽn thiết lập kiacutech thước cửa sổ

caacutec bộ đệm gửi amp nhận

socketdoor

T C Psend buffer

T C Preceive buffer

socketdoor

segm ent

applicationwrites data

applicationreads data

Transport Layer 3-56

TCP cấu truacutec đoạn

port nguồn port điacutech

32 bits

dữ liệu ứng dụng(độ dagravei thay đổi)

số thứ tự

số ACKcửa sổ nhận

con trỏ URGchecksum

FSRPAUheadlen

notused

Tugravey chọn (độ dagravei thay đổi)

URG dữ liệu khẩn cấp(thường khocircng dugraveng)

ACK ACK hợp lệ

PSH push data now(thường khocircng dugraveng)

RST SYN FINthiết lập kết nối

(caacutec lệnh thiết lậpchia nhỏ)

số byte becircn nhận sẵn sagraveng chấp nhận

đếm bởi số bytecủa dữ liệu

Internetchecksum

(giống UDP)

Transport Layer 3-57

Caacutec số thứ tự TCP vagrave ACKCaacutec số thứ tự

dograveng byte ldquođaacutenh sốrdquo byte đầu tiecircn trong dữ liệu của đoạn

caacutec ACK số thứ tự của byte

kế tiếp được chờ đợi từ phiacutea becircn kia

ACK tiacutech lũyHỏi lagravem thế nagraveo becircn

nhận quản lyacute caacutec đoạn khocircng thứ tự Trả lời TCP khocircng

đề cập tugravey thuộc người hiện thực

Host A Host B

Seq=42 ACK=79 data = lsquoCrsquo

Seq=79 ACK=43 data = lsquoCrsquo

Seq=43 ACK=80

UsernhậplsquoCrsquo

host ACKsnhận phản hồi

lsquoCrsquo

host ACKsbaacuteo nhận

lsquoCrsquo phản hồingược lại lsquoCrsquo

timetigravenh huống telnet đơn giản

Transport Layer 3-58

TCP Round Trip Time vagraveTimeout

Hỏi Lagravem thế nagraveo để thiết lập giaacute trị TCP timeout

dagravei hơn RTT khaacutec với RTT

quaacute ngắn timeout sớm truyền lại khocircng

cần thiết quaacute dagravei phản ứng

chậm đối với việc mất maacutet goacutei

Hỏi Lagravem thế nagraveo để thiết lập RTT

SampleRTT thời gian được đo từ khi truyền đoạn đến khi baacuteo nhận ACK lờ đi việc truyền lại

SampleRTT sẽ thay đổi muốn ước lượng RTT ldquomượt hơnrdquo tiacutenh trung bigravenh một số giaacute

trị đo được gần đoacute khocircng chỉ SampleRTT hiện tại

Transport Layer 3-59

TCP Round Trip Time vagrave Timeout

EstimatedRTT = (1- )EstimatedRTT + SampleRTT

giaacute trị đặc trưng = 0125

Transport Layer 3-60

Viacute dụ đaacutenh giaacute RTTRTT gaiacsumassedu to fantasiaeurecomfr

100

150

200

250

300

350

1 8 15 22 29 36 43 50 57 64 71 78 85 92 99 106

time (seconnds)

RTT

(mill

isec

onds

)

SampleRTT Estimated RTT

Transport Layer 3-61

TCP Round Trip Time vagrave Timeout

Thiết lập timeout EstimtedRTT cộng ldquohệ số dự trữ an toagravenrdquo

sự biến thiecircn lớn trong EstimatedRTT -gt hệ số dự trữ an toagraven lớn hơn ước lượng đầu tiecircn về sự biến thiecircn của SampleRTT từ EstimatedRTT

TimeoutInterval = EstimatedRTT + 4DevRTT

DevRTT = (1-)DevRTT + |SampleRTT-EstimatedRTT|

(tiecircu biểu = 025)

Sau đoacute thiết lập timeout interval

Transport Layer 3-62

TCP truyền dữ liệu tin cậy

TCP tạo dịch vụ rdt trecircn dịch vụ khocircng tin cậy IP

caacutec đoạn Pipelined caacutec ACK tiacutech lũy TCP dugraveng bộ định thigrave

truyền lại đơn

Truyền lại được kiacutech hoạt bởi caacutec sự kiện timeout caacutec ack trugraveng lặp

luacutec đầu khảo saacutet caacutec becircn gửi TCP đơn giản lờ đi caacutec ack trugraveng lặp lờ đi điều khiển luồng

điều khiển tắc nghẽn

Transport Layer 3-63

TCP caacutec sự kiệndữ liệu đatilde nhận từ ứng

dụng tạo đoạn với số thứ

tự của noacute số thứ tự lagrave số theo

byte dữ liệu đầu tiecircn khởi động bộ định thigrave

nếu chưa chạy khoảng thời gian hết

hạn TimeOutInterval

timeout gửi lại đoạn nagraveo gacircy

ra timeout khởi động lại bộ định

thigrave Ack đatilde nhận

cập nhật caacutei gigrave sẽ được ACK

khởi động bộ định thigrave nếu coacute caacutec đoạn cograven chờ

Transport Layer 3-64

TCP becircn gửi(đơn giản)

NextSeqNum = InitialSeqNum SendBase = InitialSeqNum

loop (forever) switch(event)

event data received from application above create TCP segment with sequence number NextSeqNum if (timer currently not running) start timer pass segment to IP NextSeqNum = NextSeqNum + length(data)

event timer timeout retransmit not-yet-acknowledged segment with smallest sequence number start timer

event ACK received with ACK field value of y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer

end of loop forever

Chuacute thiacutechbull SendBase-1 byte vừa được ACK tiacutech lũy Viacute dụbull SendBase-1 = 71y= 73 vigrave thế becircn nhận muốn 73+ y gt SendBase vigrave thế dữ liệu mới được chấp nhận

Transport Layer 3-65

TCP caacutec tigravenh huống truyền lại

Host A

Seq=100 20 bytes data

ACK=100

timetimeout sớm

Host B

Seq=92 8 bytes data

ACK=120

Seq=92 8 bytes data

Seq=

92

tim

eout

ACK=120

Host A

Seq=92 8 bytes data

ACK=100

loss

tim

eout

tigravenh huống mất ACK

Host B

X

Seq=92 8 bytes data

ACK=100

time

Seq=

92

tim

eout

SendBase= 100

SendBase= 120

SendBase= 120

Sendbase= 100

Transport Layer 3-66

TCP caacutec tigravenh huống truyền lại (tt)Host A

Seq=92 8 bytes data

ACK=100

loss

tim

eout

Cumulative ACK scenario

Host B

X

Seq=100 20 bytes data

ACK=120

time

SendBase= 120

Transport Layer 3-67

TCP sinh ra ACK [RFC 1122 RFC 2581]

Sự kiện tại becircn nhận

Đoạn đến với đuacuteng số thứ tự mong muốn Tất cả dữ liệu đếnđatilde được ACK

Đoạn đến với đuacuteng số thứ tự mong muốn Một đoạn khaacutec đangchờ ACK

Caacutec đoạn đến khocircng thứ tựlớn hơn số thứ tự đoạn mong muốnCoacute khoảng trống

Đoạn đếnlấp đầy từng phần hoặc toagraven bộkhoảng trống

TCP becircn nhận hagravenh động

ACK trễ Chờ đến 500mscho đoạn kế tiếp Nếu khocircng coacute đoạnkế tiếp gửi ACK

Gửi ngay một ACK tiacutech lũy chấp nhậncho cả caacutec đoạn theo thứ tự

Gửi ngay ACK trugraveng lặp chỉ thị số thứ tựđoạn của byte kế tiếp đang mong chờ

Gửi ngay ACK với điều kiện lagrave đoạnbắt đầu ngay điểm coacute khoảng trống

Transport Layer 3-68

Truyền lại nhanh

Chu kỳ Time-out thường tương đối dagravei độ trễ dagravei trước khi gửi

lại goacutei đatilde mất

Xaacutec nhận caacutec đoạn đatilde mất bằng caacutec ACK trugraveng lặp becircn gửi thường gửi

nhiều đoạn song song Nếu đoạn bị mất sẽ

xảy ra tigravenh trạng giống như nhiều ACK trugraveng nhau

Nếu becircn gửi nhận 3 ACK của cugraveng một dữ liệu noacute cho lagrave đoạn sau dữ liệu đatilde ACK bị mất Truyền lại nhanh gửi

lại đoạn trước khi bộ định thigrave hết hạn

Transport Layer 3-69

sự kiện ACK đatilde nhận với trường lagrave y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer else increment count of dup ACKs received for y if (count of dup ACKs received for y = 3) resend segment with sequence number y

Giải thuật truyền lại nhanh

một ACK trugraveng lặp cho đoạn đatilde được ACK

Truyền lại nhanh

Transport Layer 3-70

Chương 3 Nội dung trigravenh bagravey

31 Caacutec dịch vụ lớp Transport

32 Multiplexing vagrave demultiplexing

33 Vận chuyển khocircng kết nối UDP

34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy

35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối

36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn

37 Điều khiển tắc nghẽn TCP

Transport Layer 3-71

TCP điều khiển luồng

becircn nhận của kết nối TCP coacute một bộ đệm nhận

dịch vụ so trugraveng tốc độ so trugraveng tốc độ gửi với tốc độ nhận của ứng dụng

tiến trigravenh ứng dụng coacute thể chậm tại luacutec đọc bộ đệm

becircn gửi sẽ khocircng lagravem tragraven bộ đệm vigrave truyền quaacute nhiều vagrave

quaacute nhanh

điều khiển luồng

Transport Layer 3-72

TCP điều khiển luồng caacutech lagravem

(Giả sử becircn nhận TCP loại bỏ caacutec đoạn khocircng coacute thứ tự)

dự phograveng trong bộ đệm= RcvWindow

= RcvBuffer-[LastByteRcvd - LastByteRead]

Becircn nhận thocircng baacuteo khoảng dự trữ nhờ giaacute trị RcvWindow trong caacutec đoạn

Becircn gửi hạn chế dữ liệu khocircng được ACK vagraveo RcvWindow bảo đảm bộ đệm nhận

khocircng tragraven

Transport Layer 3-73

Chương 3 Nội dung trigravenh bagravey

31 Caacutec dịch vụ lớp Transport

32 Multiplexing vagrave demultiplexing

33 Vận chuyển khocircng kết nối UDP

34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy

35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối

36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn

37 Điều khiển tắc nghẽn TCP

Transport Layer 3-74

TCP quản lyacute kết nối

Chuacute yacute Becircn gửi vagrave becircn nhận TCP thiết lập ldquokết nốirdquo trước khi trao đổi dữ liệu

khởi tạo caacutec biến TCP caacutec số thứ tự đoạn thocircng tin caacutec bộ đệm điều

khiển luồng (như RcvWindow)

client người khởi xướng kết nối

Socket clientSocket = new Socket(hostnameport

number) server được tiếp xuacutec bởi

client Socket connectionSocket =

welcomeSocketaccept()

3 phương phaacutep bắt tay

Bước 1 client host gửi đoạnTCP SYN đến server xaacutec định số thứ tự khởi đầu khocircng phải dữ liệu

Bước 2 server host nhận SYN trả lời với đoạn SYNACK

server cấp phaacutet caacutec bộ đệm

xaacutec định số thứ tự khởi đầuBước 3 client nhận SYNACK trả

lời với đoạn ACK (coacute thể chứa dữ liệu)

Transport Layer 3-75

TCP quản lyacute kết nối (tt)

Đoacuteng một kết nối

client đoacuteng socket clientSocketclose()

Bước 1 client gửi đoạn điều khiển TCP FIN đến server

Bước 2 server nhận FIN trả lời với ACK Đoacuteng kết nối gửi FIN

client

FIN

server

ACK

ACK

FIN

đoacuteng

đoacuteng

đatilde đoacutengthời g

ian c

hờ

Transport Layer 3-76

TCP quản lyacute kết nối (tt)

Bước 3 client nhận FIN trả lời với ACK

Trong khoảng ldquothời gian chờrdquo ndash sẽ phản hồi với ACK để nhận caacutec FIN

Bước 4 server nhận ACK Kết nối đatilde đoacuteng

Chuacute yacute với một sửa đổi nhỏ coacute thể quản lyacute nhiều FIN đồng thời

client

FIN

server

ACK

ACK

FIN

đang đoacuteng

đang đoacuteng

đatilde đoacuteng

thời g

ian c

hờ

đatilde đoacuteng

Transport Layer 3-77

TCP quản lyacute kết nối (tt)

chu kỳ sống củaTCP client

chu kỳ sống củaTCP server

Transport Layer 3-78

Chương 3 Nội dung trigravenh bagravey

31 Caacutec dịch vụ lớp Transport

32 Multiplexing vagrave demultiplexing

33 Vận chuyển khocircng kết nối UDP

34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy

35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối

36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn

37 Điều khiển tắc nghẽn TCP

Transport Layer 3-79

Caacutec nguyecircn lyacute điều khiển tắc nghẽn

Tắc nghẽn ldquoquaacute nhiều nguồn gửi quaacute nhanh vagrave quaacute nhiều

dữ liệu đến mạngrdquo khaacutec với điều khiển luồng caacutec biểu hiện

caacutec goacutei bị mất (tragraven bộ đệm tại caacutec router) caacutec độ trễ quaacute dagravei (xếp hagraveng trong bộ đệm

của router) lagrave 1 trong 10 vấn đề nan giải nhất

Transport Layer 3-80

Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 1

2 gửi 2 nhận 1 router caacutec bộ

đệm khocircng giới hạn

khocircng coacute truyền lại

caacutec độ trễ lớn hơn khi tắc nghẽn

năng suất coacute thể đạt tối đa

unlimited shared output link buffers

Host Ain original data

Host B

out

Transport Layer 3-81

Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 2

1 router caacutec bộ đệm coacute giới hạn becircn gửi truyền lại caacutec goacutei đatilde mất

chia sẻ vocirc hạncaacutec bộ đệm ouput

Host A in dữ liệu gốc

Host B

out

in dữ liệu gốc cugraveng với dữ liệu truyền lại

Transport Layer 3-82

Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 2 luocircn luocircn

truyền lại ldquohoagraven toagravenrdquo chỉ khi mất maacutet

truyền lại vigrave trễ (khocircng mất) lagravem cho lớn hơn với cugraveng

in

out

=

in

out

gt

in

out

ldquocaacutec chi phiacuterdquo của tắc nghẽn nhiều việc (truyền lại) caacutec truyền lại khocircng cần thiết liecircn kết nhiều bản sao của

goacutei

R2

R2in

ou

t

b

R2

R2in

ou

t

a

R2

R2in

ou

t

c

R4

R3

Transport Layer 3-83

Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 3 4 người gửi caacutec đường qua nhiều hop timeouttruyền lại

in

Hỏi điều gigrave xảy ra nếu vagrave tăng lecircn

in

chia sẻ vocirc hạncaacutec bộ đệm ouput

Host Ain dữ liệu gốc

Host B

out

in dữ liệu gốc cugraveng với dữ liệu truyền lại

Transport Layer 3-84

Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 3

ldquochi phiacuterdquo khaacutec của tắc nghẽn khi caacutec goacutei bị bỏ bất kỳ ldquokhả năng truyền

upstream dugraveng cho goacutei đoacute sẽ bị latildeng phiacuterdquo

Host A

Host B

o

u

t

Transport Layer 3-85

Caacutec caacutech tiếp cận đối với điều khiển tắc nghẽn

điều khiển tắc nghẽn end-end

khocircng coacute phản hồi rotilde ragraveng từ mạng

tắc nghẽn được suy ra từ việc quan saacutet caacutec hệ thống đầu cuối coacute mất maacutet trễ

tiếp cận được quản lyacute bởi TCP

điều khiển tắc nghẽn coacute sự hỗ trợ của mạng

caacutec router cung cấp phản hồi về caacutec hệ thống đầu cuối 1 bit duy nhất chỉ thị

tắc nghẽn (SNA DECbit TCPIP ECN ATM)

tốc độ sẽ gửi được xaacutec định rotilde ragraveng

2 caacutech

Transport Layer 3-86

Viacute dụ điều khiển tắc nghẽn ATM ABR

ABR tốc độ bit sẵn sagraveng

ldquodịch vụ mềm dẻordquo nếu đường gửi ldquochưa

hếtrdquo becircn gửi sẽ dugraveng

băng thocircng sẵn sagraveng nếu đường gửi tắc

nghẽn becircn gửi điều tiết với

tốc độ tối thiểu

RM (resource management)

gửi bởi becircn gửi rải raacutec với caacutec ocirc dữ liệu

caacutec bit trong ocirc thiết lập bởi caacutec switch bit NI khocircng tăng tốc độ

(tắc nghẽn nhẹ) bit CI tắc nghẽn rotilde rệt

Caacutec ocirc RM được trả về becircn gửi từ becircn nhận với nguyecircn vẹn caacutec bit

Transport Layer 3-87

Viacute dụ điều khiển tắc nghẽn ATM ABR

trường 2-byte ER trong ocirc RM switch đatilde tắc nghẽn coacute thể coacute giaacute trị ER thấp hơn trong ocirc tốc độ gửi do đoacute coacute thể được hỗ trợ tối đa trecircn đường

EFCI bit trong caacutec ocirc dữ liệu được cagravei giaacute trị 1 trong switch đatilde tắc nghẽn nếu ocirc dữ liệu đứng trước ocirc RM coacute cagravei EFCI becircn gửi sẽ cagravei

bit CI trong ocirc RM trả về

Transport Layer 3-88

Chương 3 Nội dung trigravenh bagravey

31 Caacutec dịch vụ lớp Transport

32 Multiplexing vagrave demultiplexing

33 Vận chuyển khocircng kết nối UDP

34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy

35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối

36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn

37 Điều khiển tắc nghẽn TCP

Transport Layer 3-89

TCP điều khiển tắc nghẽn additive tăng lecircn multiplicative giảm xuống

8 Kbytes

16 Kbytes

24 Kbytes

time

congestionwindow

Caacutech tiếp cận tăng tốc độ truyền (kiacutech thước cửa sổ) tigravem khả năng băng thocircng coacute thể cho đến khi coacute mất maacutet xảy ra additive tăng lecircn tăng CongWin bởi 1 MSS

mỗi RTT cho đến khi coacute mất maacutet xảy ra multiplicative giảm xuống bỏ CongWin trong

nửa giai đoạn sau khi mất maacutet

timekiacutech

thư

ớc

cửa

sổ

tắc

nghẽ

n

Tigravem kiếm băng thocircng

Transport Layer 3-90

TCP điều khiển tắc nghẽn chi tiết

becircn gửi hạn chế việc truyền LastByteSent-LastByteAcked

CongWin Cocircng thức

CongWin thay đổi chức năng lagrave nhận biết tắc nghẽn trecircn mạng

Lagravem thế nagraveo becircn gửi nhận biết tắc nghẽn

mất maacutet xảy ra = timeout hoặc 3 ack trugraveng lặp

becircn gửi giảm tốc độ (CongWin) sau khi mất maacutet xảy ra

3 cơ chế AIMD khởi động chậm thận trọng sau khi coacute

caacutec sự kiện timeout

tốc độ = CongWin

RTT Bytess

Transport Layer 3-91

TCP khởi động chậm

Khi kết nối bắt đầu CongWin = 1 MSS Viacute dụ MSS = 500 bytes

amp RTT = 200 ms tốc độ khởi tạo = 20

kbps

băng thocircng sẵn sagraveng coacute thể gtgt MSSRTT mong muốn nhanh

choacuteng tăng tốc lecircn tốc độ coacute thể đaacutep ứng

Khi kết nối bắt đầu tăng tốc lecircn rất nhanh cho đến khi sự cố mất maacutet xảy ra đầu tiecircn

Transport Layer 3-92

TCP khởi động chậm (tt)

Khi kết nối bắt đầu tăng tốc lecircn rất nhanh cho đến khi sự cố mất maacutet xảy ra đầu tiecircn nhacircn đocirci CongWin mỗi

RTT hoagraven thagravenh nhờ tăng CongWin ứng với mỗi ACK đatilde nhận

Tổng kết tốc độ khởi đầu lagrave chậm nhưng sau đoacute tăng tốc rất nhanh

Host A

1 đoạn

RTT

Host B

thời gian

2 đoạn

4 đoạn

Transport Layer 3-93

Tinh chếHỏi Khi nagraveo việc tăng

tốc trở thagravenh tuyến tiacutenh

Trả lời Khi CongWin đạt đến 12 giaacute trị của noacute trước khi timeout

Hiện thực Ngưỡng thay đổi Tại thời điểm coacute sự cố

mất maacutet ngưỡng được cagravei giaacute trị bằng frac12 của CongWin ngay trước đoacute

Transport Layer 3-94

Tinh chế nhận biết mất maacutet

Sau 3 ACK trugraveng lặp CongWin sẽ giảm 12 kiacutech thước cửa sổ

tăng tuyến tiacutenh nhưng sau sự cố

timeout CongWin thay giaacute trị

bằng 1 MSS kiacutech thước cửa sổ

tăng cấp lũy thừa khi đến một ngưỡng

thigrave tăng tuyến tiacutenh

3 ACK trugraveng nhau chỉ ra khả năng truyền của mạng timeout chỉ thị ldquonhiều cảnh baacuteordquo về tigravenh huống tắc nghẽn

Nguyecircn lyacute

Transport Layer 3-95

Tổng kết TCP điều khiển tắc nghẽn

Khi CongWin dưới Threshold becircn gửi đang trong giai đoạn khởi động chậm kiacutech thước cửa sổ tăng nhanh theo cấp lũy thừa

Khi CongWin trecircn Threshold becircn gửi đang trong giai đoạn traacutenh tắc nghẽn kiacutech thước cửa sổ tăng nhanh theo cấp tuyến tiacutenh

Khi coacute 3 ACK trugraveng lặp xảy ra Threshold = CongWin2 vagrave CongWin = Threshold

Khi timeout xảy ra Threshold = CongWin2 vagrave CongWin = 1 MSS

Transport Layer 3-96

TCP điều khiển tắc nghẽn becircn gửi

Trạng thaacutei Sự kiện TCP becircn gửi hagravenh động Diễn giải

Slow Start (SS)-Khởi động chậm

ACK baacuteo nhận cho dữ liệu chưa ACK trước đoacute

CongWin = CongWin + MSS If (CongWin gt Threshold) cagravei đặt trạng thaacutei ldquoTraacutenh tắc nghẽnrdquo

Hậu quả lagravem tăng gấp đocirci CongWin mỗi RTT

CongestionAvoidance (CA) ndashTraacutenh tắc nghẽn

ACK baacuteo nhận cho dữ liệu chưa ACK trước đoacute

CongWin = CongWin+MSS (MSSCongWin)

Additive tăng lecircn lagravem tăng CongWin lecircn 1 MSS mỗi RTT

SS hoặc CA Sự cố mất maacutet xảy ra khi thấy coacute 3 ACK trugraveng lặp

Threshold = CongWin2 CongWin = Thresholdcagravei đặt trạng thaacutei ldquoTraacutenh tắc nghẽnrdquo

Khocirci phục nhanh hiện thực giảm xuống multiplicative CongWin sẽ khocircng giảm xuống dưới 1 MSS

SS hoặc CA Timeout Threshold = CongWin2 CongWin = 1 MSScagravei đặt trạng thaacutei ldquoKhởi động chậmrdquo

Vagraveo chế độ ldquoKhởi động chậmrdquo

SS hoặc CA ACK trugraveng lặp

Đếm ACK tăng lecircn cho đoạn vừa được ACK

CongWin vagrave Threshold khocircng thay đổi

Transport Layer 3-97

TCP throughput

Throughout trung bigravenh của TCP biểu diễn qua kiacutech thước của sổ vagrave RTT Bỏ qua trạng thaacutei ldquoKhởi động chậmrdquo

Cho W lagrave kiacutech thước cửa sổ khi coacute mất maacutet xảy ra

Khi kiacutech thước cửa sổ = W lưu lượng = WRTT

Chỉ ngay sau khi mất maacutet cửa sổ giảm xuống = W2 lưu lượng = W2RTT

throughout trung bigravenh 075 WRTT

Transport Layer 3-98

TCP tương lai

Viacute dụ caacutec đoạn dagravei 1500 byte RTT 100ms lưu lượng 10 Gbps

Kiacutech thước cửa sổ yecircu cầu W = 83333 đoạn trecircn đường truyền

Lưu lượng trong caacutec trường hợp mất maacutet

L = 210-10

Phiecircn bản mới của TCP dagravenh cho nhu cầu tốc độ cao

LRTT

MSS221

Transport Layer 3-99

Mục tiecircu nếu K phiecircn lagravem việc TCP chia sẻ kết nối cổ chai của băng thocircng lagrave R mỗi phiecircn coacute tốc độ trung bigravenh lagrave RK

TCP kết nối 1

router cổ chaikhả năng R

TCP kết nối 2

TCP tiacutenh cocircng bằng

Transport Layer 3-100

Tại sao phải TCP cocircng bằng

2 phiecircn lagravem việc cạnh tranh nhau Additive tăng lưu lượng tăng multiplicative giảm lưu lượng tương xứng

R

R

chia sẻ băng thocircng bằng nhau

Connection 1 throughputConnect

ion 2

th

roughput

traacutenh tắc nghẽn additive tăng lecircnmất maacutet giảm cửa sổ bằng 12

traacutenh tắc nghẽn additive tăng lecircnmất maacutet giảm cửa sổ bằng 12

Transport Layer 3-101

TCP tiacutenh cocircng bằng (tt)

Tiacutenh cocircng bằng amp UDP nhiều ứng dụng

thường khocircng dugraveng TCP khocircng muốn tốc độ bị

điều tiết do điều khiển tắc nghẽn

Thay bằng dugraveng UDP truyền audiovideo với

tốc độ ổn định chịu được mất maacutet

Nghiecircn cứu giao thức thacircn thiện với TCP

Tiacutenh cocircng bằng amp caacutec kết nối TCP song song

khocircng coacute gigrave ngăn cản việc ứng dụng mở caacutec kết nối song song giữa 2 host

Trigravenh duyệt Web lagravem giống như thế

Viacute dụ tốc độ R hỗ trợ 9 kết nối ứng dụng mới yecircu cầu 1

TCP coacute tốc độ R10 ứng dụng mới yecircu cầu 11

TCP coacute tốc độ R2

Transport Layer 3-102

Mocirc higravenh trễ

Hỏi Mất bao lacircu để nhận 1 đối tượng từ Web server sau khi gửi yecircu cầu

Bỏ qua tắc nghẽn trễ bị ảnh hưởng bởi

thiết lập kết nối TCP trễ truyền dữ liệu khởi động chậm

Notation caacutec giả định Giả sử một kết nối giữa

client vagrave server coacute tốc độ R

S MSS (bits) O kiacutech thước đối tượng

(bits) khocircng truyền lại (khocircng

mất maacutet khocircng hỏng)

Kiacutech thước cửa sổ Giả định 1 cửa sổ tắc

nghẽn cố định coacute W đoạn Sau đoacute cửa sổ thay đổi

mocirc higravenh khởi động chậm

Transport Layer 3-103

Cửa sổ tắc nghẽn cố định (1)

Trường hợp đầu tiecircnWSR gt RTT + SR cho

đoạn đầu tiecircn trong cửa sổ trả về trước khi cửa sổ dữ liệu gửi ACK

trễ = 2RTT + OR

Transport Layer 3-104

Cửa sổ tắc nghẽn cố định (2)

Trường hợp thứ hai WSR lt RTT + SR sent

chờ cho ACK sau khi gửi dữ liệu

trễ = 2RTT + OR+ (K-1)[SR + RTT - WSR]

Transport Layer 3-105

TCP Mocirc higravenh trễ Khởi động chậm (1)

Bacircy giờ giả sử kiacutech thước cửa sổ tăng lecircn tugravey theo quaacute trigravenh khởi động chậm

Độ trễ của một đối tượng sẽ lagrave

R

S

R

SRTTP

R

ORTTLatency P )12(2

trong đoacute P lagrave số lần TCP rảnh ở tại server

1min KQP

- trong đoacute Q lagrave số lần server rảnh nếu đối tượng đatilde khởi tạo kiacutech thước

- vagrave K lagrave số lượng cửa sổ bao trugravem đối tượng

Transport Layer 3-106

TCP Mocirc higravenh trễ Khởi động chậm (2)

RTT

initia te TCPconnection

requestobject

first w indow= S R

second w indow= 2S R

third w indow= 4S R

fourth w indow= 8S R

com pletetransm issionobject

delivered

tim e atc lient

tim e atserver

Viacute dụbull OS = 15 đoạnbull K = 4 cửa sổbull Q = 2bull P = minK-1Q = 2

Server rảnh P=2 lần

Caacutec thagravenh phần trễbull 2 RTT dagravenh cho thiết lập kết nối vagrave yecircu cầubull OR để truyền đối tượngbullthời gian server rảnh bởi vigrave khởi động chậm

Server rảnh P = minK-1Q lần

Transport Layer 3-107

TCP Mocirc higravenh trễ(3)

R

S

R

SRTTPRTT

R

O

R

SRTT

R

SRTT

R

O

idleTimeRTTR

O

P

kP

k

P

pp

)12(][2

]2[2

2delay

1

1

1

th window after the timeidle 2 1 kR

SRTT

R

S k

ementacknowledg receivesserver until

segment send tostartsserver when from time RTTR

S

window kth the transmit totime2 1

R

Sk

RTT

initia te TCPconnection

requestobject

first w indow= S R

second w indow= 2S R

third w indow= 4S R

fourth w indow= 8S R

com pletetransm issionobject

delivered

tim e atc lient

tim e atserver

Transport Layer 3-108

TCP Mocirc higravenh trễ (4)

)1(log

)1(logmin

12min

222min

222min

2

2

110

110

S

OS

Okk

S

Ok

SOk

OSSSkK

k

k

k

caacutech tiacutenh toaacuten Q tương tự (xem HW)

K = số lượng cửa sổ bao trugravem đối tượngLagravem thế nagraveo tiacutenh được K

Transport Layer 3-109

HTTP Mocirc higravenh Giả sử trang Web chứa

1 trang HTML (kiacutech thước O bits) M higravenh ảnh (mỗi caacutei kiacutech thướcO bits)

HTTP khocircng bền vững M+1 TCP kết nối Thời gian đaacutep ứng = (M+1)OR + (M+1)2RTT + tổng số thời

gian rảnh HTTP bền vững

2 RTT để yecircu cầu vagrave nhận file HTML 1 RTT để yecircu cầu vagrave nhận M higravenh ảnh Thời gian đaacutep ứng = (M+1)OR + 3RTT + tổng số thời gian

rảnh HTTP khocircng bền vững với X kết nối song song

Giả sử MX lagrave số nguyecircn 1 TCP kết nối cho file MX thiết lập caacutec kết nối song song cho caacutec higravenh ảnh Thời gian đaacutep ứng = (M+1)OR + (MX + 1)2RTT + tổng số

thời gian rảnh

Transport Layer 3-110

02468

101214161820

28Kbps

100Kbps

1Mbps

10Mbps

non-persistent

persistent

parallel non-persistent

HTTP thời gian đaacutep ứng (giacircy)RTT = 100 msec O = 5 Kbytes M=10 vagrave X=5

Với băng thocircng thấp thời gian kết nối amp đaacutep ứng trội hơn thời gian truyền

Caacutec kết nối bền vững chỉ cho sự cải thiện khocircng đaacuteng kể trecircn caacutec kết nối song song

Transport Layer 3-111

0

10

20

30

40

50

60

70

28Kbps

100Kbps

1Mbps

10Mbps

non-persistent

persistent

parallel non-persistent

HTTP thời gian đaacutep ứng (giacircy)

RTT =1 sec O = 5 Kbytes M=10 and X=5

Với RTT lớn hơn thời gian đaacutep ứng trội hơn thời gian trễ chờ thiết lập kết nốiTCP amp khởi động chậm Caacutec kết nối bền vững bacircy giờ cho thấy cải thiện rotilde rệt đặc biệtvới caacutec mạng băng thocircng cao

Transport Layer 3-112

Chương 3 Tổng kết caacutec nguyecircn lyacute của caacutec

dịch vụ lớp transport multiplexing

demultiplexing truyền dữ liệu tin cậy điều khiển luồng điều khiển tắc nghẽn

khởi tạo vagrave hiện thực trong Internet UDP TCP

Tiếp theo nghiecircn cứu xong

caacutec vấn đề ldquongoagravei biecircnrdquo (caacutec lớp application transport)

chuẩn bị vagraveo phần ldquolotildeirdquo của mạng

  • Slide 1
  • Chương 3 Lớp Transport
  • Chương 3 Nội dung trigravenh bagravey
  • Caacutec dịch vụ vagrave giao thức Transport
  • Lớp Transport với lớp network
  • Caacutec giao thức lớp transport trecircn Internet
  • Slide 7
  • Multiplexingdemultiplexing
  • Demultiplexing lagravem việc như thế nagraveo
  • Demultiplexing khocircng kết nối
  • Demultiplexing khocircng kết nối (tiếp)
  • Demultiplexing hướng kết nối
  • Demultiplexing hướng kết nối (tiếp)
  • Demultiplexing hướng kết nối Threaded Web Server
  • Slide 15
  • UDP User Datagram Protocol [RFC 768]
  • UDP (tt)
  • UDP checksum
  • Viacute dụ Checksum
  • Slide 20
  • Caacutec nguyecircn lyacute truyền dữ liệu tin cậy
  • Slide 22
  • Slide 23
  • Truyền dữ liệu tin cậy
  • Slide 25
  • Rdt10 truyền dữ liệu tin cậy trecircn 1 kecircnh truyền tin cậy
  • Rdt20 kecircnh với caacutec lỗi
  • rdt20 đặc tả FSM
  • rdt20 hoạt động khi khocircng lỗi
  • rdt20 hoạt động khi coacute lỗi
  • rdt20 coacute lỗ hổng nghiecircm trọng
  • rdt21 người gửi quản lyacute caacutec ACKNAK bị hỏng
  • Slide 33
  • rdt21 thảo luận
  • rdt22 một giao thức khocircng cần NAK
  • rdt22 gửi nhận caacutec mảnh
  • rdt30 caacutec kecircnh với lỗi vagrave mất maacutet
  • rdt30 gửi
  • hagravenh động của rdt30
  • Slide 40
  • Hiệu suất của rdt30
  • rdt30 hoạt động dừng-vagrave-chờ
  • Caacutec giao thức Pipelined
  • Pipelining độ khả dụng tăng
  • Go-Back-N
  • GBN becircn gửi mở rộng FSM
  • GBN becircn nhận mở rộng FSM
  • GBN hoạt động
  • Lặp coacute lựa chọn
  • Lặp coacute lựa chọn caacutec cửa sổ gửi nhận
  • Slide 51
  • Hoạt động của lặp coacute lựa chọn
  • Lặp coacute lựa chọn tigravenh trạng khoacute giải quyết
  • Slide 54
  • TCP Tổng quan RFCs 793 1122 1323 2018 2581
  • TCP cấu truacutec đoạn
  • Caacutec số thứ tự TCP vagrave ACK
  • TCP Round Trip Time vagraveTimeout
  • TCP Round Trip Time vagrave Timeout
  • Viacute dụ đaacutenh giaacute RTT
  • Slide 61
  • TCP truyền dữ liệu tin cậy
  • TCP caacutec sự kiện
  • TCP becircn gửi (đơn giản)
  • TCP caacutec tigravenh huống truyền lại
  • TCP caacutec tigravenh huống truyền lại (tt)
  • TCP sinh ra ACK [RFC 1122 RFC 2581]
  • Truyền lại nhanh
  • Giải thuật truyền lại nhanh
  • Slide 70
  • TCP điều khiển luồng
  • TCP điều khiển luồng caacutech lagravem
  • Slide 73
  • TCP quản lyacute kết nối
  • TCP quản lyacute kết nối (tt)
  • Slide 76
  • Slide 77
  • Slide 78
  • Caacutec nguyecircn lyacute điều khiển tắc nghẽn
  • Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 1
  • Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 2
  • Slide 82
  • Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 3
  • Slide 84
  • Caacutec caacutech tiếp cận đối với điều khiển tắc nghẽn
  • Viacute dụ điều khiển tắc nghẽn ATM ABR
  • Slide 87
  • Slide 88
  • TCP điều khiển tắc nghẽn additive tăng lecircn multiplicative giảm xuống
  • TCP điều khiển tắc nghẽn chi tiết
  • TCP khởi động chậm
  • TCP khởi động chậm (tt)
  • Tinh chế
  • Tinh chế nhận biết mất maacutet
  • Tổng kết TCP điều khiển tắc nghẽn
  • TCP điều khiển tắc nghẽn becircn gửi
  • TCP throughput
  • TCP tương lai
  • TCP tiacutenh cocircng bằng
  • Tại sao phải TCP cocircng bằng
  • TCP tiacutenh cocircng bằng (tt)
  • Mocirc higravenh trễ
  • Cửa sổ tắc nghẽn cố định (1)
  • Cửa sổ tắc nghẽn cố định (2)
  • TCP Mocirc higravenh trễ Khởi động chậm (1)
  • TCP Mocirc higravenh trễ Khởi động chậm (2)
  • TCP Mocirc higravenh trễ(3)
  • TCP Mocirc higravenh trễ (4)
  • HTTP Mocirc higravenh
  • Slide 110
  • Slide 111
  • Chương 3 Tổng kết

Transport Layer 3-9

Demultiplexing lagravem việc như thế nagraveo host nhận caacutec IP datagrams

mỗi datagram coacute địa chỉ IP nguồn vagrave IP điacutech

mỗi datagram mang 1 đoạn của lớp transport

mỗi đoạn coacute số port nguồn vagrave điacutech

host dugraveng địa chỉ IP amp số port để điều hướng đoạn đến socket thiacutech hợp

port nguồn port điacutech

32 bits

dữ liệu ứng dụng(thocircng điệp)

caacutec header fields khaacutec

dạng thức đoạn TCPUDP

Transport Layer 3-10

Demultiplexing khocircng kết nối

Tạo caacutec sockets với caacutec số port

DatagramSocket mySocket1 = new DatagramSocket(12534)

DatagramSocket mySocket2 = new DatagramSocket(12535)

UDP socket được xaacutec định bởi bộ 2

(địa chỉ IP số port điacutech)

Khi host nhận đoạn UDP kiểm tra port điacutech trong

đoạn điều hướng đoạn UDP

đến socket nagraveo phugrave hợp với số port đoacute

IP datagrams với địa chỉ IP nguồn vagravehoặc số port khaacutec nhau coacute thể được điều hướng đến cugraveng socket

Transport Layer 3-11

Demultiplexing khocircng kết nối (tiếp)

DatagramSocket serverSocket = new DatagramSocket(6428)

ClientIPB

P2

client IP A

P1P1P3

serverIP C

SP 6428

DP 9157

SP 9157

DP 6428

SP 6428

DP 5775

SP 5775

DP 6428

SP cung cấp ldquođịa chỉ trở vềrdquo

Transport Layer 3-12

Demultiplexing hướng kết nối

TCP socket được xaacutec định bởi bộ 4 địa chỉ IP nguồn số port nguồn địa chỉ IP điacutech số port điacutech

host nhận dugraveng cả 4 giaacute trị trecircn để điều hướng đoạn đến socket thiacutech hợp

Host server coacute thể hỗ trợ nhiều TCP socket đồng thời mỗi socket được xaacutec

định bởi bộ 4 của noacute

Web server coacute caacutec socket khaacutec nhau cho mỗi kết nối từ client kết nối HTTP khocircng bền

vững sẽ coacute socket khaacutec nhau cho mỗi yecircu cầu

Transport Layer 3-13

Demultiplexing hướng kết nối (tiếp)

ClientIPB

P1

client IP A

P1P2P4

serverIP C

SP 9157

DP 80

SP 9157

DP 80

P5 P6 P3

D-IPCS-IP A

D-IPC

S-IP B

SP 5775

DP 80

D-IPCS-IP B

Transport Layer 3-14

Demultiplexing hướng kết nối Threaded Web Server

ClientIPB

P1

client IP A

P1P2

serverIP C

SP 9157

DP 80

SP 9157

DP 80

P4 P3

D-IPCS-IP A

D-IPC

S-IP B

SP 5775

DP 80

D-IPCS-IP B

Transport Layer 3-15

Chương 3 Nội dung trigravenh bagravey

31 Caacutec dịch vụ lớp Transport

32 Multiplexing vagrave demultiplexing

33 Vận chuyển khocircng kết nối UDP

34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy

35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối

36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn

37 Điều khiển tắc nghẽn TCP

Transport Layer 3-16

UDP User Datagram Protocol [RFC 768]

giao thức Internet transport ldquođơn giản hoacuteardquo

dịch vụ ldquobest effortrdquo caacutec đoạn UDP coacute thể mất maacutet vận chuyển khocircng thứ

tự đến ứng dụng connectionless (khocircng

kết nối) khocircng bắt tay giữa

người nhận vagrave người gửi UDP

mỗi đoạn UDP được quản lyacute độc lập

Coacute UDP để lagravem gigrave khocircng thiết lập kết nối

(giuacutep coacute thể thecircm delay) đơn giản khocircng trạng

thaacutei kết nối tại nơi gửi nơi nhận

header của đoạn nhỏ khocircng điều khiển tắc

nghẽn UDP coacute thể gửi nhanh nhất theo mong muốn

Transport Layer 3-17

UDP (tt)

thường dugraveng cho caacutec ứng dụng streaming multimedia chịu mất maacutet cảm nhận tốc độ

ngoagravei ra UDP dugraveng DNS SNMP

truyền tin cậy trecircn UDP thecircm khả năng nagravey tại lớp application sửa lỗi

source port dest port

32 bits

dữ liệu ứng dụng

(thocircng điệp)

dạng thức đoạn UDP

length checksumĐộ dagravei

đoạn UDPbao gồm cả

header

Transport Layer 3-18

UDP checksum

Người gửi đối xử caacutec nội dung

đoạn như một chuỗi caacutec số nguyecircn 16-bit

checksum bổ sung(tổng bugrave 1) của caacutec nội dung đoạn

đặt giaacute trị checksum vagraveo trường UDP checksum

Người nhận tiacutenh toaacuten checksum của

đoạn đatilde nhận kiểm tra giaacute trị trecircn coacute bằng

với giaacute trị trong trường checksum NO ndash coacute lỗi xảy ra YES ndash khocircng coacute lỗi Nhưng coacute thể cograven lỗi

khaacutec nữa Xem tiếp phần sau hellip

Mục tiecircu kiểm tra caacutec ldquolỗirdquo (caacutec bit cờ đatilde bật lecircn) trong caacutec đoạn đatilde truyền

Transport Layer 3-19

Viacute dụ Checksum Lưu yacute

Khi cộng caacutec số một bit nhớ ở phiacutea cao nhất coacute thể sẽ phải thecircm vagraveo kết quả

Viacute dụ cộng hai số nguyecircn 16-bit

1 1 1 1 0 0 1 1 0 0 1 1 0 0 1 1 01 1 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1

1 1 0 1 1 1 0 1 1 1 0 1 1 1 0 1 1

1 1 0 1 1 1 0 1 1 1 0 1 1 1 1 0 01 0 1 0 0 0 1 0 0 0 1 0 0 0 0 1 1

bit dư

tổngchecksum

Transport Layer 3-20

Chương 3 Nội dung trigravenh bagravey

31 Caacutec dịch vụ lớp Transport

32 Multiplexing vagrave demultiplexing

33 Vận chuyển khocircng kết nối UDP

34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy

35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối

36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn

37 Điều khiển tắc nghẽn TCP

Transport Layer 3-21

Caacutec nguyecircn lyacute truyền dữ liệu tin cậy quan trọng trong caacutec lớp application transport link lagrave danh saacutech 10 vấn đề quan trọng nhất của mạng

caacutec đặc thugrave của kecircnh truyền khocircng tin cậy sẽ xaacutec định sự phức tạp của giao thức truyền dữ liệu data transfer protocol (rdt)

Transport Layer 3-22

Caacutec nguyecircn lyacute truyền dữ liệu tin cậy quan trọng trong caacutec lớp application transport link lagrave danh saacutech 10 vấn đề quan trọng nhất của mạng

caacutec đặc thugrave của kecircnh truyền khocircng tin cậy sẽ xaacutec định sự phức tạp của giao thức truyền dữ liệu data transfer protocol (rdt)

Transport Layer 3-23

Caacutec nguyecircn lyacute truyền dữ liệu tin cậy quan trọng trong caacutec lớp application transport link lagrave danh saacutech 10 vấn đề quan trọng nhất của mạng

caacutec đặc thugrave của kecircnh truyền khocircng tin cậy sẽ xaacutec định sự phức tạp của giao thức truyền dữ liệu data transfer protocol (rdt)

Transport Layer 3-24

Truyền dữ liệu tin cậy

sendside

receiveside

rdt_send() được gọi bởi lớp app Chuyển dữ liệu cần truyền

đến lớp cao hơn becircn nhận

udt_send() được gọi bởi rdt để truyền caacutec goacutei trecircn kecircnh khocircng tin cậy đến nơi

nhận

rdt_rcv() được gọi khi goacutei đến kecircnh becircn nhận

deliver_data() được gọi bởi rdt để truyền dữ liệu

đến lớp cao hơn

Transport Layer 3-25

Truyền dữ liệu tin cậy

Sẽ chỉ xem xeacutet truyền dữ liệu theo 1 hướng duy

nhất nhưng điều khiển luồng thocircng tin sẽ theo cả 2

chiều

dugraveng maacutey trạng thaacutei hữu hạn (finite state machines-FSM) để xaacutec định người gửi người nhận

trthaacutei1

trthaacutei2

sự kiện gacircy ra trạng thaacutei truyềncaacutec hagravenh động xảy ra khi truyền

trạng thaacutei khi ở ldquotrạng thaacuteirdquo nagravey thigrave

trạng thaacutei kế tiếp duy nhất được xaacutec định bởi sự kiện kế

tiếp

sự kiệncaacutec hagravenh động

Transport Layer 3-26

Rdt10 truyền dữ liệu tin cậy trecircn 1 kecircnh truyền tin cậy

kecircnh ưu tiecircn tin cậy hoagraven toagraven khocircng coacute caacutec lỗi khocircng mất maacutet caacutec goacutei

caacutec FSM phacircn biệt cho người gửi người nhận người gửi gửi dữ liệu vagraveo kecircnh ưu tiecircn người nhận nhận dữ liệu từ kecircnh ưu tiecircn

chờ gọi từ lớp trecircn packet = make_pkt(data)

udt_send(packet)

rdt_send(data)

extract (packetdata)deliver_data(data)

chờ gọi từ lớp dưới

rdt_rcv(packet)

người gửi người nhận

Transport Layer 3-27

Rdt20 kecircnh với caacutec lỗi

kecircnh ưu tiecircn coacute thể bật lecircn một số bit trong goacutei checksum để kiểm tra caacutec lỗi

Hỏi lagravem sao khocirci phục caacutec lỗi acknowledgements (ACKs) becircn nhận rotilde ragraveng thocircng

baacuteo cho becircn gửi rằng quaacute trigravenh nhận goacutei tốt negative acknowledgements (NAKs) becircn nhận rotilde ragraveng

thocircng baacuteo cho becircn gửi rằng quaacute trigravenh nhận goacutei coacute lỗi người gửi gửi lại goacutei nagraveo được xaacutec nhận lagrave NAK

caacutec cơ chế mới trong rdt20 (sau rdt10) kiểm tra lỗi nhận phản hồi caacutec thocircng điệp điều khiển (ACKNAK)

becircn nhận becircn gửi

Transport Layer 3-28

rdt20 đặc tả FSM

chờ gọi từ lớp trecircn

snkpkt = make_pkt(data checksum)udt_send(sndpkt)

extract(rcvpktdata)deliver_data(data)udt_send(ACK)

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)

rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp isNAK(rcvpkt)

udt_send(NAK)

rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)

chờ ACK hoặc NAK

chờ gọi từ lớp dưới

người gửi

người nhậnrdt_send(data)

Transport Layer 3-29

rdt20 hoạt động khi khocircng lỗi

chờ gọi từ lớp dưới

snkpkt = make_pkt(data checksum)udt_send(sndpkt)

extract(rcvpktdata)deliver_data(data)udt_send(ACK)

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)

rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp isNAK(rcvpkt)

udt_send(NAK)

rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)

chờ ACK hoặc NAK

chờ gọi từ lớp dưới

rdt_send(data)

Transport Layer 3-30

rdt20 hoạt động khi coacute lỗi

chờ gọi từ lớp dưới

snkpkt = make_pkt(data checksum)udt_send(sndpkt)

extract(rcvpktdata)deliver_data(data)udt_send(ACK)

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)

rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp isNAK(rcvpkt)

udt_send(NAK)

rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)

chờ ACK hoặc NAK

chờ gọi từ lớp dưới

rdt_send(data)

Transport Layer 3-31

rdt20 coacute lỗ hổng nghiecircm trọngĐiều gigrave xảy ra nếu

ACKNAK bị hỏng người gửi khocircng biết điều

gigrave đatilde xảy ra tại becircn nhận

khocircng thể đơn phương truyền lại khả năng trugraveng lặp

Quản lyacute trugraveng lặp người gửi truyền lại goacutei

hiện tại nếu ACKNAK bị hỏng

người gửi thecircm số thứ tự vagraveo mỗi goacutei

người nhận hủy (khocircng nhận) goacutei trugraveng lặp

Người gửi gửi 1 goacutei sau đoacute dừng lại chờ phản hồitừ người nhận

dừng vagrave chờ

Transport Layer 3-32

rdt21 người gửi quản lyacute caacutec ACKNAK bị hỏng

chờ gọi 0 từ lớp trecircn

sndpkt = make_pkt(0 data checksum)udt_send(sndpkt)

rdt_send(data)

chờ ACK hoặc NAK

0 udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) ||isNAK(rcvpkt) )

sndpkt = make_pkt(1 data checksum)udt_send(sndpkt)

rdt_send(data)

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) ||isNAK(rcvpkt) )

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt)

chờ gọi 1 từ lớp trecircn

chờ ACK hoặc NAK

1

Transport Layer 3-33

rdt21 người gửi quản lyacute caacutec ACKNAK bị hỏng

chờ 0 từ dưới

sndpkt = make_pkt(NAK chksum)udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp not corrupt(rcvpkt) ampamp has_seq0(rcvpkt)

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp has_seq1(rcvpkt)

extract(rcvpktdata)deliver_data(data)sndpkt = make_pkt(ACK chksum)udt_send(sndpkt)

chờ 1 từ dưới

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp has_seq0(rcvpkt)

extract(rcvpktdata)deliver_data(data)sndpkt = make_pkt(ACK chksum)udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp (corrupt(rcvpkt)

sndpkt = make_pkt(ACK chksum)udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp not corrupt(rcvpkt) ampamp has_seq1(rcvpkt)

rdt_rcv(rcvpkt) ampamp (corrupt(rcvpkt)

sndpkt = make_pkt(ACK chksum)udt_send(sndpkt)

sndpkt = make_pkt(NAK chksum)udt_send(sndpkt)

Transport Layer 3-34

rdt21 thảo luận

người gửi số thứ tự thecircm vagraveo

goacutei chỉ cần hai số thứ tự

(01) lagrave đủ Tại sao phải kiểm tra nếu việc

nhận ACKNAK bị hỏng

số trạng thaacutei tăng lecircn 2 lần trạng thaacutei phải ldquonhớrdquo

goacutei ldquohiện tạirdquo coacute số thứ tự lagrave 0 hay 1

người nhận phải kiểm tra coacute

nhận trugraveng goacutei khocircng trạng thaacutei chỉ rotilde coacute

hay khocircng mong chờ số thứ tự 0 hoặc 1

chuacute yacute người nhận khocircng biết ACKNAK vừa rồi của noacute coacute được người gửi nhận tốt hay khocircng

Transport Layer 3-35

rdt22 một giao thức khocircng cần NAK

chức năng giống như rdt21 chỉ dugraveng caacutec ACK thay cho NAK người nhận gửi ACK cho goacutei vừa

rồi đatilde nhận tốt người nhận phải rotilde ragraveng chegraven số thứ tự của goacutei vừa ACK

trugraveng ACK tại người gửi hậu quả giống như hagravenh động của NAK truyền lại goacutei vừa rồi

Transport Layer 3-36

rdt22 gửi nhận caacutec mảnh

Chờ cho gọi 0 từ

trecircn

sndpkt = make_pkt(0 data checksum)udt_send(sndpkt)

rdt_send(data)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) || isACK(rcvpkt1) )

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt0)

Chờ cho ACK

0

gửi phacircn mảnhFSM

Chờ cho gọi

0 từ dưới

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp has_seq1(rcvpkt)

extract(rcvpktdata)deliver_data(data)sndpkt = make_pkt(ACK1 chksum)udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp (corrupt(rcvpkt) || has_seq1(rcvpkt))

udt_send(sndpkt)

nhận phacircn mảnhFSM

Transport Layer 3-37

rdt30 caacutec kecircnh với lỗi vagrave mất maacutet

Giả định mới kecircnh ưu tiecircn cũng coacute thể lagravem mất caacutec goacutei (dữ liệu hoặc caacutec ACK) checksum số thứ tự

caacutec ACK caacutec việc truyền lại sẽ hỗ trợ nhưng khocircng đủ

Caacutech tiếp cận người gửi chờ ACK trong khoảng thời gian ldquochấp nhận đượcrdquo

truyền lại nếu khocircng nhận ACK trong khoảng thời gian nagravey

nếu goacutei (hoặc ACK) chỉ trễ (khocircng mất) truyền lại sẽ gacircy trugraveng

nhưng dugraveng số thứ tự sẽ giải quyết được

người nhận phải xaacutec định số thứ tự của goacutei vừa gửi ACK

cần bộ định thigrave đếm lugravei

Transport Layer 3-38

rdt30 gửi

sndpkt = make_pkt(0 data checksum)udt_send(sndpkt)start_timer

rdt_send(data)

Chờ cho

ACK 0

rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) ||isACK(rcvpkt1) )

Chờ cho gọi 1 từ trecircn

sndpkt = make_pkt(1 data checksum)udt_send(sndpkt)start_timer

rdt_send(data)

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt0)

rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) ||isACK(rcvpkt0) )

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt1)

stop_timerstop_timer

udt_send(sndpkt)start_timer

timeout

udt_send(sndpkt)start_timer

timeout

rdt_rcv(rcvpkt)

Chờ cho gọi 0 từ trecircn

Chờ cho

ACK 1

rdt_rcv(rcvpkt)

Transport Layer 3-39

hagravenh động của rdt30

Transport Layer 3-40

hagravenh động của rdt30

Transport Layer 3-41

Hiệu suất của rdt30

rdt30 lagravem việc được nhưng đaacutenh giaacute hiệu suất hơi rắc rối viacute dụ liecircn kết 1 Gbps trễ lan truyền giữa hai đầu cuối lagrave 15

ms goacutei 1KB

T truyền = 8kbpkt109 bsec

= 8 microsec

U sender độ khả dụng ndash

U sender

= 008

30008 = 000027

microseconds

L R

RTT + L R =

L (độ dagravei goacutei tiacutenh bằng bits)R (tốc độ truyền bps)

=

goacutei 1KB mỗi 30 msec -gt 33kBs trecircn đường truyền 1 Gbps giao thức network hạn chế việc dugraveng caacutec tagravei nguyecircn vật

lyacute

Transport Layer 3-42

rdt30 hoạt động dừng-vagrave-chờ

goacutei đầu tiecircn đatilde truyền t = 0

gửi nhận

RTT

goacutei cuối cugraveng đatilde truyền t = L R

goacutei đầu tiecircn đatilde đếngoacutei cuối cugraveng đatilde đến gửi ACK

ACK đến gửi goacutei kế tiếp t = RTT + L R

U sender

= 008

30008 = 000027

microseconds

L R

RTT + L R =

Transport Layer 3-43

Caacutec giao thức Pipelined

Pipelining người gửi cho pheacutep gửi nhiều goacutei đồng thời khocircng cần chờ baacuteo nhận được nhoacutem caacutec số thứ tự phải tăng dần phải coacute bộ nhớ đệm tại nơi gửi vagravehoặc nơi nhận

hai dạng phổ biến của caacutec giao thức pipelined go-Back-N Lặp coacute lựa chọn

Transport Layer 3-44

Pipelining độ khả dụng tăng

goacutei đầu tiecircn đatilde truyền t = 0

sender receiver

RTT

goacutei cuối cugraveng đatilde truyền t = L R

goacutei đầu tiecircn đatilde đếngoacutei cuối cugraveng đatilde đến gửi ACK

ACK đến gửi goacuteikế tiếp t = RTT + L R

bit cuối của goacutei thứ 2 đến gửi ACKbit cuối của goacutei thứ 3 đến gửi ACK

U sender

= 024

30008 = 00008

microseconds

3 L R

RTT + L R =

Độ khả dụng tăng lecircngấp 3 lần

Transport Layer 3-45

Go-Back-NBecircn gửi k-bit số thứ tự trong header của goacutei ldquocửa sổrdquo tăng lecircn đến N cho pheacutep gửi caacutec goacutei liecircn tục khocircng cần ACK

ACK(n) ACKs tất cả caacutec goacutei đến chứa số thứ tự n ndash ldquoACK tiacutech lũyrdquo coacute thể nhận caacutec ACK trugraveng lặp (xem becircn nhận)

định thigrave cho mỗi goacutei trecircn đường truyền timeout(n) gửi lại goacutei n vagrave tất cả caacutec goacutei coacute số thứ tự cao

hơn trong cửa sổ

Transport Layer 3-46

GBN becircn gửi mở rộng FSM

chờ start_timerudt_send(sndpkt[base])udt_send(sndpkt[base+1])hellipudt_send(sndpkt[nextseqnum-1])

timeout

rdt_send(data)

if (nextseqnum lt base+N) sndpkt[nextseqnum] = make_pkt(nextseqnumdatachksum) udt_send(sndpkt[nextseqnum]) if (base == nextseqnum) start_timer nextseqnum++ else refuse_data(data)

base = getacknum(rcvpkt)+1If (base == nextseqnum) stop_timer else start_timer

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)

base=1nextseqnum=1

rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)

Transport Layer 3-47

GBN becircn nhận mở rộng FSM

ACK-duy nhất luocircn luocircn gửi ACK cho goacutei đatilde nhận đuacuteng với số thứ tự xếp hạng cao nhất coacute thể sinh ra caacutec ACK trugraveng nhau chỉ cần nhớ expectedseqnum

goacutei khocircng theo thứ tự hủy -gt khocircng nhận vagraveo bộ đệm gửi lại ACK với số thứ tự xếp hạng cao nhất

chờ

udt_send(sndpkt)

default

rdt_rcv(rcvpkt) ampamp notcurrupt(rcvpkt) ampamp hasseqnum(rcvpktexpectedseqnum)

extract(rcvpktdata)deliver_data(data)sndpkt = make_pkt(expectedseqnumACKchksum)udt_send(sndpkt)expectedseqnum++

expectedseqnum=1sndpkt = make_pkt(expectedseqnumACKchksum)

Transport Layer 3-48

GBN hoạt động

Transport Layer 3-49

Lặp coacute lựa chọn

becircn nhận thocircng baacuteo đatilde nhận đuacuteng tất cả từng goacutei một đệm (buffer) caacutec goacutei nếu cần thiết

becircn gửi chỉ gửi lại caacutec goacutei nagraveo khocircng nhận được ACK becircn gửi định thigrave đối với mỗi goacutei khocircng gửi ACK

cửa sổ becircn gửi N số thứ tự liecircn tục hạn chế số thứ tự caacutec goacutei khocircng gửi ACK

Transport Layer 3-50

Lặp coacute lựa chọn caacutec cửa sổ gửi nhận

Transport Layer 3-51

Lặp coacute lựa chọn

dữ liệu từ lớp trecircn nếu số thứ tự kế tiếp sẵn

sagraveng trong cửa sổ gửi goacutei

timeout(n) gửi lại goacutei n taacutei khởi tạo

bộ định thigrave

ACK(n) trong [sendbasesendbase+N]

đaacutenh dấu goacutei n lagrave đatilde nhận nếu goacutei khocircng ACK coacute n

nhỏ nhất dịch chuyển cửa sổ base đến số thứ tự khocircng ACK kế tiếp

Gửigoacutei n trong [rcvbase

rcvbase+N-1]

gửi ACK(n) khocircng thứ tự đệm

(buffer) coacute thứ tự truyền (cũng

truyền caacutec goacutei đatilde đệm coacute thứ tự) dịch chuyển cửa sổ đến goacutei chưa nhận kế tiếp

goacutei n trong [rcvbase-Nrcvbase-1]

ACK(n)

ngược lại lờ đi

Nhận

Transport Layer 3-52

Hoạt động của lặp coacute lựa chọn

Transport Layer 3-53

Lặp coacute lựa chọntigravenh trạng khoacute giải quyếtViacute dụ Số thứ tự 0 1 2 3 Kiacutech thước cửa sổ = 3

becircn nhận khocircng thấy sự khaacutec nhau trong 2 tigravenh huống

chuyển khocircng chiacutenh xaacutec dữ liệu trugraveng lặp như dữ liệu mới trong (a)

Hỏi quan hệ giữa datildey số thứ tự vagrave kiacutech thước cửa sổ

Transport Layer 3-54

Chương 3 Nội dung trigravenh bagravey

31 Caacutec dịch vụ lớp Transport

32 Multiplexing vagrave demultiplexing

33 Vận chuyển khocircng kết nối UDP

34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy

35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối

36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn

37 Điều khiển tắc nghẽn TCP

Transport Layer 3-55

TCP Tổng quan RFCs 793 1122 1323 2018 2581

dữ liệu full duplex luồng dữ liệu đi 2 chiều

trong cugraveng một kết nối MSS maximum

segment size ndash kiacutech thước đoạn tối đa

hướng kết nối bắt tay (trao đổi caacutec

thocircng điệp điều khiển) trạng thaacutei becircn gửi becircn nhận trước khi trao đổi dữ liệu

điều khiển luồng becircn gửi sẽ khocircng lấn aacutet

becircn nhận

point-to-point một becircn gửi một becircn

nhận tin cậy dograveng byte coacute

thứ tự khocircng ldquoranh giới thocircng

điệprdquo kecircnh liecircn lạc

TCP điều khiển luồng vagrave tắc nghẽn thiết lập kiacutech thước cửa sổ

caacutec bộ đệm gửi amp nhận

socketdoor

T C Psend buffer

T C Preceive buffer

socketdoor

segm ent

applicationwrites data

applicationreads data

Transport Layer 3-56

TCP cấu truacutec đoạn

port nguồn port điacutech

32 bits

dữ liệu ứng dụng(độ dagravei thay đổi)

số thứ tự

số ACKcửa sổ nhận

con trỏ URGchecksum

FSRPAUheadlen

notused

Tugravey chọn (độ dagravei thay đổi)

URG dữ liệu khẩn cấp(thường khocircng dugraveng)

ACK ACK hợp lệ

PSH push data now(thường khocircng dugraveng)

RST SYN FINthiết lập kết nối

(caacutec lệnh thiết lậpchia nhỏ)

số byte becircn nhận sẵn sagraveng chấp nhận

đếm bởi số bytecủa dữ liệu

Internetchecksum

(giống UDP)

Transport Layer 3-57

Caacutec số thứ tự TCP vagrave ACKCaacutec số thứ tự

dograveng byte ldquođaacutenh sốrdquo byte đầu tiecircn trong dữ liệu của đoạn

caacutec ACK số thứ tự của byte

kế tiếp được chờ đợi từ phiacutea becircn kia

ACK tiacutech lũyHỏi lagravem thế nagraveo becircn

nhận quản lyacute caacutec đoạn khocircng thứ tự Trả lời TCP khocircng

đề cập tugravey thuộc người hiện thực

Host A Host B

Seq=42 ACK=79 data = lsquoCrsquo

Seq=79 ACK=43 data = lsquoCrsquo

Seq=43 ACK=80

UsernhậplsquoCrsquo

host ACKsnhận phản hồi

lsquoCrsquo

host ACKsbaacuteo nhận

lsquoCrsquo phản hồingược lại lsquoCrsquo

timetigravenh huống telnet đơn giản

Transport Layer 3-58

TCP Round Trip Time vagraveTimeout

Hỏi Lagravem thế nagraveo để thiết lập giaacute trị TCP timeout

dagravei hơn RTT khaacutec với RTT

quaacute ngắn timeout sớm truyền lại khocircng

cần thiết quaacute dagravei phản ứng

chậm đối với việc mất maacutet goacutei

Hỏi Lagravem thế nagraveo để thiết lập RTT

SampleRTT thời gian được đo từ khi truyền đoạn đến khi baacuteo nhận ACK lờ đi việc truyền lại

SampleRTT sẽ thay đổi muốn ước lượng RTT ldquomượt hơnrdquo tiacutenh trung bigravenh một số giaacute

trị đo được gần đoacute khocircng chỉ SampleRTT hiện tại

Transport Layer 3-59

TCP Round Trip Time vagrave Timeout

EstimatedRTT = (1- )EstimatedRTT + SampleRTT

giaacute trị đặc trưng = 0125

Transport Layer 3-60

Viacute dụ đaacutenh giaacute RTTRTT gaiacsumassedu to fantasiaeurecomfr

100

150

200

250

300

350

1 8 15 22 29 36 43 50 57 64 71 78 85 92 99 106

time (seconnds)

RTT

(mill

isec

onds

)

SampleRTT Estimated RTT

Transport Layer 3-61

TCP Round Trip Time vagrave Timeout

Thiết lập timeout EstimtedRTT cộng ldquohệ số dự trữ an toagravenrdquo

sự biến thiecircn lớn trong EstimatedRTT -gt hệ số dự trữ an toagraven lớn hơn ước lượng đầu tiecircn về sự biến thiecircn của SampleRTT từ EstimatedRTT

TimeoutInterval = EstimatedRTT + 4DevRTT

DevRTT = (1-)DevRTT + |SampleRTT-EstimatedRTT|

(tiecircu biểu = 025)

Sau đoacute thiết lập timeout interval

Transport Layer 3-62

TCP truyền dữ liệu tin cậy

TCP tạo dịch vụ rdt trecircn dịch vụ khocircng tin cậy IP

caacutec đoạn Pipelined caacutec ACK tiacutech lũy TCP dugraveng bộ định thigrave

truyền lại đơn

Truyền lại được kiacutech hoạt bởi caacutec sự kiện timeout caacutec ack trugraveng lặp

luacutec đầu khảo saacutet caacutec becircn gửi TCP đơn giản lờ đi caacutec ack trugraveng lặp lờ đi điều khiển luồng

điều khiển tắc nghẽn

Transport Layer 3-63

TCP caacutec sự kiệndữ liệu đatilde nhận từ ứng

dụng tạo đoạn với số thứ

tự của noacute số thứ tự lagrave số theo

byte dữ liệu đầu tiecircn khởi động bộ định thigrave

nếu chưa chạy khoảng thời gian hết

hạn TimeOutInterval

timeout gửi lại đoạn nagraveo gacircy

ra timeout khởi động lại bộ định

thigrave Ack đatilde nhận

cập nhật caacutei gigrave sẽ được ACK

khởi động bộ định thigrave nếu coacute caacutec đoạn cograven chờ

Transport Layer 3-64

TCP becircn gửi(đơn giản)

NextSeqNum = InitialSeqNum SendBase = InitialSeqNum

loop (forever) switch(event)

event data received from application above create TCP segment with sequence number NextSeqNum if (timer currently not running) start timer pass segment to IP NextSeqNum = NextSeqNum + length(data)

event timer timeout retransmit not-yet-acknowledged segment with smallest sequence number start timer

event ACK received with ACK field value of y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer

end of loop forever

Chuacute thiacutechbull SendBase-1 byte vừa được ACK tiacutech lũy Viacute dụbull SendBase-1 = 71y= 73 vigrave thế becircn nhận muốn 73+ y gt SendBase vigrave thế dữ liệu mới được chấp nhận

Transport Layer 3-65

TCP caacutec tigravenh huống truyền lại

Host A

Seq=100 20 bytes data

ACK=100

timetimeout sớm

Host B

Seq=92 8 bytes data

ACK=120

Seq=92 8 bytes data

Seq=

92

tim

eout

ACK=120

Host A

Seq=92 8 bytes data

ACK=100

loss

tim

eout

tigravenh huống mất ACK

Host B

X

Seq=92 8 bytes data

ACK=100

time

Seq=

92

tim

eout

SendBase= 100

SendBase= 120

SendBase= 120

Sendbase= 100

Transport Layer 3-66

TCP caacutec tigravenh huống truyền lại (tt)Host A

Seq=92 8 bytes data

ACK=100

loss

tim

eout

Cumulative ACK scenario

Host B

X

Seq=100 20 bytes data

ACK=120

time

SendBase= 120

Transport Layer 3-67

TCP sinh ra ACK [RFC 1122 RFC 2581]

Sự kiện tại becircn nhận

Đoạn đến với đuacuteng số thứ tự mong muốn Tất cả dữ liệu đếnđatilde được ACK

Đoạn đến với đuacuteng số thứ tự mong muốn Một đoạn khaacutec đangchờ ACK

Caacutec đoạn đến khocircng thứ tựlớn hơn số thứ tự đoạn mong muốnCoacute khoảng trống

Đoạn đếnlấp đầy từng phần hoặc toagraven bộkhoảng trống

TCP becircn nhận hagravenh động

ACK trễ Chờ đến 500mscho đoạn kế tiếp Nếu khocircng coacute đoạnkế tiếp gửi ACK

Gửi ngay một ACK tiacutech lũy chấp nhậncho cả caacutec đoạn theo thứ tự

Gửi ngay ACK trugraveng lặp chỉ thị số thứ tựđoạn của byte kế tiếp đang mong chờ

Gửi ngay ACK với điều kiện lagrave đoạnbắt đầu ngay điểm coacute khoảng trống

Transport Layer 3-68

Truyền lại nhanh

Chu kỳ Time-out thường tương đối dagravei độ trễ dagravei trước khi gửi

lại goacutei đatilde mất

Xaacutec nhận caacutec đoạn đatilde mất bằng caacutec ACK trugraveng lặp becircn gửi thường gửi

nhiều đoạn song song Nếu đoạn bị mất sẽ

xảy ra tigravenh trạng giống như nhiều ACK trugraveng nhau

Nếu becircn gửi nhận 3 ACK của cugraveng một dữ liệu noacute cho lagrave đoạn sau dữ liệu đatilde ACK bị mất Truyền lại nhanh gửi

lại đoạn trước khi bộ định thigrave hết hạn

Transport Layer 3-69

sự kiện ACK đatilde nhận với trường lagrave y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer else increment count of dup ACKs received for y if (count of dup ACKs received for y = 3) resend segment with sequence number y

Giải thuật truyền lại nhanh

một ACK trugraveng lặp cho đoạn đatilde được ACK

Truyền lại nhanh

Transport Layer 3-70

Chương 3 Nội dung trigravenh bagravey

31 Caacutec dịch vụ lớp Transport

32 Multiplexing vagrave demultiplexing

33 Vận chuyển khocircng kết nối UDP

34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy

35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối

36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn

37 Điều khiển tắc nghẽn TCP

Transport Layer 3-71

TCP điều khiển luồng

becircn nhận của kết nối TCP coacute một bộ đệm nhận

dịch vụ so trugraveng tốc độ so trugraveng tốc độ gửi với tốc độ nhận của ứng dụng

tiến trigravenh ứng dụng coacute thể chậm tại luacutec đọc bộ đệm

becircn gửi sẽ khocircng lagravem tragraven bộ đệm vigrave truyền quaacute nhiều vagrave

quaacute nhanh

điều khiển luồng

Transport Layer 3-72

TCP điều khiển luồng caacutech lagravem

(Giả sử becircn nhận TCP loại bỏ caacutec đoạn khocircng coacute thứ tự)

dự phograveng trong bộ đệm= RcvWindow

= RcvBuffer-[LastByteRcvd - LastByteRead]

Becircn nhận thocircng baacuteo khoảng dự trữ nhờ giaacute trị RcvWindow trong caacutec đoạn

Becircn gửi hạn chế dữ liệu khocircng được ACK vagraveo RcvWindow bảo đảm bộ đệm nhận

khocircng tragraven

Transport Layer 3-73

Chương 3 Nội dung trigravenh bagravey

31 Caacutec dịch vụ lớp Transport

32 Multiplexing vagrave demultiplexing

33 Vận chuyển khocircng kết nối UDP

34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy

35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối

36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn

37 Điều khiển tắc nghẽn TCP

Transport Layer 3-74

TCP quản lyacute kết nối

Chuacute yacute Becircn gửi vagrave becircn nhận TCP thiết lập ldquokết nốirdquo trước khi trao đổi dữ liệu

khởi tạo caacutec biến TCP caacutec số thứ tự đoạn thocircng tin caacutec bộ đệm điều

khiển luồng (như RcvWindow)

client người khởi xướng kết nối

Socket clientSocket = new Socket(hostnameport

number) server được tiếp xuacutec bởi

client Socket connectionSocket =

welcomeSocketaccept()

3 phương phaacutep bắt tay

Bước 1 client host gửi đoạnTCP SYN đến server xaacutec định số thứ tự khởi đầu khocircng phải dữ liệu

Bước 2 server host nhận SYN trả lời với đoạn SYNACK

server cấp phaacutet caacutec bộ đệm

xaacutec định số thứ tự khởi đầuBước 3 client nhận SYNACK trả

lời với đoạn ACK (coacute thể chứa dữ liệu)

Transport Layer 3-75

TCP quản lyacute kết nối (tt)

Đoacuteng một kết nối

client đoacuteng socket clientSocketclose()

Bước 1 client gửi đoạn điều khiển TCP FIN đến server

Bước 2 server nhận FIN trả lời với ACK Đoacuteng kết nối gửi FIN

client

FIN

server

ACK

ACK

FIN

đoacuteng

đoacuteng

đatilde đoacutengthời g

ian c

hờ

Transport Layer 3-76

TCP quản lyacute kết nối (tt)

Bước 3 client nhận FIN trả lời với ACK

Trong khoảng ldquothời gian chờrdquo ndash sẽ phản hồi với ACK để nhận caacutec FIN

Bước 4 server nhận ACK Kết nối đatilde đoacuteng

Chuacute yacute với một sửa đổi nhỏ coacute thể quản lyacute nhiều FIN đồng thời

client

FIN

server

ACK

ACK

FIN

đang đoacuteng

đang đoacuteng

đatilde đoacuteng

thời g

ian c

hờ

đatilde đoacuteng

Transport Layer 3-77

TCP quản lyacute kết nối (tt)

chu kỳ sống củaTCP client

chu kỳ sống củaTCP server

Transport Layer 3-78

Chương 3 Nội dung trigravenh bagravey

31 Caacutec dịch vụ lớp Transport

32 Multiplexing vagrave demultiplexing

33 Vận chuyển khocircng kết nối UDP

34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy

35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối

36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn

37 Điều khiển tắc nghẽn TCP

Transport Layer 3-79

Caacutec nguyecircn lyacute điều khiển tắc nghẽn

Tắc nghẽn ldquoquaacute nhiều nguồn gửi quaacute nhanh vagrave quaacute nhiều

dữ liệu đến mạngrdquo khaacutec với điều khiển luồng caacutec biểu hiện

caacutec goacutei bị mất (tragraven bộ đệm tại caacutec router) caacutec độ trễ quaacute dagravei (xếp hagraveng trong bộ đệm

của router) lagrave 1 trong 10 vấn đề nan giải nhất

Transport Layer 3-80

Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 1

2 gửi 2 nhận 1 router caacutec bộ

đệm khocircng giới hạn

khocircng coacute truyền lại

caacutec độ trễ lớn hơn khi tắc nghẽn

năng suất coacute thể đạt tối đa

unlimited shared output link buffers

Host Ain original data

Host B

out

Transport Layer 3-81

Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 2

1 router caacutec bộ đệm coacute giới hạn becircn gửi truyền lại caacutec goacutei đatilde mất

chia sẻ vocirc hạncaacutec bộ đệm ouput

Host A in dữ liệu gốc

Host B

out

in dữ liệu gốc cugraveng với dữ liệu truyền lại

Transport Layer 3-82

Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 2 luocircn luocircn

truyền lại ldquohoagraven toagravenrdquo chỉ khi mất maacutet

truyền lại vigrave trễ (khocircng mất) lagravem cho lớn hơn với cugraveng

in

out

=

in

out

gt

in

out

ldquocaacutec chi phiacuterdquo của tắc nghẽn nhiều việc (truyền lại) caacutec truyền lại khocircng cần thiết liecircn kết nhiều bản sao của

goacutei

R2

R2in

ou

t

b

R2

R2in

ou

t

a

R2

R2in

ou

t

c

R4

R3

Transport Layer 3-83

Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 3 4 người gửi caacutec đường qua nhiều hop timeouttruyền lại

in

Hỏi điều gigrave xảy ra nếu vagrave tăng lecircn

in

chia sẻ vocirc hạncaacutec bộ đệm ouput

Host Ain dữ liệu gốc

Host B

out

in dữ liệu gốc cugraveng với dữ liệu truyền lại

Transport Layer 3-84

Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 3

ldquochi phiacuterdquo khaacutec của tắc nghẽn khi caacutec goacutei bị bỏ bất kỳ ldquokhả năng truyền

upstream dugraveng cho goacutei đoacute sẽ bị latildeng phiacuterdquo

Host A

Host B

o

u

t

Transport Layer 3-85

Caacutec caacutech tiếp cận đối với điều khiển tắc nghẽn

điều khiển tắc nghẽn end-end

khocircng coacute phản hồi rotilde ragraveng từ mạng

tắc nghẽn được suy ra từ việc quan saacutet caacutec hệ thống đầu cuối coacute mất maacutet trễ

tiếp cận được quản lyacute bởi TCP

điều khiển tắc nghẽn coacute sự hỗ trợ của mạng

caacutec router cung cấp phản hồi về caacutec hệ thống đầu cuối 1 bit duy nhất chỉ thị

tắc nghẽn (SNA DECbit TCPIP ECN ATM)

tốc độ sẽ gửi được xaacutec định rotilde ragraveng

2 caacutech

Transport Layer 3-86

Viacute dụ điều khiển tắc nghẽn ATM ABR

ABR tốc độ bit sẵn sagraveng

ldquodịch vụ mềm dẻordquo nếu đường gửi ldquochưa

hếtrdquo becircn gửi sẽ dugraveng

băng thocircng sẵn sagraveng nếu đường gửi tắc

nghẽn becircn gửi điều tiết với

tốc độ tối thiểu

RM (resource management)

gửi bởi becircn gửi rải raacutec với caacutec ocirc dữ liệu

caacutec bit trong ocirc thiết lập bởi caacutec switch bit NI khocircng tăng tốc độ

(tắc nghẽn nhẹ) bit CI tắc nghẽn rotilde rệt

Caacutec ocirc RM được trả về becircn gửi từ becircn nhận với nguyecircn vẹn caacutec bit

Transport Layer 3-87

Viacute dụ điều khiển tắc nghẽn ATM ABR

trường 2-byte ER trong ocirc RM switch đatilde tắc nghẽn coacute thể coacute giaacute trị ER thấp hơn trong ocirc tốc độ gửi do đoacute coacute thể được hỗ trợ tối đa trecircn đường

EFCI bit trong caacutec ocirc dữ liệu được cagravei giaacute trị 1 trong switch đatilde tắc nghẽn nếu ocirc dữ liệu đứng trước ocirc RM coacute cagravei EFCI becircn gửi sẽ cagravei

bit CI trong ocirc RM trả về

Transport Layer 3-88

Chương 3 Nội dung trigravenh bagravey

31 Caacutec dịch vụ lớp Transport

32 Multiplexing vagrave demultiplexing

33 Vận chuyển khocircng kết nối UDP

34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy

35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối

36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn

37 Điều khiển tắc nghẽn TCP

Transport Layer 3-89

TCP điều khiển tắc nghẽn additive tăng lecircn multiplicative giảm xuống

8 Kbytes

16 Kbytes

24 Kbytes

time

congestionwindow

Caacutech tiếp cận tăng tốc độ truyền (kiacutech thước cửa sổ) tigravem khả năng băng thocircng coacute thể cho đến khi coacute mất maacutet xảy ra additive tăng lecircn tăng CongWin bởi 1 MSS

mỗi RTT cho đến khi coacute mất maacutet xảy ra multiplicative giảm xuống bỏ CongWin trong

nửa giai đoạn sau khi mất maacutet

timekiacutech

thư

ớc

cửa

sổ

tắc

nghẽ

n

Tigravem kiếm băng thocircng

Transport Layer 3-90

TCP điều khiển tắc nghẽn chi tiết

becircn gửi hạn chế việc truyền LastByteSent-LastByteAcked

CongWin Cocircng thức

CongWin thay đổi chức năng lagrave nhận biết tắc nghẽn trecircn mạng

Lagravem thế nagraveo becircn gửi nhận biết tắc nghẽn

mất maacutet xảy ra = timeout hoặc 3 ack trugraveng lặp

becircn gửi giảm tốc độ (CongWin) sau khi mất maacutet xảy ra

3 cơ chế AIMD khởi động chậm thận trọng sau khi coacute

caacutec sự kiện timeout

tốc độ = CongWin

RTT Bytess

Transport Layer 3-91

TCP khởi động chậm

Khi kết nối bắt đầu CongWin = 1 MSS Viacute dụ MSS = 500 bytes

amp RTT = 200 ms tốc độ khởi tạo = 20

kbps

băng thocircng sẵn sagraveng coacute thể gtgt MSSRTT mong muốn nhanh

choacuteng tăng tốc lecircn tốc độ coacute thể đaacutep ứng

Khi kết nối bắt đầu tăng tốc lecircn rất nhanh cho đến khi sự cố mất maacutet xảy ra đầu tiecircn

Transport Layer 3-92

TCP khởi động chậm (tt)

Khi kết nối bắt đầu tăng tốc lecircn rất nhanh cho đến khi sự cố mất maacutet xảy ra đầu tiecircn nhacircn đocirci CongWin mỗi

RTT hoagraven thagravenh nhờ tăng CongWin ứng với mỗi ACK đatilde nhận

Tổng kết tốc độ khởi đầu lagrave chậm nhưng sau đoacute tăng tốc rất nhanh

Host A

1 đoạn

RTT

Host B

thời gian

2 đoạn

4 đoạn

Transport Layer 3-93

Tinh chếHỏi Khi nagraveo việc tăng

tốc trở thagravenh tuyến tiacutenh

Trả lời Khi CongWin đạt đến 12 giaacute trị của noacute trước khi timeout

Hiện thực Ngưỡng thay đổi Tại thời điểm coacute sự cố

mất maacutet ngưỡng được cagravei giaacute trị bằng frac12 của CongWin ngay trước đoacute

Transport Layer 3-94

Tinh chế nhận biết mất maacutet

Sau 3 ACK trugraveng lặp CongWin sẽ giảm 12 kiacutech thước cửa sổ

tăng tuyến tiacutenh nhưng sau sự cố

timeout CongWin thay giaacute trị

bằng 1 MSS kiacutech thước cửa sổ

tăng cấp lũy thừa khi đến một ngưỡng

thigrave tăng tuyến tiacutenh

3 ACK trugraveng nhau chỉ ra khả năng truyền của mạng timeout chỉ thị ldquonhiều cảnh baacuteordquo về tigravenh huống tắc nghẽn

Nguyecircn lyacute

Transport Layer 3-95

Tổng kết TCP điều khiển tắc nghẽn

Khi CongWin dưới Threshold becircn gửi đang trong giai đoạn khởi động chậm kiacutech thước cửa sổ tăng nhanh theo cấp lũy thừa

Khi CongWin trecircn Threshold becircn gửi đang trong giai đoạn traacutenh tắc nghẽn kiacutech thước cửa sổ tăng nhanh theo cấp tuyến tiacutenh

Khi coacute 3 ACK trugraveng lặp xảy ra Threshold = CongWin2 vagrave CongWin = Threshold

Khi timeout xảy ra Threshold = CongWin2 vagrave CongWin = 1 MSS

Transport Layer 3-96

TCP điều khiển tắc nghẽn becircn gửi

Trạng thaacutei Sự kiện TCP becircn gửi hagravenh động Diễn giải

Slow Start (SS)-Khởi động chậm

ACK baacuteo nhận cho dữ liệu chưa ACK trước đoacute

CongWin = CongWin + MSS If (CongWin gt Threshold) cagravei đặt trạng thaacutei ldquoTraacutenh tắc nghẽnrdquo

Hậu quả lagravem tăng gấp đocirci CongWin mỗi RTT

CongestionAvoidance (CA) ndashTraacutenh tắc nghẽn

ACK baacuteo nhận cho dữ liệu chưa ACK trước đoacute

CongWin = CongWin+MSS (MSSCongWin)

Additive tăng lecircn lagravem tăng CongWin lecircn 1 MSS mỗi RTT

SS hoặc CA Sự cố mất maacutet xảy ra khi thấy coacute 3 ACK trugraveng lặp

Threshold = CongWin2 CongWin = Thresholdcagravei đặt trạng thaacutei ldquoTraacutenh tắc nghẽnrdquo

Khocirci phục nhanh hiện thực giảm xuống multiplicative CongWin sẽ khocircng giảm xuống dưới 1 MSS

SS hoặc CA Timeout Threshold = CongWin2 CongWin = 1 MSScagravei đặt trạng thaacutei ldquoKhởi động chậmrdquo

Vagraveo chế độ ldquoKhởi động chậmrdquo

SS hoặc CA ACK trugraveng lặp

Đếm ACK tăng lecircn cho đoạn vừa được ACK

CongWin vagrave Threshold khocircng thay đổi

Transport Layer 3-97

TCP throughput

Throughout trung bigravenh của TCP biểu diễn qua kiacutech thước của sổ vagrave RTT Bỏ qua trạng thaacutei ldquoKhởi động chậmrdquo

Cho W lagrave kiacutech thước cửa sổ khi coacute mất maacutet xảy ra

Khi kiacutech thước cửa sổ = W lưu lượng = WRTT

Chỉ ngay sau khi mất maacutet cửa sổ giảm xuống = W2 lưu lượng = W2RTT

throughout trung bigravenh 075 WRTT

Transport Layer 3-98

TCP tương lai

Viacute dụ caacutec đoạn dagravei 1500 byte RTT 100ms lưu lượng 10 Gbps

Kiacutech thước cửa sổ yecircu cầu W = 83333 đoạn trecircn đường truyền

Lưu lượng trong caacutec trường hợp mất maacutet

L = 210-10

Phiecircn bản mới của TCP dagravenh cho nhu cầu tốc độ cao

LRTT

MSS221

Transport Layer 3-99

Mục tiecircu nếu K phiecircn lagravem việc TCP chia sẻ kết nối cổ chai của băng thocircng lagrave R mỗi phiecircn coacute tốc độ trung bigravenh lagrave RK

TCP kết nối 1

router cổ chaikhả năng R

TCP kết nối 2

TCP tiacutenh cocircng bằng

Transport Layer 3-100

Tại sao phải TCP cocircng bằng

2 phiecircn lagravem việc cạnh tranh nhau Additive tăng lưu lượng tăng multiplicative giảm lưu lượng tương xứng

R

R

chia sẻ băng thocircng bằng nhau

Connection 1 throughputConnect

ion 2

th

roughput

traacutenh tắc nghẽn additive tăng lecircnmất maacutet giảm cửa sổ bằng 12

traacutenh tắc nghẽn additive tăng lecircnmất maacutet giảm cửa sổ bằng 12

Transport Layer 3-101

TCP tiacutenh cocircng bằng (tt)

Tiacutenh cocircng bằng amp UDP nhiều ứng dụng

thường khocircng dugraveng TCP khocircng muốn tốc độ bị

điều tiết do điều khiển tắc nghẽn

Thay bằng dugraveng UDP truyền audiovideo với

tốc độ ổn định chịu được mất maacutet

Nghiecircn cứu giao thức thacircn thiện với TCP

Tiacutenh cocircng bằng amp caacutec kết nối TCP song song

khocircng coacute gigrave ngăn cản việc ứng dụng mở caacutec kết nối song song giữa 2 host

Trigravenh duyệt Web lagravem giống như thế

Viacute dụ tốc độ R hỗ trợ 9 kết nối ứng dụng mới yecircu cầu 1

TCP coacute tốc độ R10 ứng dụng mới yecircu cầu 11

TCP coacute tốc độ R2

Transport Layer 3-102

Mocirc higravenh trễ

Hỏi Mất bao lacircu để nhận 1 đối tượng từ Web server sau khi gửi yecircu cầu

Bỏ qua tắc nghẽn trễ bị ảnh hưởng bởi

thiết lập kết nối TCP trễ truyền dữ liệu khởi động chậm

Notation caacutec giả định Giả sử một kết nối giữa

client vagrave server coacute tốc độ R

S MSS (bits) O kiacutech thước đối tượng

(bits) khocircng truyền lại (khocircng

mất maacutet khocircng hỏng)

Kiacutech thước cửa sổ Giả định 1 cửa sổ tắc

nghẽn cố định coacute W đoạn Sau đoacute cửa sổ thay đổi

mocirc higravenh khởi động chậm

Transport Layer 3-103

Cửa sổ tắc nghẽn cố định (1)

Trường hợp đầu tiecircnWSR gt RTT + SR cho

đoạn đầu tiecircn trong cửa sổ trả về trước khi cửa sổ dữ liệu gửi ACK

trễ = 2RTT + OR

Transport Layer 3-104

Cửa sổ tắc nghẽn cố định (2)

Trường hợp thứ hai WSR lt RTT + SR sent

chờ cho ACK sau khi gửi dữ liệu

trễ = 2RTT + OR+ (K-1)[SR + RTT - WSR]

Transport Layer 3-105

TCP Mocirc higravenh trễ Khởi động chậm (1)

Bacircy giờ giả sử kiacutech thước cửa sổ tăng lecircn tugravey theo quaacute trigravenh khởi động chậm

Độ trễ của một đối tượng sẽ lagrave

R

S

R

SRTTP

R

ORTTLatency P )12(2

trong đoacute P lagrave số lần TCP rảnh ở tại server

1min KQP

- trong đoacute Q lagrave số lần server rảnh nếu đối tượng đatilde khởi tạo kiacutech thước

- vagrave K lagrave số lượng cửa sổ bao trugravem đối tượng

Transport Layer 3-106

TCP Mocirc higravenh trễ Khởi động chậm (2)

RTT

initia te TCPconnection

requestobject

first w indow= S R

second w indow= 2S R

third w indow= 4S R

fourth w indow= 8S R

com pletetransm issionobject

delivered

tim e atc lient

tim e atserver

Viacute dụbull OS = 15 đoạnbull K = 4 cửa sổbull Q = 2bull P = minK-1Q = 2

Server rảnh P=2 lần

Caacutec thagravenh phần trễbull 2 RTT dagravenh cho thiết lập kết nối vagrave yecircu cầubull OR để truyền đối tượngbullthời gian server rảnh bởi vigrave khởi động chậm

Server rảnh P = minK-1Q lần

Transport Layer 3-107

TCP Mocirc higravenh trễ(3)

R

S

R

SRTTPRTT

R

O

R

SRTT

R

SRTT

R

O

idleTimeRTTR

O

P

kP

k

P

pp

)12(][2

]2[2

2delay

1

1

1

th window after the timeidle 2 1 kR

SRTT

R

S k

ementacknowledg receivesserver until

segment send tostartsserver when from time RTTR

S

window kth the transmit totime2 1

R

Sk

RTT

initia te TCPconnection

requestobject

first w indow= S R

second w indow= 2S R

third w indow= 4S R

fourth w indow= 8S R

com pletetransm issionobject

delivered

tim e atc lient

tim e atserver

Transport Layer 3-108

TCP Mocirc higravenh trễ (4)

)1(log

)1(logmin

12min

222min

222min

2

2

110

110

S

OS

Okk

S

Ok

SOk

OSSSkK

k

k

k

caacutech tiacutenh toaacuten Q tương tự (xem HW)

K = số lượng cửa sổ bao trugravem đối tượngLagravem thế nagraveo tiacutenh được K

Transport Layer 3-109

HTTP Mocirc higravenh Giả sử trang Web chứa

1 trang HTML (kiacutech thước O bits) M higravenh ảnh (mỗi caacutei kiacutech thướcO bits)

HTTP khocircng bền vững M+1 TCP kết nối Thời gian đaacutep ứng = (M+1)OR + (M+1)2RTT + tổng số thời

gian rảnh HTTP bền vững

2 RTT để yecircu cầu vagrave nhận file HTML 1 RTT để yecircu cầu vagrave nhận M higravenh ảnh Thời gian đaacutep ứng = (M+1)OR + 3RTT + tổng số thời gian

rảnh HTTP khocircng bền vững với X kết nối song song

Giả sử MX lagrave số nguyecircn 1 TCP kết nối cho file MX thiết lập caacutec kết nối song song cho caacutec higravenh ảnh Thời gian đaacutep ứng = (M+1)OR + (MX + 1)2RTT + tổng số

thời gian rảnh

Transport Layer 3-110

02468

101214161820

28Kbps

100Kbps

1Mbps

10Mbps

non-persistent

persistent

parallel non-persistent

HTTP thời gian đaacutep ứng (giacircy)RTT = 100 msec O = 5 Kbytes M=10 vagrave X=5

Với băng thocircng thấp thời gian kết nối amp đaacutep ứng trội hơn thời gian truyền

Caacutec kết nối bền vững chỉ cho sự cải thiện khocircng đaacuteng kể trecircn caacutec kết nối song song

Transport Layer 3-111

0

10

20

30

40

50

60

70

28Kbps

100Kbps

1Mbps

10Mbps

non-persistent

persistent

parallel non-persistent

HTTP thời gian đaacutep ứng (giacircy)

RTT =1 sec O = 5 Kbytes M=10 and X=5

Với RTT lớn hơn thời gian đaacutep ứng trội hơn thời gian trễ chờ thiết lập kết nốiTCP amp khởi động chậm Caacutec kết nối bền vững bacircy giờ cho thấy cải thiện rotilde rệt đặc biệtvới caacutec mạng băng thocircng cao

Transport Layer 3-112

Chương 3 Tổng kết caacutec nguyecircn lyacute của caacutec

dịch vụ lớp transport multiplexing

demultiplexing truyền dữ liệu tin cậy điều khiển luồng điều khiển tắc nghẽn

khởi tạo vagrave hiện thực trong Internet UDP TCP

Tiếp theo nghiecircn cứu xong

caacutec vấn đề ldquongoagravei biecircnrdquo (caacutec lớp application transport)

chuẩn bị vagraveo phần ldquolotildeirdquo của mạng

  • Slide 1
  • Chương 3 Lớp Transport
  • Chương 3 Nội dung trigravenh bagravey
  • Caacutec dịch vụ vagrave giao thức Transport
  • Lớp Transport với lớp network
  • Caacutec giao thức lớp transport trecircn Internet
  • Slide 7
  • Multiplexingdemultiplexing
  • Demultiplexing lagravem việc như thế nagraveo
  • Demultiplexing khocircng kết nối
  • Demultiplexing khocircng kết nối (tiếp)
  • Demultiplexing hướng kết nối
  • Demultiplexing hướng kết nối (tiếp)
  • Demultiplexing hướng kết nối Threaded Web Server
  • Slide 15
  • UDP User Datagram Protocol [RFC 768]
  • UDP (tt)
  • UDP checksum
  • Viacute dụ Checksum
  • Slide 20
  • Caacutec nguyecircn lyacute truyền dữ liệu tin cậy
  • Slide 22
  • Slide 23
  • Truyền dữ liệu tin cậy
  • Slide 25
  • Rdt10 truyền dữ liệu tin cậy trecircn 1 kecircnh truyền tin cậy
  • Rdt20 kecircnh với caacutec lỗi
  • rdt20 đặc tả FSM
  • rdt20 hoạt động khi khocircng lỗi
  • rdt20 hoạt động khi coacute lỗi
  • rdt20 coacute lỗ hổng nghiecircm trọng
  • rdt21 người gửi quản lyacute caacutec ACKNAK bị hỏng
  • Slide 33
  • rdt21 thảo luận
  • rdt22 một giao thức khocircng cần NAK
  • rdt22 gửi nhận caacutec mảnh
  • rdt30 caacutec kecircnh với lỗi vagrave mất maacutet
  • rdt30 gửi
  • hagravenh động của rdt30
  • Slide 40
  • Hiệu suất của rdt30
  • rdt30 hoạt động dừng-vagrave-chờ
  • Caacutec giao thức Pipelined
  • Pipelining độ khả dụng tăng
  • Go-Back-N
  • GBN becircn gửi mở rộng FSM
  • GBN becircn nhận mở rộng FSM
  • GBN hoạt động
  • Lặp coacute lựa chọn
  • Lặp coacute lựa chọn caacutec cửa sổ gửi nhận
  • Slide 51
  • Hoạt động của lặp coacute lựa chọn
  • Lặp coacute lựa chọn tigravenh trạng khoacute giải quyết
  • Slide 54
  • TCP Tổng quan RFCs 793 1122 1323 2018 2581
  • TCP cấu truacutec đoạn
  • Caacutec số thứ tự TCP vagrave ACK
  • TCP Round Trip Time vagraveTimeout
  • TCP Round Trip Time vagrave Timeout
  • Viacute dụ đaacutenh giaacute RTT
  • Slide 61
  • TCP truyền dữ liệu tin cậy
  • TCP caacutec sự kiện
  • TCP becircn gửi (đơn giản)
  • TCP caacutec tigravenh huống truyền lại
  • TCP caacutec tigravenh huống truyền lại (tt)
  • TCP sinh ra ACK [RFC 1122 RFC 2581]
  • Truyền lại nhanh
  • Giải thuật truyền lại nhanh
  • Slide 70
  • TCP điều khiển luồng
  • TCP điều khiển luồng caacutech lagravem
  • Slide 73
  • TCP quản lyacute kết nối
  • TCP quản lyacute kết nối (tt)
  • Slide 76
  • Slide 77
  • Slide 78
  • Caacutec nguyecircn lyacute điều khiển tắc nghẽn
  • Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 1
  • Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 2
  • Slide 82
  • Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 3
  • Slide 84
  • Caacutec caacutech tiếp cận đối với điều khiển tắc nghẽn
  • Viacute dụ điều khiển tắc nghẽn ATM ABR
  • Slide 87
  • Slide 88
  • TCP điều khiển tắc nghẽn additive tăng lecircn multiplicative giảm xuống
  • TCP điều khiển tắc nghẽn chi tiết
  • TCP khởi động chậm
  • TCP khởi động chậm (tt)
  • Tinh chế
  • Tinh chế nhận biết mất maacutet
  • Tổng kết TCP điều khiển tắc nghẽn
  • TCP điều khiển tắc nghẽn becircn gửi
  • TCP throughput
  • TCP tương lai
  • TCP tiacutenh cocircng bằng
  • Tại sao phải TCP cocircng bằng
  • TCP tiacutenh cocircng bằng (tt)
  • Mocirc higravenh trễ
  • Cửa sổ tắc nghẽn cố định (1)
  • Cửa sổ tắc nghẽn cố định (2)
  • TCP Mocirc higravenh trễ Khởi động chậm (1)
  • TCP Mocirc higravenh trễ Khởi động chậm (2)
  • TCP Mocirc higravenh trễ(3)
  • TCP Mocirc higravenh trễ (4)
  • HTTP Mocirc higravenh
  • Slide 110
  • Slide 111
  • Chương 3 Tổng kết

Transport Layer 3-10

Demultiplexing khocircng kết nối

Tạo caacutec sockets với caacutec số port

DatagramSocket mySocket1 = new DatagramSocket(12534)

DatagramSocket mySocket2 = new DatagramSocket(12535)

UDP socket được xaacutec định bởi bộ 2

(địa chỉ IP số port điacutech)

Khi host nhận đoạn UDP kiểm tra port điacutech trong

đoạn điều hướng đoạn UDP

đến socket nagraveo phugrave hợp với số port đoacute

IP datagrams với địa chỉ IP nguồn vagravehoặc số port khaacutec nhau coacute thể được điều hướng đến cugraveng socket

Transport Layer 3-11

Demultiplexing khocircng kết nối (tiếp)

DatagramSocket serverSocket = new DatagramSocket(6428)

ClientIPB

P2

client IP A

P1P1P3

serverIP C

SP 6428

DP 9157

SP 9157

DP 6428

SP 6428

DP 5775

SP 5775

DP 6428

SP cung cấp ldquođịa chỉ trở vềrdquo

Transport Layer 3-12

Demultiplexing hướng kết nối

TCP socket được xaacutec định bởi bộ 4 địa chỉ IP nguồn số port nguồn địa chỉ IP điacutech số port điacutech

host nhận dugraveng cả 4 giaacute trị trecircn để điều hướng đoạn đến socket thiacutech hợp

Host server coacute thể hỗ trợ nhiều TCP socket đồng thời mỗi socket được xaacutec

định bởi bộ 4 của noacute

Web server coacute caacutec socket khaacutec nhau cho mỗi kết nối từ client kết nối HTTP khocircng bền

vững sẽ coacute socket khaacutec nhau cho mỗi yecircu cầu

Transport Layer 3-13

Demultiplexing hướng kết nối (tiếp)

ClientIPB

P1

client IP A

P1P2P4

serverIP C

SP 9157

DP 80

SP 9157

DP 80

P5 P6 P3

D-IPCS-IP A

D-IPC

S-IP B

SP 5775

DP 80

D-IPCS-IP B

Transport Layer 3-14

Demultiplexing hướng kết nối Threaded Web Server

ClientIPB

P1

client IP A

P1P2

serverIP C

SP 9157

DP 80

SP 9157

DP 80

P4 P3

D-IPCS-IP A

D-IPC

S-IP B

SP 5775

DP 80

D-IPCS-IP B

Transport Layer 3-15

Chương 3 Nội dung trigravenh bagravey

31 Caacutec dịch vụ lớp Transport

32 Multiplexing vagrave demultiplexing

33 Vận chuyển khocircng kết nối UDP

34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy

35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối

36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn

37 Điều khiển tắc nghẽn TCP

Transport Layer 3-16

UDP User Datagram Protocol [RFC 768]

giao thức Internet transport ldquođơn giản hoacuteardquo

dịch vụ ldquobest effortrdquo caacutec đoạn UDP coacute thể mất maacutet vận chuyển khocircng thứ

tự đến ứng dụng connectionless (khocircng

kết nối) khocircng bắt tay giữa

người nhận vagrave người gửi UDP

mỗi đoạn UDP được quản lyacute độc lập

Coacute UDP để lagravem gigrave khocircng thiết lập kết nối

(giuacutep coacute thể thecircm delay) đơn giản khocircng trạng

thaacutei kết nối tại nơi gửi nơi nhận

header của đoạn nhỏ khocircng điều khiển tắc

nghẽn UDP coacute thể gửi nhanh nhất theo mong muốn

Transport Layer 3-17

UDP (tt)

thường dugraveng cho caacutec ứng dụng streaming multimedia chịu mất maacutet cảm nhận tốc độ

ngoagravei ra UDP dugraveng DNS SNMP

truyền tin cậy trecircn UDP thecircm khả năng nagravey tại lớp application sửa lỗi

source port dest port

32 bits

dữ liệu ứng dụng

(thocircng điệp)

dạng thức đoạn UDP

length checksumĐộ dagravei

đoạn UDPbao gồm cả

header

Transport Layer 3-18

UDP checksum

Người gửi đối xử caacutec nội dung

đoạn như một chuỗi caacutec số nguyecircn 16-bit

checksum bổ sung(tổng bugrave 1) của caacutec nội dung đoạn

đặt giaacute trị checksum vagraveo trường UDP checksum

Người nhận tiacutenh toaacuten checksum của

đoạn đatilde nhận kiểm tra giaacute trị trecircn coacute bằng

với giaacute trị trong trường checksum NO ndash coacute lỗi xảy ra YES ndash khocircng coacute lỗi Nhưng coacute thể cograven lỗi

khaacutec nữa Xem tiếp phần sau hellip

Mục tiecircu kiểm tra caacutec ldquolỗirdquo (caacutec bit cờ đatilde bật lecircn) trong caacutec đoạn đatilde truyền

Transport Layer 3-19

Viacute dụ Checksum Lưu yacute

Khi cộng caacutec số một bit nhớ ở phiacutea cao nhất coacute thể sẽ phải thecircm vagraveo kết quả

Viacute dụ cộng hai số nguyecircn 16-bit

1 1 1 1 0 0 1 1 0 0 1 1 0 0 1 1 01 1 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1

1 1 0 1 1 1 0 1 1 1 0 1 1 1 0 1 1

1 1 0 1 1 1 0 1 1 1 0 1 1 1 1 0 01 0 1 0 0 0 1 0 0 0 1 0 0 0 0 1 1

bit dư

tổngchecksum

Transport Layer 3-20

Chương 3 Nội dung trigravenh bagravey

31 Caacutec dịch vụ lớp Transport

32 Multiplexing vagrave demultiplexing

33 Vận chuyển khocircng kết nối UDP

34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy

35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối

36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn

37 Điều khiển tắc nghẽn TCP

Transport Layer 3-21

Caacutec nguyecircn lyacute truyền dữ liệu tin cậy quan trọng trong caacutec lớp application transport link lagrave danh saacutech 10 vấn đề quan trọng nhất của mạng

caacutec đặc thugrave của kecircnh truyền khocircng tin cậy sẽ xaacutec định sự phức tạp của giao thức truyền dữ liệu data transfer protocol (rdt)

Transport Layer 3-22

Caacutec nguyecircn lyacute truyền dữ liệu tin cậy quan trọng trong caacutec lớp application transport link lagrave danh saacutech 10 vấn đề quan trọng nhất của mạng

caacutec đặc thugrave của kecircnh truyền khocircng tin cậy sẽ xaacutec định sự phức tạp của giao thức truyền dữ liệu data transfer protocol (rdt)

Transport Layer 3-23

Caacutec nguyecircn lyacute truyền dữ liệu tin cậy quan trọng trong caacutec lớp application transport link lagrave danh saacutech 10 vấn đề quan trọng nhất của mạng

caacutec đặc thugrave của kecircnh truyền khocircng tin cậy sẽ xaacutec định sự phức tạp của giao thức truyền dữ liệu data transfer protocol (rdt)

Transport Layer 3-24

Truyền dữ liệu tin cậy

sendside

receiveside

rdt_send() được gọi bởi lớp app Chuyển dữ liệu cần truyền

đến lớp cao hơn becircn nhận

udt_send() được gọi bởi rdt để truyền caacutec goacutei trecircn kecircnh khocircng tin cậy đến nơi

nhận

rdt_rcv() được gọi khi goacutei đến kecircnh becircn nhận

deliver_data() được gọi bởi rdt để truyền dữ liệu

đến lớp cao hơn

Transport Layer 3-25

Truyền dữ liệu tin cậy

Sẽ chỉ xem xeacutet truyền dữ liệu theo 1 hướng duy

nhất nhưng điều khiển luồng thocircng tin sẽ theo cả 2

chiều

dugraveng maacutey trạng thaacutei hữu hạn (finite state machines-FSM) để xaacutec định người gửi người nhận

trthaacutei1

trthaacutei2

sự kiện gacircy ra trạng thaacutei truyềncaacutec hagravenh động xảy ra khi truyền

trạng thaacutei khi ở ldquotrạng thaacuteirdquo nagravey thigrave

trạng thaacutei kế tiếp duy nhất được xaacutec định bởi sự kiện kế

tiếp

sự kiệncaacutec hagravenh động

Transport Layer 3-26

Rdt10 truyền dữ liệu tin cậy trecircn 1 kecircnh truyền tin cậy

kecircnh ưu tiecircn tin cậy hoagraven toagraven khocircng coacute caacutec lỗi khocircng mất maacutet caacutec goacutei

caacutec FSM phacircn biệt cho người gửi người nhận người gửi gửi dữ liệu vagraveo kecircnh ưu tiecircn người nhận nhận dữ liệu từ kecircnh ưu tiecircn

chờ gọi từ lớp trecircn packet = make_pkt(data)

udt_send(packet)

rdt_send(data)

extract (packetdata)deliver_data(data)

chờ gọi từ lớp dưới

rdt_rcv(packet)

người gửi người nhận

Transport Layer 3-27

Rdt20 kecircnh với caacutec lỗi

kecircnh ưu tiecircn coacute thể bật lecircn một số bit trong goacutei checksum để kiểm tra caacutec lỗi

Hỏi lagravem sao khocirci phục caacutec lỗi acknowledgements (ACKs) becircn nhận rotilde ragraveng thocircng

baacuteo cho becircn gửi rằng quaacute trigravenh nhận goacutei tốt negative acknowledgements (NAKs) becircn nhận rotilde ragraveng

thocircng baacuteo cho becircn gửi rằng quaacute trigravenh nhận goacutei coacute lỗi người gửi gửi lại goacutei nagraveo được xaacutec nhận lagrave NAK

caacutec cơ chế mới trong rdt20 (sau rdt10) kiểm tra lỗi nhận phản hồi caacutec thocircng điệp điều khiển (ACKNAK)

becircn nhận becircn gửi

Transport Layer 3-28

rdt20 đặc tả FSM

chờ gọi từ lớp trecircn

snkpkt = make_pkt(data checksum)udt_send(sndpkt)

extract(rcvpktdata)deliver_data(data)udt_send(ACK)

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)

rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp isNAK(rcvpkt)

udt_send(NAK)

rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)

chờ ACK hoặc NAK

chờ gọi từ lớp dưới

người gửi

người nhậnrdt_send(data)

Transport Layer 3-29

rdt20 hoạt động khi khocircng lỗi

chờ gọi từ lớp dưới

snkpkt = make_pkt(data checksum)udt_send(sndpkt)

extract(rcvpktdata)deliver_data(data)udt_send(ACK)

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)

rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp isNAK(rcvpkt)

udt_send(NAK)

rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)

chờ ACK hoặc NAK

chờ gọi từ lớp dưới

rdt_send(data)

Transport Layer 3-30

rdt20 hoạt động khi coacute lỗi

chờ gọi từ lớp dưới

snkpkt = make_pkt(data checksum)udt_send(sndpkt)

extract(rcvpktdata)deliver_data(data)udt_send(ACK)

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)

rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp isNAK(rcvpkt)

udt_send(NAK)

rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)

chờ ACK hoặc NAK

chờ gọi từ lớp dưới

rdt_send(data)

Transport Layer 3-31

rdt20 coacute lỗ hổng nghiecircm trọngĐiều gigrave xảy ra nếu

ACKNAK bị hỏng người gửi khocircng biết điều

gigrave đatilde xảy ra tại becircn nhận

khocircng thể đơn phương truyền lại khả năng trugraveng lặp

Quản lyacute trugraveng lặp người gửi truyền lại goacutei

hiện tại nếu ACKNAK bị hỏng

người gửi thecircm số thứ tự vagraveo mỗi goacutei

người nhận hủy (khocircng nhận) goacutei trugraveng lặp

Người gửi gửi 1 goacutei sau đoacute dừng lại chờ phản hồitừ người nhận

dừng vagrave chờ

Transport Layer 3-32

rdt21 người gửi quản lyacute caacutec ACKNAK bị hỏng

chờ gọi 0 từ lớp trecircn

sndpkt = make_pkt(0 data checksum)udt_send(sndpkt)

rdt_send(data)

chờ ACK hoặc NAK

0 udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) ||isNAK(rcvpkt) )

sndpkt = make_pkt(1 data checksum)udt_send(sndpkt)

rdt_send(data)

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) ||isNAK(rcvpkt) )

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt)

chờ gọi 1 từ lớp trecircn

chờ ACK hoặc NAK

1

Transport Layer 3-33

rdt21 người gửi quản lyacute caacutec ACKNAK bị hỏng

chờ 0 từ dưới

sndpkt = make_pkt(NAK chksum)udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp not corrupt(rcvpkt) ampamp has_seq0(rcvpkt)

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp has_seq1(rcvpkt)

extract(rcvpktdata)deliver_data(data)sndpkt = make_pkt(ACK chksum)udt_send(sndpkt)

chờ 1 từ dưới

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp has_seq0(rcvpkt)

extract(rcvpktdata)deliver_data(data)sndpkt = make_pkt(ACK chksum)udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp (corrupt(rcvpkt)

sndpkt = make_pkt(ACK chksum)udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp not corrupt(rcvpkt) ampamp has_seq1(rcvpkt)

rdt_rcv(rcvpkt) ampamp (corrupt(rcvpkt)

sndpkt = make_pkt(ACK chksum)udt_send(sndpkt)

sndpkt = make_pkt(NAK chksum)udt_send(sndpkt)

Transport Layer 3-34

rdt21 thảo luận

người gửi số thứ tự thecircm vagraveo

goacutei chỉ cần hai số thứ tự

(01) lagrave đủ Tại sao phải kiểm tra nếu việc

nhận ACKNAK bị hỏng

số trạng thaacutei tăng lecircn 2 lần trạng thaacutei phải ldquonhớrdquo

goacutei ldquohiện tạirdquo coacute số thứ tự lagrave 0 hay 1

người nhận phải kiểm tra coacute

nhận trugraveng goacutei khocircng trạng thaacutei chỉ rotilde coacute

hay khocircng mong chờ số thứ tự 0 hoặc 1

chuacute yacute người nhận khocircng biết ACKNAK vừa rồi của noacute coacute được người gửi nhận tốt hay khocircng

Transport Layer 3-35

rdt22 một giao thức khocircng cần NAK

chức năng giống như rdt21 chỉ dugraveng caacutec ACK thay cho NAK người nhận gửi ACK cho goacutei vừa

rồi đatilde nhận tốt người nhận phải rotilde ragraveng chegraven số thứ tự của goacutei vừa ACK

trugraveng ACK tại người gửi hậu quả giống như hagravenh động của NAK truyền lại goacutei vừa rồi

Transport Layer 3-36

rdt22 gửi nhận caacutec mảnh

Chờ cho gọi 0 từ

trecircn

sndpkt = make_pkt(0 data checksum)udt_send(sndpkt)

rdt_send(data)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) || isACK(rcvpkt1) )

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt0)

Chờ cho ACK

0

gửi phacircn mảnhFSM

Chờ cho gọi

0 từ dưới

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp has_seq1(rcvpkt)

extract(rcvpktdata)deliver_data(data)sndpkt = make_pkt(ACK1 chksum)udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp (corrupt(rcvpkt) || has_seq1(rcvpkt))

udt_send(sndpkt)

nhận phacircn mảnhFSM

Transport Layer 3-37

rdt30 caacutec kecircnh với lỗi vagrave mất maacutet

Giả định mới kecircnh ưu tiecircn cũng coacute thể lagravem mất caacutec goacutei (dữ liệu hoặc caacutec ACK) checksum số thứ tự

caacutec ACK caacutec việc truyền lại sẽ hỗ trợ nhưng khocircng đủ

Caacutech tiếp cận người gửi chờ ACK trong khoảng thời gian ldquochấp nhận đượcrdquo

truyền lại nếu khocircng nhận ACK trong khoảng thời gian nagravey

nếu goacutei (hoặc ACK) chỉ trễ (khocircng mất) truyền lại sẽ gacircy trugraveng

nhưng dugraveng số thứ tự sẽ giải quyết được

người nhận phải xaacutec định số thứ tự của goacutei vừa gửi ACK

cần bộ định thigrave đếm lugravei

Transport Layer 3-38

rdt30 gửi

sndpkt = make_pkt(0 data checksum)udt_send(sndpkt)start_timer

rdt_send(data)

Chờ cho

ACK 0

rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) ||isACK(rcvpkt1) )

Chờ cho gọi 1 từ trecircn

sndpkt = make_pkt(1 data checksum)udt_send(sndpkt)start_timer

rdt_send(data)

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt0)

rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) ||isACK(rcvpkt0) )

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt1)

stop_timerstop_timer

udt_send(sndpkt)start_timer

timeout

udt_send(sndpkt)start_timer

timeout

rdt_rcv(rcvpkt)

Chờ cho gọi 0 từ trecircn

Chờ cho

ACK 1

rdt_rcv(rcvpkt)

Transport Layer 3-39

hagravenh động của rdt30

Transport Layer 3-40

hagravenh động của rdt30

Transport Layer 3-41

Hiệu suất của rdt30

rdt30 lagravem việc được nhưng đaacutenh giaacute hiệu suất hơi rắc rối viacute dụ liecircn kết 1 Gbps trễ lan truyền giữa hai đầu cuối lagrave 15

ms goacutei 1KB

T truyền = 8kbpkt109 bsec

= 8 microsec

U sender độ khả dụng ndash

U sender

= 008

30008 = 000027

microseconds

L R

RTT + L R =

L (độ dagravei goacutei tiacutenh bằng bits)R (tốc độ truyền bps)

=

goacutei 1KB mỗi 30 msec -gt 33kBs trecircn đường truyền 1 Gbps giao thức network hạn chế việc dugraveng caacutec tagravei nguyecircn vật

lyacute

Transport Layer 3-42

rdt30 hoạt động dừng-vagrave-chờ

goacutei đầu tiecircn đatilde truyền t = 0

gửi nhận

RTT

goacutei cuối cugraveng đatilde truyền t = L R

goacutei đầu tiecircn đatilde đếngoacutei cuối cugraveng đatilde đến gửi ACK

ACK đến gửi goacutei kế tiếp t = RTT + L R

U sender

= 008

30008 = 000027

microseconds

L R

RTT + L R =

Transport Layer 3-43

Caacutec giao thức Pipelined

Pipelining người gửi cho pheacutep gửi nhiều goacutei đồng thời khocircng cần chờ baacuteo nhận được nhoacutem caacutec số thứ tự phải tăng dần phải coacute bộ nhớ đệm tại nơi gửi vagravehoặc nơi nhận

hai dạng phổ biến của caacutec giao thức pipelined go-Back-N Lặp coacute lựa chọn

Transport Layer 3-44

Pipelining độ khả dụng tăng

goacutei đầu tiecircn đatilde truyền t = 0

sender receiver

RTT

goacutei cuối cugraveng đatilde truyền t = L R

goacutei đầu tiecircn đatilde đếngoacutei cuối cugraveng đatilde đến gửi ACK

ACK đến gửi goacuteikế tiếp t = RTT + L R

bit cuối của goacutei thứ 2 đến gửi ACKbit cuối của goacutei thứ 3 đến gửi ACK

U sender

= 024

30008 = 00008

microseconds

3 L R

RTT + L R =

Độ khả dụng tăng lecircngấp 3 lần

Transport Layer 3-45

Go-Back-NBecircn gửi k-bit số thứ tự trong header của goacutei ldquocửa sổrdquo tăng lecircn đến N cho pheacutep gửi caacutec goacutei liecircn tục khocircng cần ACK

ACK(n) ACKs tất cả caacutec goacutei đến chứa số thứ tự n ndash ldquoACK tiacutech lũyrdquo coacute thể nhận caacutec ACK trugraveng lặp (xem becircn nhận)

định thigrave cho mỗi goacutei trecircn đường truyền timeout(n) gửi lại goacutei n vagrave tất cả caacutec goacutei coacute số thứ tự cao

hơn trong cửa sổ

Transport Layer 3-46

GBN becircn gửi mở rộng FSM

chờ start_timerudt_send(sndpkt[base])udt_send(sndpkt[base+1])hellipudt_send(sndpkt[nextseqnum-1])

timeout

rdt_send(data)

if (nextseqnum lt base+N) sndpkt[nextseqnum] = make_pkt(nextseqnumdatachksum) udt_send(sndpkt[nextseqnum]) if (base == nextseqnum) start_timer nextseqnum++ else refuse_data(data)

base = getacknum(rcvpkt)+1If (base == nextseqnum) stop_timer else start_timer

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)

base=1nextseqnum=1

rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)

Transport Layer 3-47

GBN becircn nhận mở rộng FSM

ACK-duy nhất luocircn luocircn gửi ACK cho goacutei đatilde nhận đuacuteng với số thứ tự xếp hạng cao nhất coacute thể sinh ra caacutec ACK trugraveng nhau chỉ cần nhớ expectedseqnum

goacutei khocircng theo thứ tự hủy -gt khocircng nhận vagraveo bộ đệm gửi lại ACK với số thứ tự xếp hạng cao nhất

chờ

udt_send(sndpkt)

default

rdt_rcv(rcvpkt) ampamp notcurrupt(rcvpkt) ampamp hasseqnum(rcvpktexpectedseqnum)

extract(rcvpktdata)deliver_data(data)sndpkt = make_pkt(expectedseqnumACKchksum)udt_send(sndpkt)expectedseqnum++

expectedseqnum=1sndpkt = make_pkt(expectedseqnumACKchksum)

Transport Layer 3-48

GBN hoạt động

Transport Layer 3-49

Lặp coacute lựa chọn

becircn nhận thocircng baacuteo đatilde nhận đuacuteng tất cả từng goacutei một đệm (buffer) caacutec goacutei nếu cần thiết

becircn gửi chỉ gửi lại caacutec goacutei nagraveo khocircng nhận được ACK becircn gửi định thigrave đối với mỗi goacutei khocircng gửi ACK

cửa sổ becircn gửi N số thứ tự liecircn tục hạn chế số thứ tự caacutec goacutei khocircng gửi ACK

Transport Layer 3-50

Lặp coacute lựa chọn caacutec cửa sổ gửi nhận

Transport Layer 3-51

Lặp coacute lựa chọn

dữ liệu từ lớp trecircn nếu số thứ tự kế tiếp sẵn

sagraveng trong cửa sổ gửi goacutei

timeout(n) gửi lại goacutei n taacutei khởi tạo

bộ định thigrave

ACK(n) trong [sendbasesendbase+N]

đaacutenh dấu goacutei n lagrave đatilde nhận nếu goacutei khocircng ACK coacute n

nhỏ nhất dịch chuyển cửa sổ base đến số thứ tự khocircng ACK kế tiếp

Gửigoacutei n trong [rcvbase

rcvbase+N-1]

gửi ACK(n) khocircng thứ tự đệm

(buffer) coacute thứ tự truyền (cũng

truyền caacutec goacutei đatilde đệm coacute thứ tự) dịch chuyển cửa sổ đến goacutei chưa nhận kế tiếp

goacutei n trong [rcvbase-Nrcvbase-1]

ACK(n)

ngược lại lờ đi

Nhận

Transport Layer 3-52

Hoạt động của lặp coacute lựa chọn

Transport Layer 3-53

Lặp coacute lựa chọntigravenh trạng khoacute giải quyếtViacute dụ Số thứ tự 0 1 2 3 Kiacutech thước cửa sổ = 3

becircn nhận khocircng thấy sự khaacutec nhau trong 2 tigravenh huống

chuyển khocircng chiacutenh xaacutec dữ liệu trugraveng lặp như dữ liệu mới trong (a)

Hỏi quan hệ giữa datildey số thứ tự vagrave kiacutech thước cửa sổ

Transport Layer 3-54

Chương 3 Nội dung trigravenh bagravey

31 Caacutec dịch vụ lớp Transport

32 Multiplexing vagrave demultiplexing

33 Vận chuyển khocircng kết nối UDP

34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy

35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối

36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn

37 Điều khiển tắc nghẽn TCP

Transport Layer 3-55

TCP Tổng quan RFCs 793 1122 1323 2018 2581

dữ liệu full duplex luồng dữ liệu đi 2 chiều

trong cugraveng một kết nối MSS maximum

segment size ndash kiacutech thước đoạn tối đa

hướng kết nối bắt tay (trao đổi caacutec

thocircng điệp điều khiển) trạng thaacutei becircn gửi becircn nhận trước khi trao đổi dữ liệu

điều khiển luồng becircn gửi sẽ khocircng lấn aacutet

becircn nhận

point-to-point một becircn gửi một becircn

nhận tin cậy dograveng byte coacute

thứ tự khocircng ldquoranh giới thocircng

điệprdquo kecircnh liecircn lạc

TCP điều khiển luồng vagrave tắc nghẽn thiết lập kiacutech thước cửa sổ

caacutec bộ đệm gửi amp nhận

socketdoor

T C Psend buffer

T C Preceive buffer

socketdoor

segm ent

applicationwrites data

applicationreads data

Transport Layer 3-56

TCP cấu truacutec đoạn

port nguồn port điacutech

32 bits

dữ liệu ứng dụng(độ dagravei thay đổi)

số thứ tự

số ACKcửa sổ nhận

con trỏ URGchecksum

FSRPAUheadlen

notused

Tugravey chọn (độ dagravei thay đổi)

URG dữ liệu khẩn cấp(thường khocircng dugraveng)

ACK ACK hợp lệ

PSH push data now(thường khocircng dugraveng)

RST SYN FINthiết lập kết nối

(caacutec lệnh thiết lậpchia nhỏ)

số byte becircn nhận sẵn sagraveng chấp nhận

đếm bởi số bytecủa dữ liệu

Internetchecksum

(giống UDP)

Transport Layer 3-57

Caacutec số thứ tự TCP vagrave ACKCaacutec số thứ tự

dograveng byte ldquođaacutenh sốrdquo byte đầu tiecircn trong dữ liệu của đoạn

caacutec ACK số thứ tự của byte

kế tiếp được chờ đợi từ phiacutea becircn kia

ACK tiacutech lũyHỏi lagravem thế nagraveo becircn

nhận quản lyacute caacutec đoạn khocircng thứ tự Trả lời TCP khocircng

đề cập tugravey thuộc người hiện thực

Host A Host B

Seq=42 ACK=79 data = lsquoCrsquo

Seq=79 ACK=43 data = lsquoCrsquo

Seq=43 ACK=80

UsernhậplsquoCrsquo

host ACKsnhận phản hồi

lsquoCrsquo

host ACKsbaacuteo nhận

lsquoCrsquo phản hồingược lại lsquoCrsquo

timetigravenh huống telnet đơn giản

Transport Layer 3-58

TCP Round Trip Time vagraveTimeout

Hỏi Lagravem thế nagraveo để thiết lập giaacute trị TCP timeout

dagravei hơn RTT khaacutec với RTT

quaacute ngắn timeout sớm truyền lại khocircng

cần thiết quaacute dagravei phản ứng

chậm đối với việc mất maacutet goacutei

Hỏi Lagravem thế nagraveo để thiết lập RTT

SampleRTT thời gian được đo từ khi truyền đoạn đến khi baacuteo nhận ACK lờ đi việc truyền lại

SampleRTT sẽ thay đổi muốn ước lượng RTT ldquomượt hơnrdquo tiacutenh trung bigravenh một số giaacute

trị đo được gần đoacute khocircng chỉ SampleRTT hiện tại

Transport Layer 3-59

TCP Round Trip Time vagrave Timeout

EstimatedRTT = (1- )EstimatedRTT + SampleRTT

giaacute trị đặc trưng = 0125

Transport Layer 3-60

Viacute dụ đaacutenh giaacute RTTRTT gaiacsumassedu to fantasiaeurecomfr

100

150

200

250

300

350

1 8 15 22 29 36 43 50 57 64 71 78 85 92 99 106

time (seconnds)

RTT

(mill

isec

onds

)

SampleRTT Estimated RTT

Transport Layer 3-61

TCP Round Trip Time vagrave Timeout

Thiết lập timeout EstimtedRTT cộng ldquohệ số dự trữ an toagravenrdquo

sự biến thiecircn lớn trong EstimatedRTT -gt hệ số dự trữ an toagraven lớn hơn ước lượng đầu tiecircn về sự biến thiecircn của SampleRTT từ EstimatedRTT

TimeoutInterval = EstimatedRTT + 4DevRTT

DevRTT = (1-)DevRTT + |SampleRTT-EstimatedRTT|

(tiecircu biểu = 025)

Sau đoacute thiết lập timeout interval

Transport Layer 3-62

TCP truyền dữ liệu tin cậy

TCP tạo dịch vụ rdt trecircn dịch vụ khocircng tin cậy IP

caacutec đoạn Pipelined caacutec ACK tiacutech lũy TCP dugraveng bộ định thigrave

truyền lại đơn

Truyền lại được kiacutech hoạt bởi caacutec sự kiện timeout caacutec ack trugraveng lặp

luacutec đầu khảo saacutet caacutec becircn gửi TCP đơn giản lờ đi caacutec ack trugraveng lặp lờ đi điều khiển luồng

điều khiển tắc nghẽn

Transport Layer 3-63

TCP caacutec sự kiệndữ liệu đatilde nhận từ ứng

dụng tạo đoạn với số thứ

tự của noacute số thứ tự lagrave số theo

byte dữ liệu đầu tiecircn khởi động bộ định thigrave

nếu chưa chạy khoảng thời gian hết

hạn TimeOutInterval

timeout gửi lại đoạn nagraveo gacircy

ra timeout khởi động lại bộ định

thigrave Ack đatilde nhận

cập nhật caacutei gigrave sẽ được ACK

khởi động bộ định thigrave nếu coacute caacutec đoạn cograven chờ

Transport Layer 3-64

TCP becircn gửi(đơn giản)

NextSeqNum = InitialSeqNum SendBase = InitialSeqNum

loop (forever) switch(event)

event data received from application above create TCP segment with sequence number NextSeqNum if (timer currently not running) start timer pass segment to IP NextSeqNum = NextSeqNum + length(data)

event timer timeout retransmit not-yet-acknowledged segment with smallest sequence number start timer

event ACK received with ACK field value of y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer

end of loop forever

Chuacute thiacutechbull SendBase-1 byte vừa được ACK tiacutech lũy Viacute dụbull SendBase-1 = 71y= 73 vigrave thế becircn nhận muốn 73+ y gt SendBase vigrave thế dữ liệu mới được chấp nhận

Transport Layer 3-65

TCP caacutec tigravenh huống truyền lại

Host A

Seq=100 20 bytes data

ACK=100

timetimeout sớm

Host B

Seq=92 8 bytes data

ACK=120

Seq=92 8 bytes data

Seq=

92

tim

eout

ACK=120

Host A

Seq=92 8 bytes data

ACK=100

loss

tim

eout

tigravenh huống mất ACK

Host B

X

Seq=92 8 bytes data

ACK=100

time

Seq=

92

tim

eout

SendBase= 100

SendBase= 120

SendBase= 120

Sendbase= 100

Transport Layer 3-66

TCP caacutec tigravenh huống truyền lại (tt)Host A

Seq=92 8 bytes data

ACK=100

loss

tim

eout

Cumulative ACK scenario

Host B

X

Seq=100 20 bytes data

ACK=120

time

SendBase= 120

Transport Layer 3-67

TCP sinh ra ACK [RFC 1122 RFC 2581]

Sự kiện tại becircn nhận

Đoạn đến với đuacuteng số thứ tự mong muốn Tất cả dữ liệu đếnđatilde được ACK

Đoạn đến với đuacuteng số thứ tự mong muốn Một đoạn khaacutec đangchờ ACK

Caacutec đoạn đến khocircng thứ tựlớn hơn số thứ tự đoạn mong muốnCoacute khoảng trống

Đoạn đếnlấp đầy từng phần hoặc toagraven bộkhoảng trống

TCP becircn nhận hagravenh động

ACK trễ Chờ đến 500mscho đoạn kế tiếp Nếu khocircng coacute đoạnkế tiếp gửi ACK

Gửi ngay một ACK tiacutech lũy chấp nhậncho cả caacutec đoạn theo thứ tự

Gửi ngay ACK trugraveng lặp chỉ thị số thứ tựđoạn của byte kế tiếp đang mong chờ

Gửi ngay ACK với điều kiện lagrave đoạnbắt đầu ngay điểm coacute khoảng trống

Transport Layer 3-68

Truyền lại nhanh

Chu kỳ Time-out thường tương đối dagravei độ trễ dagravei trước khi gửi

lại goacutei đatilde mất

Xaacutec nhận caacutec đoạn đatilde mất bằng caacutec ACK trugraveng lặp becircn gửi thường gửi

nhiều đoạn song song Nếu đoạn bị mất sẽ

xảy ra tigravenh trạng giống như nhiều ACK trugraveng nhau

Nếu becircn gửi nhận 3 ACK của cugraveng một dữ liệu noacute cho lagrave đoạn sau dữ liệu đatilde ACK bị mất Truyền lại nhanh gửi

lại đoạn trước khi bộ định thigrave hết hạn

Transport Layer 3-69

sự kiện ACK đatilde nhận với trường lagrave y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer else increment count of dup ACKs received for y if (count of dup ACKs received for y = 3) resend segment with sequence number y

Giải thuật truyền lại nhanh

một ACK trugraveng lặp cho đoạn đatilde được ACK

Truyền lại nhanh

Transport Layer 3-70

Chương 3 Nội dung trigravenh bagravey

31 Caacutec dịch vụ lớp Transport

32 Multiplexing vagrave demultiplexing

33 Vận chuyển khocircng kết nối UDP

34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy

35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối

36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn

37 Điều khiển tắc nghẽn TCP

Transport Layer 3-71

TCP điều khiển luồng

becircn nhận của kết nối TCP coacute một bộ đệm nhận

dịch vụ so trugraveng tốc độ so trugraveng tốc độ gửi với tốc độ nhận của ứng dụng

tiến trigravenh ứng dụng coacute thể chậm tại luacutec đọc bộ đệm

becircn gửi sẽ khocircng lagravem tragraven bộ đệm vigrave truyền quaacute nhiều vagrave

quaacute nhanh

điều khiển luồng

Transport Layer 3-72

TCP điều khiển luồng caacutech lagravem

(Giả sử becircn nhận TCP loại bỏ caacutec đoạn khocircng coacute thứ tự)

dự phograveng trong bộ đệm= RcvWindow

= RcvBuffer-[LastByteRcvd - LastByteRead]

Becircn nhận thocircng baacuteo khoảng dự trữ nhờ giaacute trị RcvWindow trong caacutec đoạn

Becircn gửi hạn chế dữ liệu khocircng được ACK vagraveo RcvWindow bảo đảm bộ đệm nhận

khocircng tragraven

Transport Layer 3-73

Chương 3 Nội dung trigravenh bagravey

31 Caacutec dịch vụ lớp Transport

32 Multiplexing vagrave demultiplexing

33 Vận chuyển khocircng kết nối UDP

34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy

35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối

36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn

37 Điều khiển tắc nghẽn TCP

Transport Layer 3-74

TCP quản lyacute kết nối

Chuacute yacute Becircn gửi vagrave becircn nhận TCP thiết lập ldquokết nốirdquo trước khi trao đổi dữ liệu

khởi tạo caacutec biến TCP caacutec số thứ tự đoạn thocircng tin caacutec bộ đệm điều

khiển luồng (như RcvWindow)

client người khởi xướng kết nối

Socket clientSocket = new Socket(hostnameport

number) server được tiếp xuacutec bởi

client Socket connectionSocket =

welcomeSocketaccept()

3 phương phaacutep bắt tay

Bước 1 client host gửi đoạnTCP SYN đến server xaacutec định số thứ tự khởi đầu khocircng phải dữ liệu

Bước 2 server host nhận SYN trả lời với đoạn SYNACK

server cấp phaacutet caacutec bộ đệm

xaacutec định số thứ tự khởi đầuBước 3 client nhận SYNACK trả

lời với đoạn ACK (coacute thể chứa dữ liệu)

Transport Layer 3-75

TCP quản lyacute kết nối (tt)

Đoacuteng một kết nối

client đoacuteng socket clientSocketclose()

Bước 1 client gửi đoạn điều khiển TCP FIN đến server

Bước 2 server nhận FIN trả lời với ACK Đoacuteng kết nối gửi FIN

client

FIN

server

ACK

ACK

FIN

đoacuteng

đoacuteng

đatilde đoacutengthời g

ian c

hờ

Transport Layer 3-76

TCP quản lyacute kết nối (tt)

Bước 3 client nhận FIN trả lời với ACK

Trong khoảng ldquothời gian chờrdquo ndash sẽ phản hồi với ACK để nhận caacutec FIN

Bước 4 server nhận ACK Kết nối đatilde đoacuteng

Chuacute yacute với một sửa đổi nhỏ coacute thể quản lyacute nhiều FIN đồng thời

client

FIN

server

ACK

ACK

FIN

đang đoacuteng

đang đoacuteng

đatilde đoacuteng

thời g

ian c

hờ

đatilde đoacuteng

Transport Layer 3-77

TCP quản lyacute kết nối (tt)

chu kỳ sống củaTCP client

chu kỳ sống củaTCP server

Transport Layer 3-78

Chương 3 Nội dung trigravenh bagravey

31 Caacutec dịch vụ lớp Transport

32 Multiplexing vagrave demultiplexing

33 Vận chuyển khocircng kết nối UDP

34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy

35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối

36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn

37 Điều khiển tắc nghẽn TCP

Transport Layer 3-79

Caacutec nguyecircn lyacute điều khiển tắc nghẽn

Tắc nghẽn ldquoquaacute nhiều nguồn gửi quaacute nhanh vagrave quaacute nhiều

dữ liệu đến mạngrdquo khaacutec với điều khiển luồng caacutec biểu hiện

caacutec goacutei bị mất (tragraven bộ đệm tại caacutec router) caacutec độ trễ quaacute dagravei (xếp hagraveng trong bộ đệm

của router) lagrave 1 trong 10 vấn đề nan giải nhất

Transport Layer 3-80

Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 1

2 gửi 2 nhận 1 router caacutec bộ

đệm khocircng giới hạn

khocircng coacute truyền lại

caacutec độ trễ lớn hơn khi tắc nghẽn

năng suất coacute thể đạt tối đa

unlimited shared output link buffers

Host Ain original data

Host B

out

Transport Layer 3-81

Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 2

1 router caacutec bộ đệm coacute giới hạn becircn gửi truyền lại caacutec goacutei đatilde mất

chia sẻ vocirc hạncaacutec bộ đệm ouput

Host A in dữ liệu gốc

Host B

out

in dữ liệu gốc cugraveng với dữ liệu truyền lại

Transport Layer 3-82

Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 2 luocircn luocircn

truyền lại ldquohoagraven toagravenrdquo chỉ khi mất maacutet

truyền lại vigrave trễ (khocircng mất) lagravem cho lớn hơn với cugraveng

in

out

=

in

out

gt

in

out

ldquocaacutec chi phiacuterdquo của tắc nghẽn nhiều việc (truyền lại) caacutec truyền lại khocircng cần thiết liecircn kết nhiều bản sao của

goacutei

R2

R2in

ou

t

b

R2

R2in

ou

t

a

R2

R2in

ou

t

c

R4

R3

Transport Layer 3-83

Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 3 4 người gửi caacutec đường qua nhiều hop timeouttruyền lại

in

Hỏi điều gigrave xảy ra nếu vagrave tăng lecircn

in

chia sẻ vocirc hạncaacutec bộ đệm ouput

Host Ain dữ liệu gốc

Host B

out

in dữ liệu gốc cugraveng với dữ liệu truyền lại

Transport Layer 3-84

Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 3

ldquochi phiacuterdquo khaacutec của tắc nghẽn khi caacutec goacutei bị bỏ bất kỳ ldquokhả năng truyền

upstream dugraveng cho goacutei đoacute sẽ bị latildeng phiacuterdquo

Host A

Host B

o

u

t

Transport Layer 3-85

Caacutec caacutech tiếp cận đối với điều khiển tắc nghẽn

điều khiển tắc nghẽn end-end

khocircng coacute phản hồi rotilde ragraveng từ mạng

tắc nghẽn được suy ra từ việc quan saacutet caacutec hệ thống đầu cuối coacute mất maacutet trễ

tiếp cận được quản lyacute bởi TCP

điều khiển tắc nghẽn coacute sự hỗ trợ của mạng

caacutec router cung cấp phản hồi về caacutec hệ thống đầu cuối 1 bit duy nhất chỉ thị

tắc nghẽn (SNA DECbit TCPIP ECN ATM)

tốc độ sẽ gửi được xaacutec định rotilde ragraveng

2 caacutech

Transport Layer 3-86

Viacute dụ điều khiển tắc nghẽn ATM ABR

ABR tốc độ bit sẵn sagraveng

ldquodịch vụ mềm dẻordquo nếu đường gửi ldquochưa

hếtrdquo becircn gửi sẽ dugraveng

băng thocircng sẵn sagraveng nếu đường gửi tắc

nghẽn becircn gửi điều tiết với

tốc độ tối thiểu

RM (resource management)

gửi bởi becircn gửi rải raacutec với caacutec ocirc dữ liệu

caacutec bit trong ocirc thiết lập bởi caacutec switch bit NI khocircng tăng tốc độ

(tắc nghẽn nhẹ) bit CI tắc nghẽn rotilde rệt

Caacutec ocirc RM được trả về becircn gửi từ becircn nhận với nguyecircn vẹn caacutec bit

Transport Layer 3-87

Viacute dụ điều khiển tắc nghẽn ATM ABR

trường 2-byte ER trong ocirc RM switch đatilde tắc nghẽn coacute thể coacute giaacute trị ER thấp hơn trong ocirc tốc độ gửi do đoacute coacute thể được hỗ trợ tối đa trecircn đường

EFCI bit trong caacutec ocirc dữ liệu được cagravei giaacute trị 1 trong switch đatilde tắc nghẽn nếu ocirc dữ liệu đứng trước ocirc RM coacute cagravei EFCI becircn gửi sẽ cagravei

bit CI trong ocirc RM trả về

Transport Layer 3-88

Chương 3 Nội dung trigravenh bagravey

31 Caacutec dịch vụ lớp Transport

32 Multiplexing vagrave demultiplexing

33 Vận chuyển khocircng kết nối UDP

34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy

35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối

36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn

37 Điều khiển tắc nghẽn TCP

Transport Layer 3-89

TCP điều khiển tắc nghẽn additive tăng lecircn multiplicative giảm xuống

8 Kbytes

16 Kbytes

24 Kbytes

time

congestionwindow

Caacutech tiếp cận tăng tốc độ truyền (kiacutech thước cửa sổ) tigravem khả năng băng thocircng coacute thể cho đến khi coacute mất maacutet xảy ra additive tăng lecircn tăng CongWin bởi 1 MSS

mỗi RTT cho đến khi coacute mất maacutet xảy ra multiplicative giảm xuống bỏ CongWin trong

nửa giai đoạn sau khi mất maacutet

timekiacutech

thư

ớc

cửa

sổ

tắc

nghẽ

n

Tigravem kiếm băng thocircng

Transport Layer 3-90

TCP điều khiển tắc nghẽn chi tiết

becircn gửi hạn chế việc truyền LastByteSent-LastByteAcked

CongWin Cocircng thức

CongWin thay đổi chức năng lagrave nhận biết tắc nghẽn trecircn mạng

Lagravem thế nagraveo becircn gửi nhận biết tắc nghẽn

mất maacutet xảy ra = timeout hoặc 3 ack trugraveng lặp

becircn gửi giảm tốc độ (CongWin) sau khi mất maacutet xảy ra

3 cơ chế AIMD khởi động chậm thận trọng sau khi coacute

caacutec sự kiện timeout

tốc độ = CongWin

RTT Bytess

Transport Layer 3-91

TCP khởi động chậm

Khi kết nối bắt đầu CongWin = 1 MSS Viacute dụ MSS = 500 bytes

amp RTT = 200 ms tốc độ khởi tạo = 20

kbps

băng thocircng sẵn sagraveng coacute thể gtgt MSSRTT mong muốn nhanh

choacuteng tăng tốc lecircn tốc độ coacute thể đaacutep ứng

Khi kết nối bắt đầu tăng tốc lecircn rất nhanh cho đến khi sự cố mất maacutet xảy ra đầu tiecircn

Transport Layer 3-92

TCP khởi động chậm (tt)

Khi kết nối bắt đầu tăng tốc lecircn rất nhanh cho đến khi sự cố mất maacutet xảy ra đầu tiecircn nhacircn đocirci CongWin mỗi

RTT hoagraven thagravenh nhờ tăng CongWin ứng với mỗi ACK đatilde nhận

Tổng kết tốc độ khởi đầu lagrave chậm nhưng sau đoacute tăng tốc rất nhanh

Host A

1 đoạn

RTT

Host B

thời gian

2 đoạn

4 đoạn

Transport Layer 3-93

Tinh chếHỏi Khi nagraveo việc tăng

tốc trở thagravenh tuyến tiacutenh

Trả lời Khi CongWin đạt đến 12 giaacute trị của noacute trước khi timeout

Hiện thực Ngưỡng thay đổi Tại thời điểm coacute sự cố

mất maacutet ngưỡng được cagravei giaacute trị bằng frac12 của CongWin ngay trước đoacute

Transport Layer 3-94

Tinh chế nhận biết mất maacutet

Sau 3 ACK trugraveng lặp CongWin sẽ giảm 12 kiacutech thước cửa sổ

tăng tuyến tiacutenh nhưng sau sự cố

timeout CongWin thay giaacute trị

bằng 1 MSS kiacutech thước cửa sổ

tăng cấp lũy thừa khi đến một ngưỡng

thigrave tăng tuyến tiacutenh

3 ACK trugraveng nhau chỉ ra khả năng truyền của mạng timeout chỉ thị ldquonhiều cảnh baacuteordquo về tigravenh huống tắc nghẽn

Nguyecircn lyacute

Transport Layer 3-95

Tổng kết TCP điều khiển tắc nghẽn

Khi CongWin dưới Threshold becircn gửi đang trong giai đoạn khởi động chậm kiacutech thước cửa sổ tăng nhanh theo cấp lũy thừa

Khi CongWin trecircn Threshold becircn gửi đang trong giai đoạn traacutenh tắc nghẽn kiacutech thước cửa sổ tăng nhanh theo cấp tuyến tiacutenh

Khi coacute 3 ACK trugraveng lặp xảy ra Threshold = CongWin2 vagrave CongWin = Threshold

Khi timeout xảy ra Threshold = CongWin2 vagrave CongWin = 1 MSS

Transport Layer 3-96

TCP điều khiển tắc nghẽn becircn gửi

Trạng thaacutei Sự kiện TCP becircn gửi hagravenh động Diễn giải

Slow Start (SS)-Khởi động chậm

ACK baacuteo nhận cho dữ liệu chưa ACK trước đoacute

CongWin = CongWin + MSS If (CongWin gt Threshold) cagravei đặt trạng thaacutei ldquoTraacutenh tắc nghẽnrdquo

Hậu quả lagravem tăng gấp đocirci CongWin mỗi RTT

CongestionAvoidance (CA) ndashTraacutenh tắc nghẽn

ACK baacuteo nhận cho dữ liệu chưa ACK trước đoacute

CongWin = CongWin+MSS (MSSCongWin)

Additive tăng lecircn lagravem tăng CongWin lecircn 1 MSS mỗi RTT

SS hoặc CA Sự cố mất maacutet xảy ra khi thấy coacute 3 ACK trugraveng lặp

Threshold = CongWin2 CongWin = Thresholdcagravei đặt trạng thaacutei ldquoTraacutenh tắc nghẽnrdquo

Khocirci phục nhanh hiện thực giảm xuống multiplicative CongWin sẽ khocircng giảm xuống dưới 1 MSS

SS hoặc CA Timeout Threshold = CongWin2 CongWin = 1 MSScagravei đặt trạng thaacutei ldquoKhởi động chậmrdquo

Vagraveo chế độ ldquoKhởi động chậmrdquo

SS hoặc CA ACK trugraveng lặp

Đếm ACK tăng lecircn cho đoạn vừa được ACK

CongWin vagrave Threshold khocircng thay đổi

Transport Layer 3-97

TCP throughput

Throughout trung bigravenh của TCP biểu diễn qua kiacutech thước của sổ vagrave RTT Bỏ qua trạng thaacutei ldquoKhởi động chậmrdquo

Cho W lagrave kiacutech thước cửa sổ khi coacute mất maacutet xảy ra

Khi kiacutech thước cửa sổ = W lưu lượng = WRTT

Chỉ ngay sau khi mất maacutet cửa sổ giảm xuống = W2 lưu lượng = W2RTT

throughout trung bigravenh 075 WRTT

Transport Layer 3-98

TCP tương lai

Viacute dụ caacutec đoạn dagravei 1500 byte RTT 100ms lưu lượng 10 Gbps

Kiacutech thước cửa sổ yecircu cầu W = 83333 đoạn trecircn đường truyền

Lưu lượng trong caacutec trường hợp mất maacutet

L = 210-10

Phiecircn bản mới của TCP dagravenh cho nhu cầu tốc độ cao

LRTT

MSS221

Transport Layer 3-99

Mục tiecircu nếu K phiecircn lagravem việc TCP chia sẻ kết nối cổ chai của băng thocircng lagrave R mỗi phiecircn coacute tốc độ trung bigravenh lagrave RK

TCP kết nối 1

router cổ chaikhả năng R

TCP kết nối 2

TCP tiacutenh cocircng bằng

Transport Layer 3-100

Tại sao phải TCP cocircng bằng

2 phiecircn lagravem việc cạnh tranh nhau Additive tăng lưu lượng tăng multiplicative giảm lưu lượng tương xứng

R

R

chia sẻ băng thocircng bằng nhau

Connection 1 throughputConnect

ion 2

th

roughput

traacutenh tắc nghẽn additive tăng lecircnmất maacutet giảm cửa sổ bằng 12

traacutenh tắc nghẽn additive tăng lecircnmất maacutet giảm cửa sổ bằng 12

Transport Layer 3-101

TCP tiacutenh cocircng bằng (tt)

Tiacutenh cocircng bằng amp UDP nhiều ứng dụng

thường khocircng dugraveng TCP khocircng muốn tốc độ bị

điều tiết do điều khiển tắc nghẽn

Thay bằng dugraveng UDP truyền audiovideo với

tốc độ ổn định chịu được mất maacutet

Nghiecircn cứu giao thức thacircn thiện với TCP

Tiacutenh cocircng bằng amp caacutec kết nối TCP song song

khocircng coacute gigrave ngăn cản việc ứng dụng mở caacutec kết nối song song giữa 2 host

Trigravenh duyệt Web lagravem giống như thế

Viacute dụ tốc độ R hỗ trợ 9 kết nối ứng dụng mới yecircu cầu 1

TCP coacute tốc độ R10 ứng dụng mới yecircu cầu 11

TCP coacute tốc độ R2

Transport Layer 3-102

Mocirc higravenh trễ

Hỏi Mất bao lacircu để nhận 1 đối tượng từ Web server sau khi gửi yecircu cầu

Bỏ qua tắc nghẽn trễ bị ảnh hưởng bởi

thiết lập kết nối TCP trễ truyền dữ liệu khởi động chậm

Notation caacutec giả định Giả sử một kết nối giữa

client vagrave server coacute tốc độ R

S MSS (bits) O kiacutech thước đối tượng

(bits) khocircng truyền lại (khocircng

mất maacutet khocircng hỏng)

Kiacutech thước cửa sổ Giả định 1 cửa sổ tắc

nghẽn cố định coacute W đoạn Sau đoacute cửa sổ thay đổi

mocirc higravenh khởi động chậm

Transport Layer 3-103

Cửa sổ tắc nghẽn cố định (1)

Trường hợp đầu tiecircnWSR gt RTT + SR cho

đoạn đầu tiecircn trong cửa sổ trả về trước khi cửa sổ dữ liệu gửi ACK

trễ = 2RTT + OR

Transport Layer 3-104

Cửa sổ tắc nghẽn cố định (2)

Trường hợp thứ hai WSR lt RTT + SR sent

chờ cho ACK sau khi gửi dữ liệu

trễ = 2RTT + OR+ (K-1)[SR + RTT - WSR]

Transport Layer 3-105

TCP Mocirc higravenh trễ Khởi động chậm (1)

Bacircy giờ giả sử kiacutech thước cửa sổ tăng lecircn tugravey theo quaacute trigravenh khởi động chậm

Độ trễ của một đối tượng sẽ lagrave

R

S

R

SRTTP

R

ORTTLatency P )12(2

trong đoacute P lagrave số lần TCP rảnh ở tại server

1min KQP

- trong đoacute Q lagrave số lần server rảnh nếu đối tượng đatilde khởi tạo kiacutech thước

- vagrave K lagrave số lượng cửa sổ bao trugravem đối tượng

Transport Layer 3-106

TCP Mocirc higravenh trễ Khởi động chậm (2)

RTT

initia te TCPconnection

requestobject

first w indow= S R

second w indow= 2S R

third w indow= 4S R

fourth w indow= 8S R

com pletetransm issionobject

delivered

tim e atc lient

tim e atserver

Viacute dụbull OS = 15 đoạnbull K = 4 cửa sổbull Q = 2bull P = minK-1Q = 2

Server rảnh P=2 lần

Caacutec thagravenh phần trễbull 2 RTT dagravenh cho thiết lập kết nối vagrave yecircu cầubull OR để truyền đối tượngbullthời gian server rảnh bởi vigrave khởi động chậm

Server rảnh P = minK-1Q lần

Transport Layer 3-107

TCP Mocirc higravenh trễ(3)

R

S

R

SRTTPRTT

R

O

R

SRTT

R

SRTT

R

O

idleTimeRTTR

O

P

kP

k

P

pp

)12(][2

]2[2

2delay

1

1

1

th window after the timeidle 2 1 kR

SRTT

R

S k

ementacknowledg receivesserver until

segment send tostartsserver when from time RTTR

S

window kth the transmit totime2 1

R

Sk

RTT

initia te TCPconnection

requestobject

first w indow= S R

second w indow= 2S R

third w indow= 4S R

fourth w indow= 8S R

com pletetransm issionobject

delivered

tim e atc lient

tim e atserver

Transport Layer 3-108

TCP Mocirc higravenh trễ (4)

)1(log

)1(logmin

12min

222min

222min

2

2

110

110

S

OS

Okk

S

Ok

SOk

OSSSkK

k

k

k

caacutech tiacutenh toaacuten Q tương tự (xem HW)

K = số lượng cửa sổ bao trugravem đối tượngLagravem thế nagraveo tiacutenh được K

Transport Layer 3-109

HTTP Mocirc higravenh Giả sử trang Web chứa

1 trang HTML (kiacutech thước O bits) M higravenh ảnh (mỗi caacutei kiacutech thướcO bits)

HTTP khocircng bền vững M+1 TCP kết nối Thời gian đaacutep ứng = (M+1)OR + (M+1)2RTT + tổng số thời

gian rảnh HTTP bền vững

2 RTT để yecircu cầu vagrave nhận file HTML 1 RTT để yecircu cầu vagrave nhận M higravenh ảnh Thời gian đaacutep ứng = (M+1)OR + 3RTT + tổng số thời gian

rảnh HTTP khocircng bền vững với X kết nối song song

Giả sử MX lagrave số nguyecircn 1 TCP kết nối cho file MX thiết lập caacutec kết nối song song cho caacutec higravenh ảnh Thời gian đaacutep ứng = (M+1)OR + (MX + 1)2RTT + tổng số

thời gian rảnh

Transport Layer 3-110

02468

101214161820

28Kbps

100Kbps

1Mbps

10Mbps

non-persistent

persistent

parallel non-persistent

HTTP thời gian đaacutep ứng (giacircy)RTT = 100 msec O = 5 Kbytes M=10 vagrave X=5

Với băng thocircng thấp thời gian kết nối amp đaacutep ứng trội hơn thời gian truyền

Caacutec kết nối bền vững chỉ cho sự cải thiện khocircng đaacuteng kể trecircn caacutec kết nối song song

Transport Layer 3-111

0

10

20

30

40

50

60

70

28Kbps

100Kbps

1Mbps

10Mbps

non-persistent

persistent

parallel non-persistent

HTTP thời gian đaacutep ứng (giacircy)

RTT =1 sec O = 5 Kbytes M=10 and X=5

Với RTT lớn hơn thời gian đaacutep ứng trội hơn thời gian trễ chờ thiết lập kết nốiTCP amp khởi động chậm Caacutec kết nối bền vững bacircy giờ cho thấy cải thiện rotilde rệt đặc biệtvới caacutec mạng băng thocircng cao

Transport Layer 3-112

Chương 3 Tổng kết caacutec nguyecircn lyacute của caacutec

dịch vụ lớp transport multiplexing

demultiplexing truyền dữ liệu tin cậy điều khiển luồng điều khiển tắc nghẽn

khởi tạo vagrave hiện thực trong Internet UDP TCP

Tiếp theo nghiecircn cứu xong

caacutec vấn đề ldquongoagravei biecircnrdquo (caacutec lớp application transport)

chuẩn bị vagraveo phần ldquolotildeirdquo của mạng

  • Slide 1
  • Chương 3 Lớp Transport
  • Chương 3 Nội dung trigravenh bagravey
  • Caacutec dịch vụ vagrave giao thức Transport
  • Lớp Transport với lớp network
  • Caacutec giao thức lớp transport trecircn Internet
  • Slide 7
  • Multiplexingdemultiplexing
  • Demultiplexing lagravem việc như thế nagraveo
  • Demultiplexing khocircng kết nối
  • Demultiplexing khocircng kết nối (tiếp)
  • Demultiplexing hướng kết nối
  • Demultiplexing hướng kết nối (tiếp)
  • Demultiplexing hướng kết nối Threaded Web Server
  • Slide 15
  • UDP User Datagram Protocol [RFC 768]
  • UDP (tt)
  • UDP checksum
  • Viacute dụ Checksum
  • Slide 20
  • Caacutec nguyecircn lyacute truyền dữ liệu tin cậy
  • Slide 22
  • Slide 23
  • Truyền dữ liệu tin cậy
  • Slide 25
  • Rdt10 truyền dữ liệu tin cậy trecircn 1 kecircnh truyền tin cậy
  • Rdt20 kecircnh với caacutec lỗi
  • rdt20 đặc tả FSM
  • rdt20 hoạt động khi khocircng lỗi
  • rdt20 hoạt động khi coacute lỗi
  • rdt20 coacute lỗ hổng nghiecircm trọng
  • rdt21 người gửi quản lyacute caacutec ACKNAK bị hỏng
  • Slide 33
  • rdt21 thảo luận
  • rdt22 một giao thức khocircng cần NAK
  • rdt22 gửi nhận caacutec mảnh
  • rdt30 caacutec kecircnh với lỗi vagrave mất maacutet
  • rdt30 gửi
  • hagravenh động của rdt30
  • Slide 40
  • Hiệu suất của rdt30
  • rdt30 hoạt động dừng-vagrave-chờ
  • Caacutec giao thức Pipelined
  • Pipelining độ khả dụng tăng
  • Go-Back-N
  • GBN becircn gửi mở rộng FSM
  • GBN becircn nhận mở rộng FSM
  • GBN hoạt động
  • Lặp coacute lựa chọn
  • Lặp coacute lựa chọn caacutec cửa sổ gửi nhận
  • Slide 51
  • Hoạt động của lặp coacute lựa chọn
  • Lặp coacute lựa chọn tigravenh trạng khoacute giải quyết
  • Slide 54
  • TCP Tổng quan RFCs 793 1122 1323 2018 2581
  • TCP cấu truacutec đoạn
  • Caacutec số thứ tự TCP vagrave ACK
  • TCP Round Trip Time vagraveTimeout
  • TCP Round Trip Time vagrave Timeout
  • Viacute dụ đaacutenh giaacute RTT
  • Slide 61
  • TCP truyền dữ liệu tin cậy
  • TCP caacutec sự kiện
  • TCP becircn gửi (đơn giản)
  • TCP caacutec tigravenh huống truyền lại
  • TCP caacutec tigravenh huống truyền lại (tt)
  • TCP sinh ra ACK [RFC 1122 RFC 2581]
  • Truyền lại nhanh
  • Giải thuật truyền lại nhanh
  • Slide 70
  • TCP điều khiển luồng
  • TCP điều khiển luồng caacutech lagravem
  • Slide 73
  • TCP quản lyacute kết nối
  • TCP quản lyacute kết nối (tt)
  • Slide 76
  • Slide 77
  • Slide 78
  • Caacutec nguyecircn lyacute điều khiển tắc nghẽn
  • Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 1
  • Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 2
  • Slide 82
  • Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 3
  • Slide 84
  • Caacutec caacutech tiếp cận đối với điều khiển tắc nghẽn
  • Viacute dụ điều khiển tắc nghẽn ATM ABR
  • Slide 87
  • Slide 88
  • TCP điều khiển tắc nghẽn additive tăng lecircn multiplicative giảm xuống
  • TCP điều khiển tắc nghẽn chi tiết
  • TCP khởi động chậm
  • TCP khởi động chậm (tt)
  • Tinh chế
  • Tinh chế nhận biết mất maacutet
  • Tổng kết TCP điều khiển tắc nghẽn
  • TCP điều khiển tắc nghẽn becircn gửi
  • TCP throughput
  • TCP tương lai
  • TCP tiacutenh cocircng bằng
  • Tại sao phải TCP cocircng bằng
  • TCP tiacutenh cocircng bằng (tt)
  • Mocirc higravenh trễ
  • Cửa sổ tắc nghẽn cố định (1)
  • Cửa sổ tắc nghẽn cố định (2)
  • TCP Mocirc higravenh trễ Khởi động chậm (1)
  • TCP Mocirc higravenh trễ Khởi động chậm (2)
  • TCP Mocirc higravenh trễ(3)
  • TCP Mocirc higravenh trễ (4)
  • HTTP Mocirc higravenh
  • Slide 110
  • Slide 111
  • Chương 3 Tổng kết

Transport Layer 3-11

Demultiplexing khocircng kết nối (tiếp)

DatagramSocket serverSocket = new DatagramSocket(6428)

ClientIPB

P2

client IP A

P1P1P3

serverIP C

SP 6428

DP 9157

SP 9157

DP 6428

SP 6428

DP 5775

SP 5775

DP 6428

SP cung cấp ldquođịa chỉ trở vềrdquo

Transport Layer 3-12

Demultiplexing hướng kết nối

TCP socket được xaacutec định bởi bộ 4 địa chỉ IP nguồn số port nguồn địa chỉ IP điacutech số port điacutech

host nhận dugraveng cả 4 giaacute trị trecircn để điều hướng đoạn đến socket thiacutech hợp

Host server coacute thể hỗ trợ nhiều TCP socket đồng thời mỗi socket được xaacutec

định bởi bộ 4 của noacute

Web server coacute caacutec socket khaacutec nhau cho mỗi kết nối từ client kết nối HTTP khocircng bền

vững sẽ coacute socket khaacutec nhau cho mỗi yecircu cầu

Transport Layer 3-13

Demultiplexing hướng kết nối (tiếp)

ClientIPB

P1

client IP A

P1P2P4

serverIP C

SP 9157

DP 80

SP 9157

DP 80

P5 P6 P3

D-IPCS-IP A

D-IPC

S-IP B

SP 5775

DP 80

D-IPCS-IP B

Transport Layer 3-14

Demultiplexing hướng kết nối Threaded Web Server

ClientIPB

P1

client IP A

P1P2

serverIP C

SP 9157

DP 80

SP 9157

DP 80

P4 P3

D-IPCS-IP A

D-IPC

S-IP B

SP 5775

DP 80

D-IPCS-IP B

Transport Layer 3-15

Chương 3 Nội dung trigravenh bagravey

31 Caacutec dịch vụ lớp Transport

32 Multiplexing vagrave demultiplexing

33 Vận chuyển khocircng kết nối UDP

34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy

35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối

36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn

37 Điều khiển tắc nghẽn TCP

Transport Layer 3-16

UDP User Datagram Protocol [RFC 768]

giao thức Internet transport ldquođơn giản hoacuteardquo

dịch vụ ldquobest effortrdquo caacutec đoạn UDP coacute thể mất maacutet vận chuyển khocircng thứ

tự đến ứng dụng connectionless (khocircng

kết nối) khocircng bắt tay giữa

người nhận vagrave người gửi UDP

mỗi đoạn UDP được quản lyacute độc lập

Coacute UDP để lagravem gigrave khocircng thiết lập kết nối

(giuacutep coacute thể thecircm delay) đơn giản khocircng trạng

thaacutei kết nối tại nơi gửi nơi nhận

header của đoạn nhỏ khocircng điều khiển tắc

nghẽn UDP coacute thể gửi nhanh nhất theo mong muốn

Transport Layer 3-17

UDP (tt)

thường dugraveng cho caacutec ứng dụng streaming multimedia chịu mất maacutet cảm nhận tốc độ

ngoagravei ra UDP dugraveng DNS SNMP

truyền tin cậy trecircn UDP thecircm khả năng nagravey tại lớp application sửa lỗi

source port dest port

32 bits

dữ liệu ứng dụng

(thocircng điệp)

dạng thức đoạn UDP

length checksumĐộ dagravei

đoạn UDPbao gồm cả

header

Transport Layer 3-18

UDP checksum

Người gửi đối xử caacutec nội dung

đoạn như một chuỗi caacutec số nguyecircn 16-bit

checksum bổ sung(tổng bugrave 1) của caacutec nội dung đoạn

đặt giaacute trị checksum vagraveo trường UDP checksum

Người nhận tiacutenh toaacuten checksum của

đoạn đatilde nhận kiểm tra giaacute trị trecircn coacute bằng

với giaacute trị trong trường checksum NO ndash coacute lỗi xảy ra YES ndash khocircng coacute lỗi Nhưng coacute thể cograven lỗi

khaacutec nữa Xem tiếp phần sau hellip

Mục tiecircu kiểm tra caacutec ldquolỗirdquo (caacutec bit cờ đatilde bật lecircn) trong caacutec đoạn đatilde truyền

Transport Layer 3-19

Viacute dụ Checksum Lưu yacute

Khi cộng caacutec số một bit nhớ ở phiacutea cao nhất coacute thể sẽ phải thecircm vagraveo kết quả

Viacute dụ cộng hai số nguyecircn 16-bit

1 1 1 1 0 0 1 1 0 0 1 1 0 0 1 1 01 1 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1

1 1 0 1 1 1 0 1 1 1 0 1 1 1 0 1 1

1 1 0 1 1 1 0 1 1 1 0 1 1 1 1 0 01 0 1 0 0 0 1 0 0 0 1 0 0 0 0 1 1

bit dư

tổngchecksum

Transport Layer 3-20

Chương 3 Nội dung trigravenh bagravey

31 Caacutec dịch vụ lớp Transport

32 Multiplexing vagrave demultiplexing

33 Vận chuyển khocircng kết nối UDP

34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy

35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối

36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn

37 Điều khiển tắc nghẽn TCP

Transport Layer 3-21

Caacutec nguyecircn lyacute truyền dữ liệu tin cậy quan trọng trong caacutec lớp application transport link lagrave danh saacutech 10 vấn đề quan trọng nhất của mạng

caacutec đặc thugrave của kecircnh truyền khocircng tin cậy sẽ xaacutec định sự phức tạp của giao thức truyền dữ liệu data transfer protocol (rdt)

Transport Layer 3-22

Caacutec nguyecircn lyacute truyền dữ liệu tin cậy quan trọng trong caacutec lớp application transport link lagrave danh saacutech 10 vấn đề quan trọng nhất của mạng

caacutec đặc thugrave của kecircnh truyền khocircng tin cậy sẽ xaacutec định sự phức tạp của giao thức truyền dữ liệu data transfer protocol (rdt)

Transport Layer 3-23

Caacutec nguyecircn lyacute truyền dữ liệu tin cậy quan trọng trong caacutec lớp application transport link lagrave danh saacutech 10 vấn đề quan trọng nhất của mạng

caacutec đặc thugrave của kecircnh truyền khocircng tin cậy sẽ xaacutec định sự phức tạp của giao thức truyền dữ liệu data transfer protocol (rdt)

Transport Layer 3-24

Truyền dữ liệu tin cậy

sendside

receiveside

rdt_send() được gọi bởi lớp app Chuyển dữ liệu cần truyền

đến lớp cao hơn becircn nhận

udt_send() được gọi bởi rdt để truyền caacutec goacutei trecircn kecircnh khocircng tin cậy đến nơi

nhận

rdt_rcv() được gọi khi goacutei đến kecircnh becircn nhận

deliver_data() được gọi bởi rdt để truyền dữ liệu

đến lớp cao hơn

Transport Layer 3-25

Truyền dữ liệu tin cậy

Sẽ chỉ xem xeacutet truyền dữ liệu theo 1 hướng duy

nhất nhưng điều khiển luồng thocircng tin sẽ theo cả 2

chiều

dugraveng maacutey trạng thaacutei hữu hạn (finite state machines-FSM) để xaacutec định người gửi người nhận

trthaacutei1

trthaacutei2

sự kiện gacircy ra trạng thaacutei truyềncaacutec hagravenh động xảy ra khi truyền

trạng thaacutei khi ở ldquotrạng thaacuteirdquo nagravey thigrave

trạng thaacutei kế tiếp duy nhất được xaacutec định bởi sự kiện kế

tiếp

sự kiệncaacutec hagravenh động

Transport Layer 3-26

Rdt10 truyền dữ liệu tin cậy trecircn 1 kecircnh truyền tin cậy

kecircnh ưu tiecircn tin cậy hoagraven toagraven khocircng coacute caacutec lỗi khocircng mất maacutet caacutec goacutei

caacutec FSM phacircn biệt cho người gửi người nhận người gửi gửi dữ liệu vagraveo kecircnh ưu tiecircn người nhận nhận dữ liệu từ kecircnh ưu tiecircn

chờ gọi từ lớp trecircn packet = make_pkt(data)

udt_send(packet)

rdt_send(data)

extract (packetdata)deliver_data(data)

chờ gọi từ lớp dưới

rdt_rcv(packet)

người gửi người nhận

Transport Layer 3-27

Rdt20 kecircnh với caacutec lỗi

kecircnh ưu tiecircn coacute thể bật lecircn một số bit trong goacutei checksum để kiểm tra caacutec lỗi

Hỏi lagravem sao khocirci phục caacutec lỗi acknowledgements (ACKs) becircn nhận rotilde ragraveng thocircng

baacuteo cho becircn gửi rằng quaacute trigravenh nhận goacutei tốt negative acknowledgements (NAKs) becircn nhận rotilde ragraveng

thocircng baacuteo cho becircn gửi rằng quaacute trigravenh nhận goacutei coacute lỗi người gửi gửi lại goacutei nagraveo được xaacutec nhận lagrave NAK

caacutec cơ chế mới trong rdt20 (sau rdt10) kiểm tra lỗi nhận phản hồi caacutec thocircng điệp điều khiển (ACKNAK)

becircn nhận becircn gửi

Transport Layer 3-28

rdt20 đặc tả FSM

chờ gọi từ lớp trecircn

snkpkt = make_pkt(data checksum)udt_send(sndpkt)

extract(rcvpktdata)deliver_data(data)udt_send(ACK)

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)

rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp isNAK(rcvpkt)

udt_send(NAK)

rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)

chờ ACK hoặc NAK

chờ gọi từ lớp dưới

người gửi

người nhậnrdt_send(data)

Transport Layer 3-29

rdt20 hoạt động khi khocircng lỗi

chờ gọi từ lớp dưới

snkpkt = make_pkt(data checksum)udt_send(sndpkt)

extract(rcvpktdata)deliver_data(data)udt_send(ACK)

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)

rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp isNAK(rcvpkt)

udt_send(NAK)

rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)

chờ ACK hoặc NAK

chờ gọi từ lớp dưới

rdt_send(data)

Transport Layer 3-30

rdt20 hoạt động khi coacute lỗi

chờ gọi từ lớp dưới

snkpkt = make_pkt(data checksum)udt_send(sndpkt)

extract(rcvpktdata)deliver_data(data)udt_send(ACK)

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)

rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp isNAK(rcvpkt)

udt_send(NAK)

rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)

chờ ACK hoặc NAK

chờ gọi từ lớp dưới

rdt_send(data)

Transport Layer 3-31

rdt20 coacute lỗ hổng nghiecircm trọngĐiều gigrave xảy ra nếu

ACKNAK bị hỏng người gửi khocircng biết điều

gigrave đatilde xảy ra tại becircn nhận

khocircng thể đơn phương truyền lại khả năng trugraveng lặp

Quản lyacute trugraveng lặp người gửi truyền lại goacutei

hiện tại nếu ACKNAK bị hỏng

người gửi thecircm số thứ tự vagraveo mỗi goacutei

người nhận hủy (khocircng nhận) goacutei trugraveng lặp

Người gửi gửi 1 goacutei sau đoacute dừng lại chờ phản hồitừ người nhận

dừng vagrave chờ

Transport Layer 3-32

rdt21 người gửi quản lyacute caacutec ACKNAK bị hỏng

chờ gọi 0 từ lớp trecircn

sndpkt = make_pkt(0 data checksum)udt_send(sndpkt)

rdt_send(data)

chờ ACK hoặc NAK

0 udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) ||isNAK(rcvpkt) )

sndpkt = make_pkt(1 data checksum)udt_send(sndpkt)

rdt_send(data)

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) ||isNAK(rcvpkt) )

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt)

chờ gọi 1 từ lớp trecircn

chờ ACK hoặc NAK

1

Transport Layer 3-33

rdt21 người gửi quản lyacute caacutec ACKNAK bị hỏng

chờ 0 từ dưới

sndpkt = make_pkt(NAK chksum)udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp not corrupt(rcvpkt) ampamp has_seq0(rcvpkt)

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp has_seq1(rcvpkt)

extract(rcvpktdata)deliver_data(data)sndpkt = make_pkt(ACK chksum)udt_send(sndpkt)

chờ 1 từ dưới

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp has_seq0(rcvpkt)

extract(rcvpktdata)deliver_data(data)sndpkt = make_pkt(ACK chksum)udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp (corrupt(rcvpkt)

sndpkt = make_pkt(ACK chksum)udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp not corrupt(rcvpkt) ampamp has_seq1(rcvpkt)

rdt_rcv(rcvpkt) ampamp (corrupt(rcvpkt)

sndpkt = make_pkt(ACK chksum)udt_send(sndpkt)

sndpkt = make_pkt(NAK chksum)udt_send(sndpkt)

Transport Layer 3-34

rdt21 thảo luận

người gửi số thứ tự thecircm vagraveo

goacutei chỉ cần hai số thứ tự

(01) lagrave đủ Tại sao phải kiểm tra nếu việc

nhận ACKNAK bị hỏng

số trạng thaacutei tăng lecircn 2 lần trạng thaacutei phải ldquonhớrdquo

goacutei ldquohiện tạirdquo coacute số thứ tự lagrave 0 hay 1

người nhận phải kiểm tra coacute

nhận trugraveng goacutei khocircng trạng thaacutei chỉ rotilde coacute

hay khocircng mong chờ số thứ tự 0 hoặc 1

chuacute yacute người nhận khocircng biết ACKNAK vừa rồi của noacute coacute được người gửi nhận tốt hay khocircng

Transport Layer 3-35

rdt22 một giao thức khocircng cần NAK

chức năng giống như rdt21 chỉ dugraveng caacutec ACK thay cho NAK người nhận gửi ACK cho goacutei vừa

rồi đatilde nhận tốt người nhận phải rotilde ragraveng chegraven số thứ tự của goacutei vừa ACK

trugraveng ACK tại người gửi hậu quả giống như hagravenh động của NAK truyền lại goacutei vừa rồi

Transport Layer 3-36

rdt22 gửi nhận caacutec mảnh

Chờ cho gọi 0 từ

trecircn

sndpkt = make_pkt(0 data checksum)udt_send(sndpkt)

rdt_send(data)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) || isACK(rcvpkt1) )

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt0)

Chờ cho ACK

0

gửi phacircn mảnhFSM

Chờ cho gọi

0 từ dưới

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp has_seq1(rcvpkt)

extract(rcvpktdata)deliver_data(data)sndpkt = make_pkt(ACK1 chksum)udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp (corrupt(rcvpkt) || has_seq1(rcvpkt))

udt_send(sndpkt)

nhận phacircn mảnhFSM

Transport Layer 3-37

rdt30 caacutec kecircnh với lỗi vagrave mất maacutet

Giả định mới kecircnh ưu tiecircn cũng coacute thể lagravem mất caacutec goacutei (dữ liệu hoặc caacutec ACK) checksum số thứ tự

caacutec ACK caacutec việc truyền lại sẽ hỗ trợ nhưng khocircng đủ

Caacutech tiếp cận người gửi chờ ACK trong khoảng thời gian ldquochấp nhận đượcrdquo

truyền lại nếu khocircng nhận ACK trong khoảng thời gian nagravey

nếu goacutei (hoặc ACK) chỉ trễ (khocircng mất) truyền lại sẽ gacircy trugraveng

nhưng dugraveng số thứ tự sẽ giải quyết được

người nhận phải xaacutec định số thứ tự của goacutei vừa gửi ACK

cần bộ định thigrave đếm lugravei

Transport Layer 3-38

rdt30 gửi

sndpkt = make_pkt(0 data checksum)udt_send(sndpkt)start_timer

rdt_send(data)

Chờ cho

ACK 0

rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) ||isACK(rcvpkt1) )

Chờ cho gọi 1 từ trecircn

sndpkt = make_pkt(1 data checksum)udt_send(sndpkt)start_timer

rdt_send(data)

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt0)

rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) ||isACK(rcvpkt0) )

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt1)

stop_timerstop_timer

udt_send(sndpkt)start_timer

timeout

udt_send(sndpkt)start_timer

timeout

rdt_rcv(rcvpkt)

Chờ cho gọi 0 từ trecircn

Chờ cho

ACK 1

rdt_rcv(rcvpkt)

Transport Layer 3-39

hagravenh động của rdt30

Transport Layer 3-40

hagravenh động của rdt30

Transport Layer 3-41

Hiệu suất của rdt30

rdt30 lagravem việc được nhưng đaacutenh giaacute hiệu suất hơi rắc rối viacute dụ liecircn kết 1 Gbps trễ lan truyền giữa hai đầu cuối lagrave 15

ms goacutei 1KB

T truyền = 8kbpkt109 bsec

= 8 microsec

U sender độ khả dụng ndash

U sender

= 008

30008 = 000027

microseconds

L R

RTT + L R =

L (độ dagravei goacutei tiacutenh bằng bits)R (tốc độ truyền bps)

=

goacutei 1KB mỗi 30 msec -gt 33kBs trecircn đường truyền 1 Gbps giao thức network hạn chế việc dugraveng caacutec tagravei nguyecircn vật

lyacute

Transport Layer 3-42

rdt30 hoạt động dừng-vagrave-chờ

goacutei đầu tiecircn đatilde truyền t = 0

gửi nhận

RTT

goacutei cuối cugraveng đatilde truyền t = L R

goacutei đầu tiecircn đatilde đếngoacutei cuối cugraveng đatilde đến gửi ACK

ACK đến gửi goacutei kế tiếp t = RTT + L R

U sender

= 008

30008 = 000027

microseconds

L R

RTT + L R =

Transport Layer 3-43

Caacutec giao thức Pipelined

Pipelining người gửi cho pheacutep gửi nhiều goacutei đồng thời khocircng cần chờ baacuteo nhận được nhoacutem caacutec số thứ tự phải tăng dần phải coacute bộ nhớ đệm tại nơi gửi vagravehoặc nơi nhận

hai dạng phổ biến của caacutec giao thức pipelined go-Back-N Lặp coacute lựa chọn

Transport Layer 3-44

Pipelining độ khả dụng tăng

goacutei đầu tiecircn đatilde truyền t = 0

sender receiver

RTT

goacutei cuối cugraveng đatilde truyền t = L R

goacutei đầu tiecircn đatilde đếngoacutei cuối cugraveng đatilde đến gửi ACK

ACK đến gửi goacuteikế tiếp t = RTT + L R

bit cuối của goacutei thứ 2 đến gửi ACKbit cuối của goacutei thứ 3 đến gửi ACK

U sender

= 024

30008 = 00008

microseconds

3 L R

RTT + L R =

Độ khả dụng tăng lecircngấp 3 lần

Transport Layer 3-45

Go-Back-NBecircn gửi k-bit số thứ tự trong header của goacutei ldquocửa sổrdquo tăng lecircn đến N cho pheacutep gửi caacutec goacutei liecircn tục khocircng cần ACK

ACK(n) ACKs tất cả caacutec goacutei đến chứa số thứ tự n ndash ldquoACK tiacutech lũyrdquo coacute thể nhận caacutec ACK trugraveng lặp (xem becircn nhận)

định thigrave cho mỗi goacutei trecircn đường truyền timeout(n) gửi lại goacutei n vagrave tất cả caacutec goacutei coacute số thứ tự cao

hơn trong cửa sổ

Transport Layer 3-46

GBN becircn gửi mở rộng FSM

chờ start_timerudt_send(sndpkt[base])udt_send(sndpkt[base+1])hellipudt_send(sndpkt[nextseqnum-1])

timeout

rdt_send(data)

if (nextseqnum lt base+N) sndpkt[nextseqnum] = make_pkt(nextseqnumdatachksum) udt_send(sndpkt[nextseqnum]) if (base == nextseqnum) start_timer nextseqnum++ else refuse_data(data)

base = getacknum(rcvpkt)+1If (base == nextseqnum) stop_timer else start_timer

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)

base=1nextseqnum=1

rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)

Transport Layer 3-47

GBN becircn nhận mở rộng FSM

ACK-duy nhất luocircn luocircn gửi ACK cho goacutei đatilde nhận đuacuteng với số thứ tự xếp hạng cao nhất coacute thể sinh ra caacutec ACK trugraveng nhau chỉ cần nhớ expectedseqnum

goacutei khocircng theo thứ tự hủy -gt khocircng nhận vagraveo bộ đệm gửi lại ACK với số thứ tự xếp hạng cao nhất

chờ

udt_send(sndpkt)

default

rdt_rcv(rcvpkt) ampamp notcurrupt(rcvpkt) ampamp hasseqnum(rcvpktexpectedseqnum)

extract(rcvpktdata)deliver_data(data)sndpkt = make_pkt(expectedseqnumACKchksum)udt_send(sndpkt)expectedseqnum++

expectedseqnum=1sndpkt = make_pkt(expectedseqnumACKchksum)

Transport Layer 3-48

GBN hoạt động

Transport Layer 3-49

Lặp coacute lựa chọn

becircn nhận thocircng baacuteo đatilde nhận đuacuteng tất cả từng goacutei một đệm (buffer) caacutec goacutei nếu cần thiết

becircn gửi chỉ gửi lại caacutec goacutei nagraveo khocircng nhận được ACK becircn gửi định thigrave đối với mỗi goacutei khocircng gửi ACK

cửa sổ becircn gửi N số thứ tự liecircn tục hạn chế số thứ tự caacutec goacutei khocircng gửi ACK

Transport Layer 3-50

Lặp coacute lựa chọn caacutec cửa sổ gửi nhận

Transport Layer 3-51

Lặp coacute lựa chọn

dữ liệu từ lớp trecircn nếu số thứ tự kế tiếp sẵn

sagraveng trong cửa sổ gửi goacutei

timeout(n) gửi lại goacutei n taacutei khởi tạo

bộ định thigrave

ACK(n) trong [sendbasesendbase+N]

đaacutenh dấu goacutei n lagrave đatilde nhận nếu goacutei khocircng ACK coacute n

nhỏ nhất dịch chuyển cửa sổ base đến số thứ tự khocircng ACK kế tiếp

Gửigoacutei n trong [rcvbase

rcvbase+N-1]

gửi ACK(n) khocircng thứ tự đệm

(buffer) coacute thứ tự truyền (cũng

truyền caacutec goacutei đatilde đệm coacute thứ tự) dịch chuyển cửa sổ đến goacutei chưa nhận kế tiếp

goacutei n trong [rcvbase-Nrcvbase-1]

ACK(n)

ngược lại lờ đi

Nhận

Transport Layer 3-52

Hoạt động của lặp coacute lựa chọn

Transport Layer 3-53

Lặp coacute lựa chọntigravenh trạng khoacute giải quyếtViacute dụ Số thứ tự 0 1 2 3 Kiacutech thước cửa sổ = 3

becircn nhận khocircng thấy sự khaacutec nhau trong 2 tigravenh huống

chuyển khocircng chiacutenh xaacutec dữ liệu trugraveng lặp như dữ liệu mới trong (a)

Hỏi quan hệ giữa datildey số thứ tự vagrave kiacutech thước cửa sổ

Transport Layer 3-54

Chương 3 Nội dung trigravenh bagravey

31 Caacutec dịch vụ lớp Transport

32 Multiplexing vagrave demultiplexing

33 Vận chuyển khocircng kết nối UDP

34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy

35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối

36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn

37 Điều khiển tắc nghẽn TCP

Transport Layer 3-55

TCP Tổng quan RFCs 793 1122 1323 2018 2581

dữ liệu full duplex luồng dữ liệu đi 2 chiều

trong cugraveng một kết nối MSS maximum

segment size ndash kiacutech thước đoạn tối đa

hướng kết nối bắt tay (trao đổi caacutec

thocircng điệp điều khiển) trạng thaacutei becircn gửi becircn nhận trước khi trao đổi dữ liệu

điều khiển luồng becircn gửi sẽ khocircng lấn aacutet

becircn nhận

point-to-point một becircn gửi một becircn

nhận tin cậy dograveng byte coacute

thứ tự khocircng ldquoranh giới thocircng

điệprdquo kecircnh liecircn lạc

TCP điều khiển luồng vagrave tắc nghẽn thiết lập kiacutech thước cửa sổ

caacutec bộ đệm gửi amp nhận

socketdoor

T C Psend buffer

T C Preceive buffer

socketdoor

segm ent

applicationwrites data

applicationreads data

Transport Layer 3-56

TCP cấu truacutec đoạn

port nguồn port điacutech

32 bits

dữ liệu ứng dụng(độ dagravei thay đổi)

số thứ tự

số ACKcửa sổ nhận

con trỏ URGchecksum

FSRPAUheadlen

notused

Tugravey chọn (độ dagravei thay đổi)

URG dữ liệu khẩn cấp(thường khocircng dugraveng)

ACK ACK hợp lệ

PSH push data now(thường khocircng dugraveng)

RST SYN FINthiết lập kết nối

(caacutec lệnh thiết lậpchia nhỏ)

số byte becircn nhận sẵn sagraveng chấp nhận

đếm bởi số bytecủa dữ liệu

Internetchecksum

(giống UDP)

Transport Layer 3-57

Caacutec số thứ tự TCP vagrave ACKCaacutec số thứ tự

dograveng byte ldquođaacutenh sốrdquo byte đầu tiecircn trong dữ liệu của đoạn

caacutec ACK số thứ tự của byte

kế tiếp được chờ đợi từ phiacutea becircn kia

ACK tiacutech lũyHỏi lagravem thế nagraveo becircn

nhận quản lyacute caacutec đoạn khocircng thứ tự Trả lời TCP khocircng

đề cập tugravey thuộc người hiện thực

Host A Host B

Seq=42 ACK=79 data = lsquoCrsquo

Seq=79 ACK=43 data = lsquoCrsquo

Seq=43 ACK=80

UsernhậplsquoCrsquo

host ACKsnhận phản hồi

lsquoCrsquo

host ACKsbaacuteo nhận

lsquoCrsquo phản hồingược lại lsquoCrsquo

timetigravenh huống telnet đơn giản

Transport Layer 3-58

TCP Round Trip Time vagraveTimeout

Hỏi Lagravem thế nagraveo để thiết lập giaacute trị TCP timeout

dagravei hơn RTT khaacutec với RTT

quaacute ngắn timeout sớm truyền lại khocircng

cần thiết quaacute dagravei phản ứng

chậm đối với việc mất maacutet goacutei

Hỏi Lagravem thế nagraveo để thiết lập RTT

SampleRTT thời gian được đo từ khi truyền đoạn đến khi baacuteo nhận ACK lờ đi việc truyền lại

SampleRTT sẽ thay đổi muốn ước lượng RTT ldquomượt hơnrdquo tiacutenh trung bigravenh một số giaacute

trị đo được gần đoacute khocircng chỉ SampleRTT hiện tại

Transport Layer 3-59

TCP Round Trip Time vagrave Timeout

EstimatedRTT = (1- )EstimatedRTT + SampleRTT

giaacute trị đặc trưng = 0125

Transport Layer 3-60

Viacute dụ đaacutenh giaacute RTTRTT gaiacsumassedu to fantasiaeurecomfr

100

150

200

250

300

350

1 8 15 22 29 36 43 50 57 64 71 78 85 92 99 106

time (seconnds)

RTT

(mill

isec

onds

)

SampleRTT Estimated RTT

Transport Layer 3-61

TCP Round Trip Time vagrave Timeout

Thiết lập timeout EstimtedRTT cộng ldquohệ số dự trữ an toagravenrdquo

sự biến thiecircn lớn trong EstimatedRTT -gt hệ số dự trữ an toagraven lớn hơn ước lượng đầu tiecircn về sự biến thiecircn của SampleRTT từ EstimatedRTT

TimeoutInterval = EstimatedRTT + 4DevRTT

DevRTT = (1-)DevRTT + |SampleRTT-EstimatedRTT|

(tiecircu biểu = 025)

Sau đoacute thiết lập timeout interval

Transport Layer 3-62

TCP truyền dữ liệu tin cậy

TCP tạo dịch vụ rdt trecircn dịch vụ khocircng tin cậy IP

caacutec đoạn Pipelined caacutec ACK tiacutech lũy TCP dugraveng bộ định thigrave

truyền lại đơn

Truyền lại được kiacutech hoạt bởi caacutec sự kiện timeout caacutec ack trugraveng lặp

luacutec đầu khảo saacutet caacutec becircn gửi TCP đơn giản lờ đi caacutec ack trugraveng lặp lờ đi điều khiển luồng

điều khiển tắc nghẽn

Transport Layer 3-63

TCP caacutec sự kiệndữ liệu đatilde nhận từ ứng

dụng tạo đoạn với số thứ

tự của noacute số thứ tự lagrave số theo

byte dữ liệu đầu tiecircn khởi động bộ định thigrave

nếu chưa chạy khoảng thời gian hết

hạn TimeOutInterval

timeout gửi lại đoạn nagraveo gacircy

ra timeout khởi động lại bộ định

thigrave Ack đatilde nhận

cập nhật caacutei gigrave sẽ được ACK

khởi động bộ định thigrave nếu coacute caacutec đoạn cograven chờ

Transport Layer 3-64

TCP becircn gửi(đơn giản)

NextSeqNum = InitialSeqNum SendBase = InitialSeqNum

loop (forever) switch(event)

event data received from application above create TCP segment with sequence number NextSeqNum if (timer currently not running) start timer pass segment to IP NextSeqNum = NextSeqNum + length(data)

event timer timeout retransmit not-yet-acknowledged segment with smallest sequence number start timer

event ACK received with ACK field value of y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer

end of loop forever

Chuacute thiacutechbull SendBase-1 byte vừa được ACK tiacutech lũy Viacute dụbull SendBase-1 = 71y= 73 vigrave thế becircn nhận muốn 73+ y gt SendBase vigrave thế dữ liệu mới được chấp nhận

Transport Layer 3-65

TCP caacutec tigravenh huống truyền lại

Host A

Seq=100 20 bytes data

ACK=100

timetimeout sớm

Host B

Seq=92 8 bytes data

ACK=120

Seq=92 8 bytes data

Seq=

92

tim

eout

ACK=120

Host A

Seq=92 8 bytes data

ACK=100

loss

tim

eout

tigravenh huống mất ACK

Host B

X

Seq=92 8 bytes data

ACK=100

time

Seq=

92

tim

eout

SendBase= 100

SendBase= 120

SendBase= 120

Sendbase= 100

Transport Layer 3-66

TCP caacutec tigravenh huống truyền lại (tt)Host A

Seq=92 8 bytes data

ACK=100

loss

tim

eout

Cumulative ACK scenario

Host B

X

Seq=100 20 bytes data

ACK=120

time

SendBase= 120

Transport Layer 3-67

TCP sinh ra ACK [RFC 1122 RFC 2581]

Sự kiện tại becircn nhận

Đoạn đến với đuacuteng số thứ tự mong muốn Tất cả dữ liệu đếnđatilde được ACK

Đoạn đến với đuacuteng số thứ tự mong muốn Một đoạn khaacutec đangchờ ACK

Caacutec đoạn đến khocircng thứ tựlớn hơn số thứ tự đoạn mong muốnCoacute khoảng trống

Đoạn đếnlấp đầy từng phần hoặc toagraven bộkhoảng trống

TCP becircn nhận hagravenh động

ACK trễ Chờ đến 500mscho đoạn kế tiếp Nếu khocircng coacute đoạnkế tiếp gửi ACK

Gửi ngay một ACK tiacutech lũy chấp nhậncho cả caacutec đoạn theo thứ tự

Gửi ngay ACK trugraveng lặp chỉ thị số thứ tựđoạn của byte kế tiếp đang mong chờ

Gửi ngay ACK với điều kiện lagrave đoạnbắt đầu ngay điểm coacute khoảng trống

Transport Layer 3-68

Truyền lại nhanh

Chu kỳ Time-out thường tương đối dagravei độ trễ dagravei trước khi gửi

lại goacutei đatilde mất

Xaacutec nhận caacutec đoạn đatilde mất bằng caacutec ACK trugraveng lặp becircn gửi thường gửi

nhiều đoạn song song Nếu đoạn bị mất sẽ

xảy ra tigravenh trạng giống như nhiều ACK trugraveng nhau

Nếu becircn gửi nhận 3 ACK của cugraveng một dữ liệu noacute cho lagrave đoạn sau dữ liệu đatilde ACK bị mất Truyền lại nhanh gửi

lại đoạn trước khi bộ định thigrave hết hạn

Transport Layer 3-69

sự kiện ACK đatilde nhận với trường lagrave y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer else increment count of dup ACKs received for y if (count of dup ACKs received for y = 3) resend segment with sequence number y

Giải thuật truyền lại nhanh

một ACK trugraveng lặp cho đoạn đatilde được ACK

Truyền lại nhanh

Transport Layer 3-70

Chương 3 Nội dung trigravenh bagravey

31 Caacutec dịch vụ lớp Transport

32 Multiplexing vagrave demultiplexing

33 Vận chuyển khocircng kết nối UDP

34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy

35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối

36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn

37 Điều khiển tắc nghẽn TCP

Transport Layer 3-71

TCP điều khiển luồng

becircn nhận của kết nối TCP coacute một bộ đệm nhận

dịch vụ so trugraveng tốc độ so trugraveng tốc độ gửi với tốc độ nhận của ứng dụng

tiến trigravenh ứng dụng coacute thể chậm tại luacutec đọc bộ đệm

becircn gửi sẽ khocircng lagravem tragraven bộ đệm vigrave truyền quaacute nhiều vagrave

quaacute nhanh

điều khiển luồng

Transport Layer 3-72

TCP điều khiển luồng caacutech lagravem

(Giả sử becircn nhận TCP loại bỏ caacutec đoạn khocircng coacute thứ tự)

dự phograveng trong bộ đệm= RcvWindow

= RcvBuffer-[LastByteRcvd - LastByteRead]

Becircn nhận thocircng baacuteo khoảng dự trữ nhờ giaacute trị RcvWindow trong caacutec đoạn

Becircn gửi hạn chế dữ liệu khocircng được ACK vagraveo RcvWindow bảo đảm bộ đệm nhận

khocircng tragraven

Transport Layer 3-73

Chương 3 Nội dung trigravenh bagravey

31 Caacutec dịch vụ lớp Transport

32 Multiplexing vagrave demultiplexing

33 Vận chuyển khocircng kết nối UDP

34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy

35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối

36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn

37 Điều khiển tắc nghẽn TCP

Transport Layer 3-74

TCP quản lyacute kết nối

Chuacute yacute Becircn gửi vagrave becircn nhận TCP thiết lập ldquokết nốirdquo trước khi trao đổi dữ liệu

khởi tạo caacutec biến TCP caacutec số thứ tự đoạn thocircng tin caacutec bộ đệm điều

khiển luồng (như RcvWindow)

client người khởi xướng kết nối

Socket clientSocket = new Socket(hostnameport

number) server được tiếp xuacutec bởi

client Socket connectionSocket =

welcomeSocketaccept()

3 phương phaacutep bắt tay

Bước 1 client host gửi đoạnTCP SYN đến server xaacutec định số thứ tự khởi đầu khocircng phải dữ liệu

Bước 2 server host nhận SYN trả lời với đoạn SYNACK

server cấp phaacutet caacutec bộ đệm

xaacutec định số thứ tự khởi đầuBước 3 client nhận SYNACK trả

lời với đoạn ACK (coacute thể chứa dữ liệu)

Transport Layer 3-75

TCP quản lyacute kết nối (tt)

Đoacuteng một kết nối

client đoacuteng socket clientSocketclose()

Bước 1 client gửi đoạn điều khiển TCP FIN đến server

Bước 2 server nhận FIN trả lời với ACK Đoacuteng kết nối gửi FIN

client

FIN

server

ACK

ACK

FIN

đoacuteng

đoacuteng

đatilde đoacutengthời g

ian c

hờ

Transport Layer 3-76

TCP quản lyacute kết nối (tt)

Bước 3 client nhận FIN trả lời với ACK

Trong khoảng ldquothời gian chờrdquo ndash sẽ phản hồi với ACK để nhận caacutec FIN

Bước 4 server nhận ACK Kết nối đatilde đoacuteng

Chuacute yacute với một sửa đổi nhỏ coacute thể quản lyacute nhiều FIN đồng thời

client

FIN

server

ACK

ACK

FIN

đang đoacuteng

đang đoacuteng

đatilde đoacuteng

thời g

ian c

hờ

đatilde đoacuteng

Transport Layer 3-77

TCP quản lyacute kết nối (tt)

chu kỳ sống củaTCP client

chu kỳ sống củaTCP server

Transport Layer 3-78

Chương 3 Nội dung trigravenh bagravey

31 Caacutec dịch vụ lớp Transport

32 Multiplexing vagrave demultiplexing

33 Vận chuyển khocircng kết nối UDP

34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy

35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối

36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn

37 Điều khiển tắc nghẽn TCP

Transport Layer 3-79

Caacutec nguyecircn lyacute điều khiển tắc nghẽn

Tắc nghẽn ldquoquaacute nhiều nguồn gửi quaacute nhanh vagrave quaacute nhiều

dữ liệu đến mạngrdquo khaacutec với điều khiển luồng caacutec biểu hiện

caacutec goacutei bị mất (tragraven bộ đệm tại caacutec router) caacutec độ trễ quaacute dagravei (xếp hagraveng trong bộ đệm

của router) lagrave 1 trong 10 vấn đề nan giải nhất

Transport Layer 3-80

Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 1

2 gửi 2 nhận 1 router caacutec bộ

đệm khocircng giới hạn

khocircng coacute truyền lại

caacutec độ trễ lớn hơn khi tắc nghẽn

năng suất coacute thể đạt tối đa

unlimited shared output link buffers

Host Ain original data

Host B

out

Transport Layer 3-81

Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 2

1 router caacutec bộ đệm coacute giới hạn becircn gửi truyền lại caacutec goacutei đatilde mất

chia sẻ vocirc hạncaacutec bộ đệm ouput

Host A in dữ liệu gốc

Host B

out

in dữ liệu gốc cugraveng với dữ liệu truyền lại

Transport Layer 3-82

Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 2 luocircn luocircn

truyền lại ldquohoagraven toagravenrdquo chỉ khi mất maacutet

truyền lại vigrave trễ (khocircng mất) lagravem cho lớn hơn với cugraveng

in

out

=

in

out

gt

in

out

ldquocaacutec chi phiacuterdquo của tắc nghẽn nhiều việc (truyền lại) caacutec truyền lại khocircng cần thiết liecircn kết nhiều bản sao của

goacutei

R2

R2in

ou

t

b

R2

R2in

ou

t

a

R2

R2in

ou

t

c

R4

R3

Transport Layer 3-83

Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 3 4 người gửi caacutec đường qua nhiều hop timeouttruyền lại

in

Hỏi điều gigrave xảy ra nếu vagrave tăng lecircn

in

chia sẻ vocirc hạncaacutec bộ đệm ouput

Host Ain dữ liệu gốc

Host B

out

in dữ liệu gốc cugraveng với dữ liệu truyền lại

Transport Layer 3-84

Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 3

ldquochi phiacuterdquo khaacutec của tắc nghẽn khi caacutec goacutei bị bỏ bất kỳ ldquokhả năng truyền

upstream dugraveng cho goacutei đoacute sẽ bị latildeng phiacuterdquo

Host A

Host B

o

u

t

Transport Layer 3-85

Caacutec caacutech tiếp cận đối với điều khiển tắc nghẽn

điều khiển tắc nghẽn end-end

khocircng coacute phản hồi rotilde ragraveng từ mạng

tắc nghẽn được suy ra từ việc quan saacutet caacutec hệ thống đầu cuối coacute mất maacutet trễ

tiếp cận được quản lyacute bởi TCP

điều khiển tắc nghẽn coacute sự hỗ trợ của mạng

caacutec router cung cấp phản hồi về caacutec hệ thống đầu cuối 1 bit duy nhất chỉ thị

tắc nghẽn (SNA DECbit TCPIP ECN ATM)

tốc độ sẽ gửi được xaacutec định rotilde ragraveng

2 caacutech

Transport Layer 3-86

Viacute dụ điều khiển tắc nghẽn ATM ABR

ABR tốc độ bit sẵn sagraveng

ldquodịch vụ mềm dẻordquo nếu đường gửi ldquochưa

hếtrdquo becircn gửi sẽ dugraveng

băng thocircng sẵn sagraveng nếu đường gửi tắc

nghẽn becircn gửi điều tiết với

tốc độ tối thiểu

RM (resource management)

gửi bởi becircn gửi rải raacutec với caacutec ocirc dữ liệu

caacutec bit trong ocirc thiết lập bởi caacutec switch bit NI khocircng tăng tốc độ

(tắc nghẽn nhẹ) bit CI tắc nghẽn rotilde rệt

Caacutec ocirc RM được trả về becircn gửi từ becircn nhận với nguyecircn vẹn caacutec bit

Transport Layer 3-87

Viacute dụ điều khiển tắc nghẽn ATM ABR

trường 2-byte ER trong ocirc RM switch đatilde tắc nghẽn coacute thể coacute giaacute trị ER thấp hơn trong ocirc tốc độ gửi do đoacute coacute thể được hỗ trợ tối đa trecircn đường

EFCI bit trong caacutec ocirc dữ liệu được cagravei giaacute trị 1 trong switch đatilde tắc nghẽn nếu ocirc dữ liệu đứng trước ocirc RM coacute cagravei EFCI becircn gửi sẽ cagravei

bit CI trong ocirc RM trả về

Transport Layer 3-88

Chương 3 Nội dung trigravenh bagravey

31 Caacutec dịch vụ lớp Transport

32 Multiplexing vagrave demultiplexing

33 Vận chuyển khocircng kết nối UDP

34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy

35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối

36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn

37 Điều khiển tắc nghẽn TCP

Transport Layer 3-89

TCP điều khiển tắc nghẽn additive tăng lecircn multiplicative giảm xuống

8 Kbytes

16 Kbytes

24 Kbytes

time

congestionwindow

Caacutech tiếp cận tăng tốc độ truyền (kiacutech thước cửa sổ) tigravem khả năng băng thocircng coacute thể cho đến khi coacute mất maacutet xảy ra additive tăng lecircn tăng CongWin bởi 1 MSS

mỗi RTT cho đến khi coacute mất maacutet xảy ra multiplicative giảm xuống bỏ CongWin trong

nửa giai đoạn sau khi mất maacutet

timekiacutech

thư

ớc

cửa

sổ

tắc

nghẽ

n

Tigravem kiếm băng thocircng

Transport Layer 3-90

TCP điều khiển tắc nghẽn chi tiết

becircn gửi hạn chế việc truyền LastByteSent-LastByteAcked

CongWin Cocircng thức

CongWin thay đổi chức năng lagrave nhận biết tắc nghẽn trecircn mạng

Lagravem thế nagraveo becircn gửi nhận biết tắc nghẽn

mất maacutet xảy ra = timeout hoặc 3 ack trugraveng lặp

becircn gửi giảm tốc độ (CongWin) sau khi mất maacutet xảy ra

3 cơ chế AIMD khởi động chậm thận trọng sau khi coacute

caacutec sự kiện timeout

tốc độ = CongWin

RTT Bytess

Transport Layer 3-91

TCP khởi động chậm

Khi kết nối bắt đầu CongWin = 1 MSS Viacute dụ MSS = 500 bytes

amp RTT = 200 ms tốc độ khởi tạo = 20

kbps

băng thocircng sẵn sagraveng coacute thể gtgt MSSRTT mong muốn nhanh

choacuteng tăng tốc lecircn tốc độ coacute thể đaacutep ứng

Khi kết nối bắt đầu tăng tốc lecircn rất nhanh cho đến khi sự cố mất maacutet xảy ra đầu tiecircn

Transport Layer 3-92

TCP khởi động chậm (tt)

Khi kết nối bắt đầu tăng tốc lecircn rất nhanh cho đến khi sự cố mất maacutet xảy ra đầu tiecircn nhacircn đocirci CongWin mỗi

RTT hoagraven thagravenh nhờ tăng CongWin ứng với mỗi ACK đatilde nhận

Tổng kết tốc độ khởi đầu lagrave chậm nhưng sau đoacute tăng tốc rất nhanh

Host A

1 đoạn

RTT

Host B

thời gian

2 đoạn

4 đoạn

Transport Layer 3-93

Tinh chếHỏi Khi nagraveo việc tăng

tốc trở thagravenh tuyến tiacutenh

Trả lời Khi CongWin đạt đến 12 giaacute trị của noacute trước khi timeout

Hiện thực Ngưỡng thay đổi Tại thời điểm coacute sự cố

mất maacutet ngưỡng được cagravei giaacute trị bằng frac12 của CongWin ngay trước đoacute

Transport Layer 3-94

Tinh chế nhận biết mất maacutet

Sau 3 ACK trugraveng lặp CongWin sẽ giảm 12 kiacutech thước cửa sổ

tăng tuyến tiacutenh nhưng sau sự cố

timeout CongWin thay giaacute trị

bằng 1 MSS kiacutech thước cửa sổ

tăng cấp lũy thừa khi đến một ngưỡng

thigrave tăng tuyến tiacutenh

3 ACK trugraveng nhau chỉ ra khả năng truyền của mạng timeout chỉ thị ldquonhiều cảnh baacuteordquo về tigravenh huống tắc nghẽn

Nguyecircn lyacute

Transport Layer 3-95

Tổng kết TCP điều khiển tắc nghẽn

Khi CongWin dưới Threshold becircn gửi đang trong giai đoạn khởi động chậm kiacutech thước cửa sổ tăng nhanh theo cấp lũy thừa

Khi CongWin trecircn Threshold becircn gửi đang trong giai đoạn traacutenh tắc nghẽn kiacutech thước cửa sổ tăng nhanh theo cấp tuyến tiacutenh

Khi coacute 3 ACK trugraveng lặp xảy ra Threshold = CongWin2 vagrave CongWin = Threshold

Khi timeout xảy ra Threshold = CongWin2 vagrave CongWin = 1 MSS

Transport Layer 3-96

TCP điều khiển tắc nghẽn becircn gửi

Trạng thaacutei Sự kiện TCP becircn gửi hagravenh động Diễn giải

Slow Start (SS)-Khởi động chậm

ACK baacuteo nhận cho dữ liệu chưa ACK trước đoacute

CongWin = CongWin + MSS If (CongWin gt Threshold) cagravei đặt trạng thaacutei ldquoTraacutenh tắc nghẽnrdquo

Hậu quả lagravem tăng gấp đocirci CongWin mỗi RTT

CongestionAvoidance (CA) ndashTraacutenh tắc nghẽn

ACK baacuteo nhận cho dữ liệu chưa ACK trước đoacute

CongWin = CongWin+MSS (MSSCongWin)

Additive tăng lecircn lagravem tăng CongWin lecircn 1 MSS mỗi RTT

SS hoặc CA Sự cố mất maacutet xảy ra khi thấy coacute 3 ACK trugraveng lặp

Threshold = CongWin2 CongWin = Thresholdcagravei đặt trạng thaacutei ldquoTraacutenh tắc nghẽnrdquo

Khocirci phục nhanh hiện thực giảm xuống multiplicative CongWin sẽ khocircng giảm xuống dưới 1 MSS

SS hoặc CA Timeout Threshold = CongWin2 CongWin = 1 MSScagravei đặt trạng thaacutei ldquoKhởi động chậmrdquo

Vagraveo chế độ ldquoKhởi động chậmrdquo

SS hoặc CA ACK trugraveng lặp

Đếm ACK tăng lecircn cho đoạn vừa được ACK

CongWin vagrave Threshold khocircng thay đổi

Transport Layer 3-97

TCP throughput

Throughout trung bigravenh của TCP biểu diễn qua kiacutech thước của sổ vagrave RTT Bỏ qua trạng thaacutei ldquoKhởi động chậmrdquo

Cho W lagrave kiacutech thước cửa sổ khi coacute mất maacutet xảy ra

Khi kiacutech thước cửa sổ = W lưu lượng = WRTT

Chỉ ngay sau khi mất maacutet cửa sổ giảm xuống = W2 lưu lượng = W2RTT

throughout trung bigravenh 075 WRTT

Transport Layer 3-98

TCP tương lai

Viacute dụ caacutec đoạn dagravei 1500 byte RTT 100ms lưu lượng 10 Gbps

Kiacutech thước cửa sổ yecircu cầu W = 83333 đoạn trecircn đường truyền

Lưu lượng trong caacutec trường hợp mất maacutet

L = 210-10

Phiecircn bản mới của TCP dagravenh cho nhu cầu tốc độ cao

LRTT

MSS221

Transport Layer 3-99

Mục tiecircu nếu K phiecircn lagravem việc TCP chia sẻ kết nối cổ chai của băng thocircng lagrave R mỗi phiecircn coacute tốc độ trung bigravenh lagrave RK

TCP kết nối 1

router cổ chaikhả năng R

TCP kết nối 2

TCP tiacutenh cocircng bằng

Transport Layer 3-100

Tại sao phải TCP cocircng bằng

2 phiecircn lagravem việc cạnh tranh nhau Additive tăng lưu lượng tăng multiplicative giảm lưu lượng tương xứng

R

R

chia sẻ băng thocircng bằng nhau

Connection 1 throughputConnect

ion 2

th

roughput

traacutenh tắc nghẽn additive tăng lecircnmất maacutet giảm cửa sổ bằng 12

traacutenh tắc nghẽn additive tăng lecircnmất maacutet giảm cửa sổ bằng 12

Transport Layer 3-101

TCP tiacutenh cocircng bằng (tt)

Tiacutenh cocircng bằng amp UDP nhiều ứng dụng

thường khocircng dugraveng TCP khocircng muốn tốc độ bị

điều tiết do điều khiển tắc nghẽn

Thay bằng dugraveng UDP truyền audiovideo với

tốc độ ổn định chịu được mất maacutet

Nghiecircn cứu giao thức thacircn thiện với TCP

Tiacutenh cocircng bằng amp caacutec kết nối TCP song song

khocircng coacute gigrave ngăn cản việc ứng dụng mở caacutec kết nối song song giữa 2 host

Trigravenh duyệt Web lagravem giống như thế

Viacute dụ tốc độ R hỗ trợ 9 kết nối ứng dụng mới yecircu cầu 1

TCP coacute tốc độ R10 ứng dụng mới yecircu cầu 11

TCP coacute tốc độ R2

Transport Layer 3-102

Mocirc higravenh trễ

Hỏi Mất bao lacircu để nhận 1 đối tượng từ Web server sau khi gửi yecircu cầu

Bỏ qua tắc nghẽn trễ bị ảnh hưởng bởi

thiết lập kết nối TCP trễ truyền dữ liệu khởi động chậm

Notation caacutec giả định Giả sử một kết nối giữa

client vagrave server coacute tốc độ R

S MSS (bits) O kiacutech thước đối tượng

(bits) khocircng truyền lại (khocircng

mất maacutet khocircng hỏng)

Kiacutech thước cửa sổ Giả định 1 cửa sổ tắc

nghẽn cố định coacute W đoạn Sau đoacute cửa sổ thay đổi

mocirc higravenh khởi động chậm

Transport Layer 3-103

Cửa sổ tắc nghẽn cố định (1)

Trường hợp đầu tiecircnWSR gt RTT + SR cho

đoạn đầu tiecircn trong cửa sổ trả về trước khi cửa sổ dữ liệu gửi ACK

trễ = 2RTT + OR

Transport Layer 3-104

Cửa sổ tắc nghẽn cố định (2)

Trường hợp thứ hai WSR lt RTT + SR sent

chờ cho ACK sau khi gửi dữ liệu

trễ = 2RTT + OR+ (K-1)[SR + RTT - WSR]

Transport Layer 3-105

TCP Mocirc higravenh trễ Khởi động chậm (1)

Bacircy giờ giả sử kiacutech thước cửa sổ tăng lecircn tugravey theo quaacute trigravenh khởi động chậm

Độ trễ của một đối tượng sẽ lagrave

R

S

R

SRTTP

R

ORTTLatency P )12(2

trong đoacute P lagrave số lần TCP rảnh ở tại server

1min KQP

- trong đoacute Q lagrave số lần server rảnh nếu đối tượng đatilde khởi tạo kiacutech thước

- vagrave K lagrave số lượng cửa sổ bao trugravem đối tượng

Transport Layer 3-106

TCP Mocirc higravenh trễ Khởi động chậm (2)

RTT

initia te TCPconnection

requestobject

first w indow= S R

second w indow= 2S R

third w indow= 4S R

fourth w indow= 8S R

com pletetransm issionobject

delivered

tim e atc lient

tim e atserver

Viacute dụbull OS = 15 đoạnbull K = 4 cửa sổbull Q = 2bull P = minK-1Q = 2

Server rảnh P=2 lần

Caacutec thagravenh phần trễbull 2 RTT dagravenh cho thiết lập kết nối vagrave yecircu cầubull OR để truyền đối tượngbullthời gian server rảnh bởi vigrave khởi động chậm

Server rảnh P = minK-1Q lần

Transport Layer 3-107

TCP Mocirc higravenh trễ(3)

R

S

R

SRTTPRTT

R

O

R

SRTT

R

SRTT

R

O

idleTimeRTTR

O

P

kP

k

P

pp

)12(][2

]2[2

2delay

1

1

1

th window after the timeidle 2 1 kR

SRTT

R

S k

ementacknowledg receivesserver until

segment send tostartsserver when from time RTTR

S

window kth the transmit totime2 1

R

Sk

RTT

initia te TCPconnection

requestobject

first w indow= S R

second w indow= 2S R

third w indow= 4S R

fourth w indow= 8S R

com pletetransm issionobject

delivered

tim e atc lient

tim e atserver

Transport Layer 3-108

TCP Mocirc higravenh trễ (4)

)1(log

)1(logmin

12min

222min

222min

2

2

110

110

S

OS

Okk

S

Ok

SOk

OSSSkK

k

k

k

caacutech tiacutenh toaacuten Q tương tự (xem HW)

K = số lượng cửa sổ bao trugravem đối tượngLagravem thế nagraveo tiacutenh được K

Transport Layer 3-109

HTTP Mocirc higravenh Giả sử trang Web chứa

1 trang HTML (kiacutech thước O bits) M higravenh ảnh (mỗi caacutei kiacutech thướcO bits)

HTTP khocircng bền vững M+1 TCP kết nối Thời gian đaacutep ứng = (M+1)OR + (M+1)2RTT + tổng số thời

gian rảnh HTTP bền vững

2 RTT để yecircu cầu vagrave nhận file HTML 1 RTT để yecircu cầu vagrave nhận M higravenh ảnh Thời gian đaacutep ứng = (M+1)OR + 3RTT + tổng số thời gian

rảnh HTTP khocircng bền vững với X kết nối song song

Giả sử MX lagrave số nguyecircn 1 TCP kết nối cho file MX thiết lập caacutec kết nối song song cho caacutec higravenh ảnh Thời gian đaacutep ứng = (M+1)OR + (MX + 1)2RTT + tổng số

thời gian rảnh

Transport Layer 3-110

02468

101214161820

28Kbps

100Kbps

1Mbps

10Mbps

non-persistent

persistent

parallel non-persistent

HTTP thời gian đaacutep ứng (giacircy)RTT = 100 msec O = 5 Kbytes M=10 vagrave X=5

Với băng thocircng thấp thời gian kết nối amp đaacutep ứng trội hơn thời gian truyền

Caacutec kết nối bền vững chỉ cho sự cải thiện khocircng đaacuteng kể trecircn caacutec kết nối song song

Transport Layer 3-111

0

10

20

30

40

50

60

70

28Kbps

100Kbps

1Mbps

10Mbps

non-persistent

persistent

parallel non-persistent

HTTP thời gian đaacutep ứng (giacircy)

RTT =1 sec O = 5 Kbytes M=10 and X=5

Với RTT lớn hơn thời gian đaacutep ứng trội hơn thời gian trễ chờ thiết lập kết nốiTCP amp khởi động chậm Caacutec kết nối bền vững bacircy giờ cho thấy cải thiện rotilde rệt đặc biệtvới caacutec mạng băng thocircng cao

Transport Layer 3-112

Chương 3 Tổng kết caacutec nguyecircn lyacute của caacutec

dịch vụ lớp transport multiplexing

demultiplexing truyền dữ liệu tin cậy điều khiển luồng điều khiển tắc nghẽn

khởi tạo vagrave hiện thực trong Internet UDP TCP

Tiếp theo nghiecircn cứu xong

caacutec vấn đề ldquongoagravei biecircnrdquo (caacutec lớp application transport)

chuẩn bị vagraveo phần ldquolotildeirdquo của mạng

  • Slide 1
  • Chương 3 Lớp Transport
  • Chương 3 Nội dung trigravenh bagravey
  • Caacutec dịch vụ vagrave giao thức Transport
  • Lớp Transport với lớp network
  • Caacutec giao thức lớp transport trecircn Internet
  • Slide 7
  • Multiplexingdemultiplexing
  • Demultiplexing lagravem việc như thế nagraveo
  • Demultiplexing khocircng kết nối
  • Demultiplexing khocircng kết nối (tiếp)
  • Demultiplexing hướng kết nối
  • Demultiplexing hướng kết nối (tiếp)
  • Demultiplexing hướng kết nối Threaded Web Server
  • Slide 15
  • UDP User Datagram Protocol [RFC 768]
  • UDP (tt)
  • UDP checksum
  • Viacute dụ Checksum
  • Slide 20
  • Caacutec nguyecircn lyacute truyền dữ liệu tin cậy
  • Slide 22
  • Slide 23
  • Truyền dữ liệu tin cậy
  • Slide 25
  • Rdt10 truyền dữ liệu tin cậy trecircn 1 kecircnh truyền tin cậy
  • Rdt20 kecircnh với caacutec lỗi
  • rdt20 đặc tả FSM
  • rdt20 hoạt động khi khocircng lỗi
  • rdt20 hoạt động khi coacute lỗi
  • rdt20 coacute lỗ hổng nghiecircm trọng
  • rdt21 người gửi quản lyacute caacutec ACKNAK bị hỏng
  • Slide 33
  • rdt21 thảo luận
  • rdt22 một giao thức khocircng cần NAK
  • rdt22 gửi nhận caacutec mảnh
  • rdt30 caacutec kecircnh với lỗi vagrave mất maacutet
  • rdt30 gửi
  • hagravenh động của rdt30
  • Slide 40
  • Hiệu suất của rdt30
  • rdt30 hoạt động dừng-vagrave-chờ
  • Caacutec giao thức Pipelined
  • Pipelining độ khả dụng tăng
  • Go-Back-N
  • GBN becircn gửi mở rộng FSM
  • GBN becircn nhận mở rộng FSM
  • GBN hoạt động
  • Lặp coacute lựa chọn
  • Lặp coacute lựa chọn caacutec cửa sổ gửi nhận
  • Slide 51
  • Hoạt động của lặp coacute lựa chọn
  • Lặp coacute lựa chọn tigravenh trạng khoacute giải quyết
  • Slide 54
  • TCP Tổng quan RFCs 793 1122 1323 2018 2581
  • TCP cấu truacutec đoạn
  • Caacutec số thứ tự TCP vagrave ACK
  • TCP Round Trip Time vagraveTimeout
  • TCP Round Trip Time vagrave Timeout
  • Viacute dụ đaacutenh giaacute RTT
  • Slide 61
  • TCP truyền dữ liệu tin cậy
  • TCP caacutec sự kiện
  • TCP becircn gửi (đơn giản)
  • TCP caacutec tigravenh huống truyền lại
  • TCP caacutec tigravenh huống truyền lại (tt)
  • TCP sinh ra ACK [RFC 1122 RFC 2581]
  • Truyền lại nhanh
  • Giải thuật truyền lại nhanh
  • Slide 70
  • TCP điều khiển luồng
  • TCP điều khiển luồng caacutech lagravem
  • Slide 73
  • TCP quản lyacute kết nối
  • TCP quản lyacute kết nối (tt)
  • Slide 76
  • Slide 77
  • Slide 78
  • Caacutec nguyecircn lyacute điều khiển tắc nghẽn
  • Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 1
  • Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 2
  • Slide 82
  • Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 3
  • Slide 84
  • Caacutec caacutech tiếp cận đối với điều khiển tắc nghẽn
  • Viacute dụ điều khiển tắc nghẽn ATM ABR
  • Slide 87
  • Slide 88
  • TCP điều khiển tắc nghẽn additive tăng lecircn multiplicative giảm xuống
  • TCP điều khiển tắc nghẽn chi tiết
  • TCP khởi động chậm
  • TCP khởi động chậm (tt)
  • Tinh chế
  • Tinh chế nhận biết mất maacutet
  • Tổng kết TCP điều khiển tắc nghẽn
  • TCP điều khiển tắc nghẽn becircn gửi
  • TCP throughput
  • TCP tương lai
  • TCP tiacutenh cocircng bằng
  • Tại sao phải TCP cocircng bằng
  • TCP tiacutenh cocircng bằng (tt)
  • Mocirc higravenh trễ
  • Cửa sổ tắc nghẽn cố định (1)
  • Cửa sổ tắc nghẽn cố định (2)
  • TCP Mocirc higravenh trễ Khởi động chậm (1)
  • TCP Mocirc higravenh trễ Khởi động chậm (2)
  • TCP Mocirc higravenh trễ(3)
  • TCP Mocirc higravenh trễ (4)
  • HTTP Mocirc higravenh
  • Slide 110
  • Slide 111
  • Chương 3 Tổng kết

Transport Layer 3-12

Demultiplexing hướng kết nối

TCP socket được xaacutec định bởi bộ 4 địa chỉ IP nguồn số port nguồn địa chỉ IP điacutech số port điacutech

host nhận dugraveng cả 4 giaacute trị trecircn để điều hướng đoạn đến socket thiacutech hợp

Host server coacute thể hỗ trợ nhiều TCP socket đồng thời mỗi socket được xaacutec

định bởi bộ 4 của noacute

Web server coacute caacutec socket khaacutec nhau cho mỗi kết nối từ client kết nối HTTP khocircng bền

vững sẽ coacute socket khaacutec nhau cho mỗi yecircu cầu

Transport Layer 3-13

Demultiplexing hướng kết nối (tiếp)

ClientIPB

P1

client IP A

P1P2P4

serverIP C

SP 9157

DP 80

SP 9157

DP 80

P5 P6 P3

D-IPCS-IP A

D-IPC

S-IP B

SP 5775

DP 80

D-IPCS-IP B

Transport Layer 3-14

Demultiplexing hướng kết nối Threaded Web Server

ClientIPB

P1

client IP A

P1P2

serverIP C

SP 9157

DP 80

SP 9157

DP 80

P4 P3

D-IPCS-IP A

D-IPC

S-IP B

SP 5775

DP 80

D-IPCS-IP B

Transport Layer 3-15

Chương 3 Nội dung trigravenh bagravey

31 Caacutec dịch vụ lớp Transport

32 Multiplexing vagrave demultiplexing

33 Vận chuyển khocircng kết nối UDP

34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy

35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối

36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn

37 Điều khiển tắc nghẽn TCP

Transport Layer 3-16

UDP User Datagram Protocol [RFC 768]

giao thức Internet transport ldquođơn giản hoacuteardquo

dịch vụ ldquobest effortrdquo caacutec đoạn UDP coacute thể mất maacutet vận chuyển khocircng thứ

tự đến ứng dụng connectionless (khocircng

kết nối) khocircng bắt tay giữa

người nhận vagrave người gửi UDP

mỗi đoạn UDP được quản lyacute độc lập

Coacute UDP để lagravem gigrave khocircng thiết lập kết nối

(giuacutep coacute thể thecircm delay) đơn giản khocircng trạng

thaacutei kết nối tại nơi gửi nơi nhận

header của đoạn nhỏ khocircng điều khiển tắc

nghẽn UDP coacute thể gửi nhanh nhất theo mong muốn

Transport Layer 3-17

UDP (tt)

thường dugraveng cho caacutec ứng dụng streaming multimedia chịu mất maacutet cảm nhận tốc độ

ngoagravei ra UDP dugraveng DNS SNMP

truyền tin cậy trecircn UDP thecircm khả năng nagravey tại lớp application sửa lỗi

source port dest port

32 bits

dữ liệu ứng dụng

(thocircng điệp)

dạng thức đoạn UDP

length checksumĐộ dagravei

đoạn UDPbao gồm cả

header

Transport Layer 3-18

UDP checksum

Người gửi đối xử caacutec nội dung

đoạn như một chuỗi caacutec số nguyecircn 16-bit

checksum bổ sung(tổng bugrave 1) của caacutec nội dung đoạn

đặt giaacute trị checksum vagraveo trường UDP checksum

Người nhận tiacutenh toaacuten checksum của

đoạn đatilde nhận kiểm tra giaacute trị trecircn coacute bằng

với giaacute trị trong trường checksum NO ndash coacute lỗi xảy ra YES ndash khocircng coacute lỗi Nhưng coacute thể cograven lỗi

khaacutec nữa Xem tiếp phần sau hellip

Mục tiecircu kiểm tra caacutec ldquolỗirdquo (caacutec bit cờ đatilde bật lecircn) trong caacutec đoạn đatilde truyền

Transport Layer 3-19

Viacute dụ Checksum Lưu yacute

Khi cộng caacutec số một bit nhớ ở phiacutea cao nhất coacute thể sẽ phải thecircm vagraveo kết quả

Viacute dụ cộng hai số nguyecircn 16-bit

1 1 1 1 0 0 1 1 0 0 1 1 0 0 1 1 01 1 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1

1 1 0 1 1 1 0 1 1 1 0 1 1 1 0 1 1

1 1 0 1 1 1 0 1 1 1 0 1 1 1 1 0 01 0 1 0 0 0 1 0 0 0 1 0 0 0 0 1 1

bit dư

tổngchecksum

Transport Layer 3-20

Chương 3 Nội dung trigravenh bagravey

31 Caacutec dịch vụ lớp Transport

32 Multiplexing vagrave demultiplexing

33 Vận chuyển khocircng kết nối UDP

34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy

35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối

36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn

37 Điều khiển tắc nghẽn TCP

Transport Layer 3-21

Caacutec nguyecircn lyacute truyền dữ liệu tin cậy quan trọng trong caacutec lớp application transport link lagrave danh saacutech 10 vấn đề quan trọng nhất của mạng

caacutec đặc thugrave của kecircnh truyền khocircng tin cậy sẽ xaacutec định sự phức tạp của giao thức truyền dữ liệu data transfer protocol (rdt)

Transport Layer 3-22

Caacutec nguyecircn lyacute truyền dữ liệu tin cậy quan trọng trong caacutec lớp application transport link lagrave danh saacutech 10 vấn đề quan trọng nhất của mạng

caacutec đặc thugrave của kecircnh truyền khocircng tin cậy sẽ xaacutec định sự phức tạp của giao thức truyền dữ liệu data transfer protocol (rdt)

Transport Layer 3-23

Caacutec nguyecircn lyacute truyền dữ liệu tin cậy quan trọng trong caacutec lớp application transport link lagrave danh saacutech 10 vấn đề quan trọng nhất của mạng

caacutec đặc thugrave của kecircnh truyền khocircng tin cậy sẽ xaacutec định sự phức tạp của giao thức truyền dữ liệu data transfer protocol (rdt)

Transport Layer 3-24

Truyền dữ liệu tin cậy

sendside

receiveside

rdt_send() được gọi bởi lớp app Chuyển dữ liệu cần truyền

đến lớp cao hơn becircn nhận

udt_send() được gọi bởi rdt để truyền caacutec goacutei trecircn kecircnh khocircng tin cậy đến nơi

nhận

rdt_rcv() được gọi khi goacutei đến kecircnh becircn nhận

deliver_data() được gọi bởi rdt để truyền dữ liệu

đến lớp cao hơn

Transport Layer 3-25

Truyền dữ liệu tin cậy

Sẽ chỉ xem xeacutet truyền dữ liệu theo 1 hướng duy

nhất nhưng điều khiển luồng thocircng tin sẽ theo cả 2

chiều

dugraveng maacutey trạng thaacutei hữu hạn (finite state machines-FSM) để xaacutec định người gửi người nhận

trthaacutei1

trthaacutei2

sự kiện gacircy ra trạng thaacutei truyềncaacutec hagravenh động xảy ra khi truyền

trạng thaacutei khi ở ldquotrạng thaacuteirdquo nagravey thigrave

trạng thaacutei kế tiếp duy nhất được xaacutec định bởi sự kiện kế

tiếp

sự kiệncaacutec hagravenh động

Transport Layer 3-26

Rdt10 truyền dữ liệu tin cậy trecircn 1 kecircnh truyền tin cậy

kecircnh ưu tiecircn tin cậy hoagraven toagraven khocircng coacute caacutec lỗi khocircng mất maacutet caacutec goacutei

caacutec FSM phacircn biệt cho người gửi người nhận người gửi gửi dữ liệu vagraveo kecircnh ưu tiecircn người nhận nhận dữ liệu từ kecircnh ưu tiecircn

chờ gọi từ lớp trecircn packet = make_pkt(data)

udt_send(packet)

rdt_send(data)

extract (packetdata)deliver_data(data)

chờ gọi từ lớp dưới

rdt_rcv(packet)

người gửi người nhận

Transport Layer 3-27

Rdt20 kecircnh với caacutec lỗi

kecircnh ưu tiecircn coacute thể bật lecircn một số bit trong goacutei checksum để kiểm tra caacutec lỗi

Hỏi lagravem sao khocirci phục caacutec lỗi acknowledgements (ACKs) becircn nhận rotilde ragraveng thocircng

baacuteo cho becircn gửi rằng quaacute trigravenh nhận goacutei tốt negative acknowledgements (NAKs) becircn nhận rotilde ragraveng

thocircng baacuteo cho becircn gửi rằng quaacute trigravenh nhận goacutei coacute lỗi người gửi gửi lại goacutei nagraveo được xaacutec nhận lagrave NAK

caacutec cơ chế mới trong rdt20 (sau rdt10) kiểm tra lỗi nhận phản hồi caacutec thocircng điệp điều khiển (ACKNAK)

becircn nhận becircn gửi

Transport Layer 3-28

rdt20 đặc tả FSM

chờ gọi từ lớp trecircn

snkpkt = make_pkt(data checksum)udt_send(sndpkt)

extract(rcvpktdata)deliver_data(data)udt_send(ACK)

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)

rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp isNAK(rcvpkt)

udt_send(NAK)

rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)

chờ ACK hoặc NAK

chờ gọi từ lớp dưới

người gửi

người nhậnrdt_send(data)

Transport Layer 3-29

rdt20 hoạt động khi khocircng lỗi

chờ gọi từ lớp dưới

snkpkt = make_pkt(data checksum)udt_send(sndpkt)

extract(rcvpktdata)deliver_data(data)udt_send(ACK)

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)

rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp isNAK(rcvpkt)

udt_send(NAK)

rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)

chờ ACK hoặc NAK

chờ gọi từ lớp dưới

rdt_send(data)

Transport Layer 3-30

rdt20 hoạt động khi coacute lỗi

chờ gọi từ lớp dưới

snkpkt = make_pkt(data checksum)udt_send(sndpkt)

extract(rcvpktdata)deliver_data(data)udt_send(ACK)

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)

rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp isNAK(rcvpkt)

udt_send(NAK)

rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)

chờ ACK hoặc NAK

chờ gọi từ lớp dưới

rdt_send(data)

Transport Layer 3-31

rdt20 coacute lỗ hổng nghiecircm trọngĐiều gigrave xảy ra nếu

ACKNAK bị hỏng người gửi khocircng biết điều

gigrave đatilde xảy ra tại becircn nhận

khocircng thể đơn phương truyền lại khả năng trugraveng lặp

Quản lyacute trugraveng lặp người gửi truyền lại goacutei

hiện tại nếu ACKNAK bị hỏng

người gửi thecircm số thứ tự vagraveo mỗi goacutei

người nhận hủy (khocircng nhận) goacutei trugraveng lặp

Người gửi gửi 1 goacutei sau đoacute dừng lại chờ phản hồitừ người nhận

dừng vagrave chờ

Transport Layer 3-32

rdt21 người gửi quản lyacute caacutec ACKNAK bị hỏng

chờ gọi 0 từ lớp trecircn

sndpkt = make_pkt(0 data checksum)udt_send(sndpkt)

rdt_send(data)

chờ ACK hoặc NAK

0 udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) ||isNAK(rcvpkt) )

sndpkt = make_pkt(1 data checksum)udt_send(sndpkt)

rdt_send(data)

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) ||isNAK(rcvpkt) )

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt)

chờ gọi 1 từ lớp trecircn

chờ ACK hoặc NAK

1

Transport Layer 3-33

rdt21 người gửi quản lyacute caacutec ACKNAK bị hỏng

chờ 0 từ dưới

sndpkt = make_pkt(NAK chksum)udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp not corrupt(rcvpkt) ampamp has_seq0(rcvpkt)

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp has_seq1(rcvpkt)

extract(rcvpktdata)deliver_data(data)sndpkt = make_pkt(ACK chksum)udt_send(sndpkt)

chờ 1 từ dưới

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp has_seq0(rcvpkt)

extract(rcvpktdata)deliver_data(data)sndpkt = make_pkt(ACK chksum)udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp (corrupt(rcvpkt)

sndpkt = make_pkt(ACK chksum)udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp not corrupt(rcvpkt) ampamp has_seq1(rcvpkt)

rdt_rcv(rcvpkt) ampamp (corrupt(rcvpkt)

sndpkt = make_pkt(ACK chksum)udt_send(sndpkt)

sndpkt = make_pkt(NAK chksum)udt_send(sndpkt)

Transport Layer 3-34

rdt21 thảo luận

người gửi số thứ tự thecircm vagraveo

goacutei chỉ cần hai số thứ tự

(01) lagrave đủ Tại sao phải kiểm tra nếu việc

nhận ACKNAK bị hỏng

số trạng thaacutei tăng lecircn 2 lần trạng thaacutei phải ldquonhớrdquo

goacutei ldquohiện tạirdquo coacute số thứ tự lagrave 0 hay 1

người nhận phải kiểm tra coacute

nhận trugraveng goacutei khocircng trạng thaacutei chỉ rotilde coacute

hay khocircng mong chờ số thứ tự 0 hoặc 1

chuacute yacute người nhận khocircng biết ACKNAK vừa rồi của noacute coacute được người gửi nhận tốt hay khocircng

Transport Layer 3-35

rdt22 một giao thức khocircng cần NAK

chức năng giống như rdt21 chỉ dugraveng caacutec ACK thay cho NAK người nhận gửi ACK cho goacutei vừa

rồi đatilde nhận tốt người nhận phải rotilde ragraveng chegraven số thứ tự của goacutei vừa ACK

trugraveng ACK tại người gửi hậu quả giống như hagravenh động của NAK truyền lại goacutei vừa rồi

Transport Layer 3-36

rdt22 gửi nhận caacutec mảnh

Chờ cho gọi 0 từ

trecircn

sndpkt = make_pkt(0 data checksum)udt_send(sndpkt)

rdt_send(data)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) || isACK(rcvpkt1) )

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt0)

Chờ cho ACK

0

gửi phacircn mảnhFSM

Chờ cho gọi

0 từ dưới

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp has_seq1(rcvpkt)

extract(rcvpktdata)deliver_data(data)sndpkt = make_pkt(ACK1 chksum)udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp (corrupt(rcvpkt) || has_seq1(rcvpkt))

udt_send(sndpkt)

nhận phacircn mảnhFSM

Transport Layer 3-37

rdt30 caacutec kecircnh với lỗi vagrave mất maacutet

Giả định mới kecircnh ưu tiecircn cũng coacute thể lagravem mất caacutec goacutei (dữ liệu hoặc caacutec ACK) checksum số thứ tự

caacutec ACK caacutec việc truyền lại sẽ hỗ trợ nhưng khocircng đủ

Caacutech tiếp cận người gửi chờ ACK trong khoảng thời gian ldquochấp nhận đượcrdquo

truyền lại nếu khocircng nhận ACK trong khoảng thời gian nagravey

nếu goacutei (hoặc ACK) chỉ trễ (khocircng mất) truyền lại sẽ gacircy trugraveng

nhưng dugraveng số thứ tự sẽ giải quyết được

người nhận phải xaacutec định số thứ tự của goacutei vừa gửi ACK

cần bộ định thigrave đếm lugravei

Transport Layer 3-38

rdt30 gửi

sndpkt = make_pkt(0 data checksum)udt_send(sndpkt)start_timer

rdt_send(data)

Chờ cho

ACK 0

rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) ||isACK(rcvpkt1) )

Chờ cho gọi 1 từ trecircn

sndpkt = make_pkt(1 data checksum)udt_send(sndpkt)start_timer

rdt_send(data)

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt0)

rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) ||isACK(rcvpkt0) )

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt1)

stop_timerstop_timer

udt_send(sndpkt)start_timer

timeout

udt_send(sndpkt)start_timer

timeout

rdt_rcv(rcvpkt)

Chờ cho gọi 0 từ trecircn

Chờ cho

ACK 1

rdt_rcv(rcvpkt)

Transport Layer 3-39

hagravenh động của rdt30

Transport Layer 3-40

hagravenh động của rdt30

Transport Layer 3-41

Hiệu suất của rdt30

rdt30 lagravem việc được nhưng đaacutenh giaacute hiệu suất hơi rắc rối viacute dụ liecircn kết 1 Gbps trễ lan truyền giữa hai đầu cuối lagrave 15

ms goacutei 1KB

T truyền = 8kbpkt109 bsec

= 8 microsec

U sender độ khả dụng ndash

U sender

= 008

30008 = 000027

microseconds

L R

RTT + L R =

L (độ dagravei goacutei tiacutenh bằng bits)R (tốc độ truyền bps)

=

goacutei 1KB mỗi 30 msec -gt 33kBs trecircn đường truyền 1 Gbps giao thức network hạn chế việc dugraveng caacutec tagravei nguyecircn vật

lyacute

Transport Layer 3-42

rdt30 hoạt động dừng-vagrave-chờ

goacutei đầu tiecircn đatilde truyền t = 0

gửi nhận

RTT

goacutei cuối cugraveng đatilde truyền t = L R

goacutei đầu tiecircn đatilde đếngoacutei cuối cugraveng đatilde đến gửi ACK

ACK đến gửi goacutei kế tiếp t = RTT + L R

U sender

= 008

30008 = 000027

microseconds

L R

RTT + L R =

Transport Layer 3-43

Caacutec giao thức Pipelined

Pipelining người gửi cho pheacutep gửi nhiều goacutei đồng thời khocircng cần chờ baacuteo nhận được nhoacutem caacutec số thứ tự phải tăng dần phải coacute bộ nhớ đệm tại nơi gửi vagravehoặc nơi nhận

hai dạng phổ biến của caacutec giao thức pipelined go-Back-N Lặp coacute lựa chọn

Transport Layer 3-44

Pipelining độ khả dụng tăng

goacutei đầu tiecircn đatilde truyền t = 0

sender receiver

RTT

goacutei cuối cugraveng đatilde truyền t = L R

goacutei đầu tiecircn đatilde đếngoacutei cuối cugraveng đatilde đến gửi ACK

ACK đến gửi goacuteikế tiếp t = RTT + L R

bit cuối của goacutei thứ 2 đến gửi ACKbit cuối của goacutei thứ 3 đến gửi ACK

U sender

= 024

30008 = 00008

microseconds

3 L R

RTT + L R =

Độ khả dụng tăng lecircngấp 3 lần

Transport Layer 3-45

Go-Back-NBecircn gửi k-bit số thứ tự trong header của goacutei ldquocửa sổrdquo tăng lecircn đến N cho pheacutep gửi caacutec goacutei liecircn tục khocircng cần ACK

ACK(n) ACKs tất cả caacutec goacutei đến chứa số thứ tự n ndash ldquoACK tiacutech lũyrdquo coacute thể nhận caacutec ACK trugraveng lặp (xem becircn nhận)

định thigrave cho mỗi goacutei trecircn đường truyền timeout(n) gửi lại goacutei n vagrave tất cả caacutec goacutei coacute số thứ tự cao

hơn trong cửa sổ

Transport Layer 3-46

GBN becircn gửi mở rộng FSM

chờ start_timerudt_send(sndpkt[base])udt_send(sndpkt[base+1])hellipudt_send(sndpkt[nextseqnum-1])

timeout

rdt_send(data)

if (nextseqnum lt base+N) sndpkt[nextseqnum] = make_pkt(nextseqnumdatachksum) udt_send(sndpkt[nextseqnum]) if (base == nextseqnum) start_timer nextseqnum++ else refuse_data(data)

base = getacknum(rcvpkt)+1If (base == nextseqnum) stop_timer else start_timer

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)

base=1nextseqnum=1

rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)

Transport Layer 3-47

GBN becircn nhận mở rộng FSM

ACK-duy nhất luocircn luocircn gửi ACK cho goacutei đatilde nhận đuacuteng với số thứ tự xếp hạng cao nhất coacute thể sinh ra caacutec ACK trugraveng nhau chỉ cần nhớ expectedseqnum

goacutei khocircng theo thứ tự hủy -gt khocircng nhận vagraveo bộ đệm gửi lại ACK với số thứ tự xếp hạng cao nhất

chờ

udt_send(sndpkt)

default

rdt_rcv(rcvpkt) ampamp notcurrupt(rcvpkt) ampamp hasseqnum(rcvpktexpectedseqnum)

extract(rcvpktdata)deliver_data(data)sndpkt = make_pkt(expectedseqnumACKchksum)udt_send(sndpkt)expectedseqnum++

expectedseqnum=1sndpkt = make_pkt(expectedseqnumACKchksum)

Transport Layer 3-48

GBN hoạt động

Transport Layer 3-49

Lặp coacute lựa chọn

becircn nhận thocircng baacuteo đatilde nhận đuacuteng tất cả từng goacutei một đệm (buffer) caacutec goacutei nếu cần thiết

becircn gửi chỉ gửi lại caacutec goacutei nagraveo khocircng nhận được ACK becircn gửi định thigrave đối với mỗi goacutei khocircng gửi ACK

cửa sổ becircn gửi N số thứ tự liecircn tục hạn chế số thứ tự caacutec goacutei khocircng gửi ACK

Transport Layer 3-50

Lặp coacute lựa chọn caacutec cửa sổ gửi nhận

Transport Layer 3-51

Lặp coacute lựa chọn

dữ liệu từ lớp trecircn nếu số thứ tự kế tiếp sẵn

sagraveng trong cửa sổ gửi goacutei

timeout(n) gửi lại goacutei n taacutei khởi tạo

bộ định thigrave

ACK(n) trong [sendbasesendbase+N]

đaacutenh dấu goacutei n lagrave đatilde nhận nếu goacutei khocircng ACK coacute n

nhỏ nhất dịch chuyển cửa sổ base đến số thứ tự khocircng ACK kế tiếp

Gửigoacutei n trong [rcvbase

rcvbase+N-1]

gửi ACK(n) khocircng thứ tự đệm

(buffer) coacute thứ tự truyền (cũng

truyền caacutec goacutei đatilde đệm coacute thứ tự) dịch chuyển cửa sổ đến goacutei chưa nhận kế tiếp

goacutei n trong [rcvbase-Nrcvbase-1]

ACK(n)

ngược lại lờ đi

Nhận

Transport Layer 3-52

Hoạt động của lặp coacute lựa chọn

Transport Layer 3-53

Lặp coacute lựa chọntigravenh trạng khoacute giải quyếtViacute dụ Số thứ tự 0 1 2 3 Kiacutech thước cửa sổ = 3

becircn nhận khocircng thấy sự khaacutec nhau trong 2 tigravenh huống

chuyển khocircng chiacutenh xaacutec dữ liệu trugraveng lặp như dữ liệu mới trong (a)

Hỏi quan hệ giữa datildey số thứ tự vagrave kiacutech thước cửa sổ

Transport Layer 3-54

Chương 3 Nội dung trigravenh bagravey

31 Caacutec dịch vụ lớp Transport

32 Multiplexing vagrave demultiplexing

33 Vận chuyển khocircng kết nối UDP

34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy

35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối

36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn

37 Điều khiển tắc nghẽn TCP

Transport Layer 3-55

TCP Tổng quan RFCs 793 1122 1323 2018 2581

dữ liệu full duplex luồng dữ liệu đi 2 chiều

trong cugraveng một kết nối MSS maximum

segment size ndash kiacutech thước đoạn tối đa

hướng kết nối bắt tay (trao đổi caacutec

thocircng điệp điều khiển) trạng thaacutei becircn gửi becircn nhận trước khi trao đổi dữ liệu

điều khiển luồng becircn gửi sẽ khocircng lấn aacutet

becircn nhận

point-to-point một becircn gửi một becircn

nhận tin cậy dograveng byte coacute

thứ tự khocircng ldquoranh giới thocircng

điệprdquo kecircnh liecircn lạc

TCP điều khiển luồng vagrave tắc nghẽn thiết lập kiacutech thước cửa sổ

caacutec bộ đệm gửi amp nhận

socketdoor

T C Psend buffer

T C Preceive buffer

socketdoor

segm ent

applicationwrites data

applicationreads data

Transport Layer 3-56

TCP cấu truacutec đoạn

port nguồn port điacutech

32 bits

dữ liệu ứng dụng(độ dagravei thay đổi)

số thứ tự

số ACKcửa sổ nhận

con trỏ URGchecksum

FSRPAUheadlen

notused

Tugravey chọn (độ dagravei thay đổi)

URG dữ liệu khẩn cấp(thường khocircng dugraveng)

ACK ACK hợp lệ

PSH push data now(thường khocircng dugraveng)

RST SYN FINthiết lập kết nối

(caacutec lệnh thiết lậpchia nhỏ)

số byte becircn nhận sẵn sagraveng chấp nhận

đếm bởi số bytecủa dữ liệu

Internetchecksum

(giống UDP)

Transport Layer 3-57

Caacutec số thứ tự TCP vagrave ACKCaacutec số thứ tự

dograveng byte ldquođaacutenh sốrdquo byte đầu tiecircn trong dữ liệu của đoạn

caacutec ACK số thứ tự của byte

kế tiếp được chờ đợi từ phiacutea becircn kia

ACK tiacutech lũyHỏi lagravem thế nagraveo becircn

nhận quản lyacute caacutec đoạn khocircng thứ tự Trả lời TCP khocircng

đề cập tugravey thuộc người hiện thực

Host A Host B

Seq=42 ACK=79 data = lsquoCrsquo

Seq=79 ACK=43 data = lsquoCrsquo

Seq=43 ACK=80

UsernhậplsquoCrsquo

host ACKsnhận phản hồi

lsquoCrsquo

host ACKsbaacuteo nhận

lsquoCrsquo phản hồingược lại lsquoCrsquo

timetigravenh huống telnet đơn giản

Transport Layer 3-58

TCP Round Trip Time vagraveTimeout

Hỏi Lagravem thế nagraveo để thiết lập giaacute trị TCP timeout

dagravei hơn RTT khaacutec với RTT

quaacute ngắn timeout sớm truyền lại khocircng

cần thiết quaacute dagravei phản ứng

chậm đối với việc mất maacutet goacutei

Hỏi Lagravem thế nagraveo để thiết lập RTT

SampleRTT thời gian được đo từ khi truyền đoạn đến khi baacuteo nhận ACK lờ đi việc truyền lại

SampleRTT sẽ thay đổi muốn ước lượng RTT ldquomượt hơnrdquo tiacutenh trung bigravenh một số giaacute

trị đo được gần đoacute khocircng chỉ SampleRTT hiện tại

Transport Layer 3-59

TCP Round Trip Time vagrave Timeout

EstimatedRTT = (1- )EstimatedRTT + SampleRTT

giaacute trị đặc trưng = 0125

Transport Layer 3-60

Viacute dụ đaacutenh giaacute RTTRTT gaiacsumassedu to fantasiaeurecomfr

100

150

200

250

300

350

1 8 15 22 29 36 43 50 57 64 71 78 85 92 99 106

time (seconnds)

RTT

(mill

isec

onds

)

SampleRTT Estimated RTT

Transport Layer 3-61

TCP Round Trip Time vagrave Timeout

Thiết lập timeout EstimtedRTT cộng ldquohệ số dự trữ an toagravenrdquo

sự biến thiecircn lớn trong EstimatedRTT -gt hệ số dự trữ an toagraven lớn hơn ước lượng đầu tiecircn về sự biến thiecircn của SampleRTT từ EstimatedRTT

TimeoutInterval = EstimatedRTT + 4DevRTT

DevRTT = (1-)DevRTT + |SampleRTT-EstimatedRTT|

(tiecircu biểu = 025)

Sau đoacute thiết lập timeout interval

Transport Layer 3-62

TCP truyền dữ liệu tin cậy

TCP tạo dịch vụ rdt trecircn dịch vụ khocircng tin cậy IP

caacutec đoạn Pipelined caacutec ACK tiacutech lũy TCP dugraveng bộ định thigrave

truyền lại đơn

Truyền lại được kiacutech hoạt bởi caacutec sự kiện timeout caacutec ack trugraveng lặp

luacutec đầu khảo saacutet caacutec becircn gửi TCP đơn giản lờ đi caacutec ack trugraveng lặp lờ đi điều khiển luồng

điều khiển tắc nghẽn

Transport Layer 3-63

TCP caacutec sự kiệndữ liệu đatilde nhận từ ứng

dụng tạo đoạn với số thứ

tự của noacute số thứ tự lagrave số theo

byte dữ liệu đầu tiecircn khởi động bộ định thigrave

nếu chưa chạy khoảng thời gian hết

hạn TimeOutInterval

timeout gửi lại đoạn nagraveo gacircy

ra timeout khởi động lại bộ định

thigrave Ack đatilde nhận

cập nhật caacutei gigrave sẽ được ACK

khởi động bộ định thigrave nếu coacute caacutec đoạn cograven chờ

Transport Layer 3-64

TCP becircn gửi(đơn giản)

NextSeqNum = InitialSeqNum SendBase = InitialSeqNum

loop (forever) switch(event)

event data received from application above create TCP segment with sequence number NextSeqNum if (timer currently not running) start timer pass segment to IP NextSeqNum = NextSeqNum + length(data)

event timer timeout retransmit not-yet-acknowledged segment with smallest sequence number start timer

event ACK received with ACK field value of y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer

end of loop forever

Chuacute thiacutechbull SendBase-1 byte vừa được ACK tiacutech lũy Viacute dụbull SendBase-1 = 71y= 73 vigrave thế becircn nhận muốn 73+ y gt SendBase vigrave thế dữ liệu mới được chấp nhận

Transport Layer 3-65

TCP caacutec tigravenh huống truyền lại

Host A

Seq=100 20 bytes data

ACK=100

timetimeout sớm

Host B

Seq=92 8 bytes data

ACK=120

Seq=92 8 bytes data

Seq=

92

tim

eout

ACK=120

Host A

Seq=92 8 bytes data

ACK=100

loss

tim

eout

tigravenh huống mất ACK

Host B

X

Seq=92 8 bytes data

ACK=100

time

Seq=

92

tim

eout

SendBase= 100

SendBase= 120

SendBase= 120

Sendbase= 100

Transport Layer 3-66

TCP caacutec tigravenh huống truyền lại (tt)Host A

Seq=92 8 bytes data

ACK=100

loss

tim

eout

Cumulative ACK scenario

Host B

X

Seq=100 20 bytes data

ACK=120

time

SendBase= 120

Transport Layer 3-67

TCP sinh ra ACK [RFC 1122 RFC 2581]

Sự kiện tại becircn nhận

Đoạn đến với đuacuteng số thứ tự mong muốn Tất cả dữ liệu đếnđatilde được ACK

Đoạn đến với đuacuteng số thứ tự mong muốn Một đoạn khaacutec đangchờ ACK

Caacutec đoạn đến khocircng thứ tựlớn hơn số thứ tự đoạn mong muốnCoacute khoảng trống

Đoạn đếnlấp đầy từng phần hoặc toagraven bộkhoảng trống

TCP becircn nhận hagravenh động

ACK trễ Chờ đến 500mscho đoạn kế tiếp Nếu khocircng coacute đoạnkế tiếp gửi ACK

Gửi ngay một ACK tiacutech lũy chấp nhậncho cả caacutec đoạn theo thứ tự

Gửi ngay ACK trugraveng lặp chỉ thị số thứ tựđoạn của byte kế tiếp đang mong chờ

Gửi ngay ACK với điều kiện lagrave đoạnbắt đầu ngay điểm coacute khoảng trống

Transport Layer 3-68

Truyền lại nhanh

Chu kỳ Time-out thường tương đối dagravei độ trễ dagravei trước khi gửi

lại goacutei đatilde mất

Xaacutec nhận caacutec đoạn đatilde mất bằng caacutec ACK trugraveng lặp becircn gửi thường gửi

nhiều đoạn song song Nếu đoạn bị mất sẽ

xảy ra tigravenh trạng giống như nhiều ACK trugraveng nhau

Nếu becircn gửi nhận 3 ACK của cugraveng một dữ liệu noacute cho lagrave đoạn sau dữ liệu đatilde ACK bị mất Truyền lại nhanh gửi

lại đoạn trước khi bộ định thigrave hết hạn

Transport Layer 3-69

sự kiện ACK đatilde nhận với trường lagrave y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer else increment count of dup ACKs received for y if (count of dup ACKs received for y = 3) resend segment with sequence number y

Giải thuật truyền lại nhanh

một ACK trugraveng lặp cho đoạn đatilde được ACK

Truyền lại nhanh

Transport Layer 3-70

Chương 3 Nội dung trigravenh bagravey

31 Caacutec dịch vụ lớp Transport

32 Multiplexing vagrave demultiplexing

33 Vận chuyển khocircng kết nối UDP

34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy

35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối

36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn

37 Điều khiển tắc nghẽn TCP

Transport Layer 3-71

TCP điều khiển luồng

becircn nhận của kết nối TCP coacute một bộ đệm nhận

dịch vụ so trugraveng tốc độ so trugraveng tốc độ gửi với tốc độ nhận của ứng dụng

tiến trigravenh ứng dụng coacute thể chậm tại luacutec đọc bộ đệm

becircn gửi sẽ khocircng lagravem tragraven bộ đệm vigrave truyền quaacute nhiều vagrave

quaacute nhanh

điều khiển luồng

Transport Layer 3-72

TCP điều khiển luồng caacutech lagravem

(Giả sử becircn nhận TCP loại bỏ caacutec đoạn khocircng coacute thứ tự)

dự phograveng trong bộ đệm= RcvWindow

= RcvBuffer-[LastByteRcvd - LastByteRead]

Becircn nhận thocircng baacuteo khoảng dự trữ nhờ giaacute trị RcvWindow trong caacutec đoạn

Becircn gửi hạn chế dữ liệu khocircng được ACK vagraveo RcvWindow bảo đảm bộ đệm nhận

khocircng tragraven

Transport Layer 3-73

Chương 3 Nội dung trigravenh bagravey

31 Caacutec dịch vụ lớp Transport

32 Multiplexing vagrave demultiplexing

33 Vận chuyển khocircng kết nối UDP

34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy

35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối

36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn

37 Điều khiển tắc nghẽn TCP

Transport Layer 3-74

TCP quản lyacute kết nối

Chuacute yacute Becircn gửi vagrave becircn nhận TCP thiết lập ldquokết nốirdquo trước khi trao đổi dữ liệu

khởi tạo caacutec biến TCP caacutec số thứ tự đoạn thocircng tin caacutec bộ đệm điều

khiển luồng (như RcvWindow)

client người khởi xướng kết nối

Socket clientSocket = new Socket(hostnameport

number) server được tiếp xuacutec bởi

client Socket connectionSocket =

welcomeSocketaccept()

3 phương phaacutep bắt tay

Bước 1 client host gửi đoạnTCP SYN đến server xaacutec định số thứ tự khởi đầu khocircng phải dữ liệu

Bước 2 server host nhận SYN trả lời với đoạn SYNACK

server cấp phaacutet caacutec bộ đệm

xaacutec định số thứ tự khởi đầuBước 3 client nhận SYNACK trả

lời với đoạn ACK (coacute thể chứa dữ liệu)

Transport Layer 3-75

TCP quản lyacute kết nối (tt)

Đoacuteng một kết nối

client đoacuteng socket clientSocketclose()

Bước 1 client gửi đoạn điều khiển TCP FIN đến server

Bước 2 server nhận FIN trả lời với ACK Đoacuteng kết nối gửi FIN

client

FIN

server

ACK

ACK

FIN

đoacuteng

đoacuteng

đatilde đoacutengthời g

ian c

hờ

Transport Layer 3-76

TCP quản lyacute kết nối (tt)

Bước 3 client nhận FIN trả lời với ACK

Trong khoảng ldquothời gian chờrdquo ndash sẽ phản hồi với ACK để nhận caacutec FIN

Bước 4 server nhận ACK Kết nối đatilde đoacuteng

Chuacute yacute với một sửa đổi nhỏ coacute thể quản lyacute nhiều FIN đồng thời

client

FIN

server

ACK

ACK

FIN

đang đoacuteng

đang đoacuteng

đatilde đoacuteng

thời g

ian c

hờ

đatilde đoacuteng

Transport Layer 3-77

TCP quản lyacute kết nối (tt)

chu kỳ sống củaTCP client

chu kỳ sống củaTCP server

Transport Layer 3-78

Chương 3 Nội dung trigravenh bagravey

31 Caacutec dịch vụ lớp Transport

32 Multiplexing vagrave demultiplexing

33 Vận chuyển khocircng kết nối UDP

34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy

35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối

36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn

37 Điều khiển tắc nghẽn TCP

Transport Layer 3-79

Caacutec nguyecircn lyacute điều khiển tắc nghẽn

Tắc nghẽn ldquoquaacute nhiều nguồn gửi quaacute nhanh vagrave quaacute nhiều

dữ liệu đến mạngrdquo khaacutec với điều khiển luồng caacutec biểu hiện

caacutec goacutei bị mất (tragraven bộ đệm tại caacutec router) caacutec độ trễ quaacute dagravei (xếp hagraveng trong bộ đệm

của router) lagrave 1 trong 10 vấn đề nan giải nhất

Transport Layer 3-80

Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 1

2 gửi 2 nhận 1 router caacutec bộ

đệm khocircng giới hạn

khocircng coacute truyền lại

caacutec độ trễ lớn hơn khi tắc nghẽn

năng suất coacute thể đạt tối đa

unlimited shared output link buffers

Host Ain original data

Host B

out

Transport Layer 3-81

Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 2

1 router caacutec bộ đệm coacute giới hạn becircn gửi truyền lại caacutec goacutei đatilde mất

chia sẻ vocirc hạncaacutec bộ đệm ouput

Host A in dữ liệu gốc

Host B

out

in dữ liệu gốc cugraveng với dữ liệu truyền lại

Transport Layer 3-82

Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 2 luocircn luocircn

truyền lại ldquohoagraven toagravenrdquo chỉ khi mất maacutet

truyền lại vigrave trễ (khocircng mất) lagravem cho lớn hơn với cugraveng

in

out

=

in

out

gt

in

out

ldquocaacutec chi phiacuterdquo của tắc nghẽn nhiều việc (truyền lại) caacutec truyền lại khocircng cần thiết liecircn kết nhiều bản sao của

goacutei

R2

R2in

ou

t

b

R2

R2in

ou

t

a

R2

R2in

ou

t

c

R4

R3

Transport Layer 3-83

Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 3 4 người gửi caacutec đường qua nhiều hop timeouttruyền lại

in

Hỏi điều gigrave xảy ra nếu vagrave tăng lecircn

in

chia sẻ vocirc hạncaacutec bộ đệm ouput

Host Ain dữ liệu gốc

Host B

out

in dữ liệu gốc cugraveng với dữ liệu truyền lại

Transport Layer 3-84

Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 3

ldquochi phiacuterdquo khaacutec của tắc nghẽn khi caacutec goacutei bị bỏ bất kỳ ldquokhả năng truyền

upstream dugraveng cho goacutei đoacute sẽ bị latildeng phiacuterdquo

Host A

Host B

o

u

t

Transport Layer 3-85

Caacutec caacutech tiếp cận đối với điều khiển tắc nghẽn

điều khiển tắc nghẽn end-end

khocircng coacute phản hồi rotilde ragraveng từ mạng

tắc nghẽn được suy ra từ việc quan saacutet caacutec hệ thống đầu cuối coacute mất maacutet trễ

tiếp cận được quản lyacute bởi TCP

điều khiển tắc nghẽn coacute sự hỗ trợ của mạng

caacutec router cung cấp phản hồi về caacutec hệ thống đầu cuối 1 bit duy nhất chỉ thị

tắc nghẽn (SNA DECbit TCPIP ECN ATM)

tốc độ sẽ gửi được xaacutec định rotilde ragraveng

2 caacutech

Transport Layer 3-86

Viacute dụ điều khiển tắc nghẽn ATM ABR

ABR tốc độ bit sẵn sagraveng

ldquodịch vụ mềm dẻordquo nếu đường gửi ldquochưa

hếtrdquo becircn gửi sẽ dugraveng

băng thocircng sẵn sagraveng nếu đường gửi tắc

nghẽn becircn gửi điều tiết với

tốc độ tối thiểu

RM (resource management)

gửi bởi becircn gửi rải raacutec với caacutec ocirc dữ liệu

caacutec bit trong ocirc thiết lập bởi caacutec switch bit NI khocircng tăng tốc độ

(tắc nghẽn nhẹ) bit CI tắc nghẽn rotilde rệt

Caacutec ocirc RM được trả về becircn gửi từ becircn nhận với nguyecircn vẹn caacutec bit

Transport Layer 3-87

Viacute dụ điều khiển tắc nghẽn ATM ABR

trường 2-byte ER trong ocirc RM switch đatilde tắc nghẽn coacute thể coacute giaacute trị ER thấp hơn trong ocirc tốc độ gửi do đoacute coacute thể được hỗ trợ tối đa trecircn đường

EFCI bit trong caacutec ocirc dữ liệu được cagravei giaacute trị 1 trong switch đatilde tắc nghẽn nếu ocirc dữ liệu đứng trước ocirc RM coacute cagravei EFCI becircn gửi sẽ cagravei

bit CI trong ocirc RM trả về

Transport Layer 3-88

Chương 3 Nội dung trigravenh bagravey

31 Caacutec dịch vụ lớp Transport

32 Multiplexing vagrave demultiplexing

33 Vận chuyển khocircng kết nối UDP

34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy

35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối

36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn

37 Điều khiển tắc nghẽn TCP

Transport Layer 3-89

TCP điều khiển tắc nghẽn additive tăng lecircn multiplicative giảm xuống

8 Kbytes

16 Kbytes

24 Kbytes

time

congestionwindow

Caacutech tiếp cận tăng tốc độ truyền (kiacutech thước cửa sổ) tigravem khả năng băng thocircng coacute thể cho đến khi coacute mất maacutet xảy ra additive tăng lecircn tăng CongWin bởi 1 MSS

mỗi RTT cho đến khi coacute mất maacutet xảy ra multiplicative giảm xuống bỏ CongWin trong

nửa giai đoạn sau khi mất maacutet

timekiacutech

thư

ớc

cửa

sổ

tắc

nghẽ

n

Tigravem kiếm băng thocircng

Transport Layer 3-90

TCP điều khiển tắc nghẽn chi tiết

becircn gửi hạn chế việc truyền LastByteSent-LastByteAcked

CongWin Cocircng thức

CongWin thay đổi chức năng lagrave nhận biết tắc nghẽn trecircn mạng

Lagravem thế nagraveo becircn gửi nhận biết tắc nghẽn

mất maacutet xảy ra = timeout hoặc 3 ack trugraveng lặp

becircn gửi giảm tốc độ (CongWin) sau khi mất maacutet xảy ra

3 cơ chế AIMD khởi động chậm thận trọng sau khi coacute

caacutec sự kiện timeout

tốc độ = CongWin

RTT Bytess

Transport Layer 3-91

TCP khởi động chậm

Khi kết nối bắt đầu CongWin = 1 MSS Viacute dụ MSS = 500 bytes

amp RTT = 200 ms tốc độ khởi tạo = 20

kbps

băng thocircng sẵn sagraveng coacute thể gtgt MSSRTT mong muốn nhanh

choacuteng tăng tốc lecircn tốc độ coacute thể đaacutep ứng

Khi kết nối bắt đầu tăng tốc lecircn rất nhanh cho đến khi sự cố mất maacutet xảy ra đầu tiecircn

Transport Layer 3-92

TCP khởi động chậm (tt)

Khi kết nối bắt đầu tăng tốc lecircn rất nhanh cho đến khi sự cố mất maacutet xảy ra đầu tiecircn nhacircn đocirci CongWin mỗi

RTT hoagraven thagravenh nhờ tăng CongWin ứng với mỗi ACK đatilde nhận

Tổng kết tốc độ khởi đầu lagrave chậm nhưng sau đoacute tăng tốc rất nhanh

Host A

1 đoạn

RTT

Host B

thời gian

2 đoạn

4 đoạn

Transport Layer 3-93

Tinh chếHỏi Khi nagraveo việc tăng

tốc trở thagravenh tuyến tiacutenh

Trả lời Khi CongWin đạt đến 12 giaacute trị của noacute trước khi timeout

Hiện thực Ngưỡng thay đổi Tại thời điểm coacute sự cố

mất maacutet ngưỡng được cagravei giaacute trị bằng frac12 của CongWin ngay trước đoacute

Transport Layer 3-94

Tinh chế nhận biết mất maacutet

Sau 3 ACK trugraveng lặp CongWin sẽ giảm 12 kiacutech thước cửa sổ

tăng tuyến tiacutenh nhưng sau sự cố

timeout CongWin thay giaacute trị

bằng 1 MSS kiacutech thước cửa sổ

tăng cấp lũy thừa khi đến một ngưỡng

thigrave tăng tuyến tiacutenh

3 ACK trugraveng nhau chỉ ra khả năng truyền của mạng timeout chỉ thị ldquonhiều cảnh baacuteordquo về tigravenh huống tắc nghẽn

Nguyecircn lyacute

Transport Layer 3-95

Tổng kết TCP điều khiển tắc nghẽn

Khi CongWin dưới Threshold becircn gửi đang trong giai đoạn khởi động chậm kiacutech thước cửa sổ tăng nhanh theo cấp lũy thừa

Khi CongWin trecircn Threshold becircn gửi đang trong giai đoạn traacutenh tắc nghẽn kiacutech thước cửa sổ tăng nhanh theo cấp tuyến tiacutenh

Khi coacute 3 ACK trugraveng lặp xảy ra Threshold = CongWin2 vagrave CongWin = Threshold

Khi timeout xảy ra Threshold = CongWin2 vagrave CongWin = 1 MSS

Transport Layer 3-96

TCP điều khiển tắc nghẽn becircn gửi

Trạng thaacutei Sự kiện TCP becircn gửi hagravenh động Diễn giải

Slow Start (SS)-Khởi động chậm

ACK baacuteo nhận cho dữ liệu chưa ACK trước đoacute

CongWin = CongWin + MSS If (CongWin gt Threshold) cagravei đặt trạng thaacutei ldquoTraacutenh tắc nghẽnrdquo

Hậu quả lagravem tăng gấp đocirci CongWin mỗi RTT

CongestionAvoidance (CA) ndashTraacutenh tắc nghẽn

ACK baacuteo nhận cho dữ liệu chưa ACK trước đoacute

CongWin = CongWin+MSS (MSSCongWin)

Additive tăng lecircn lagravem tăng CongWin lecircn 1 MSS mỗi RTT

SS hoặc CA Sự cố mất maacutet xảy ra khi thấy coacute 3 ACK trugraveng lặp

Threshold = CongWin2 CongWin = Thresholdcagravei đặt trạng thaacutei ldquoTraacutenh tắc nghẽnrdquo

Khocirci phục nhanh hiện thực giảm xuống multiplicative CongWin sẽ khocircng giảm xuống dưới 1 MSS

SS hoặc CA Timeout Threshold = CongWin2 CongWin = 1 MSScagravei đặt trạng thaacutei ldquoKhởi động chậmrdquo

Vagraveo chế độ ldquoKhởi động chậmrdquo

SS hoặc CA ACK trugraveng lặp

Đếm ACK tăng lecircn cho đoạn vừa được ACK

CongWin vagrave Threshold khocircng thay đổi

Transport Layer 3-97

TCP throughput

Throughout trung bigravenh của TCP biểu diễn qua kiacutech thước của sổ vagrave RTT Bỏ qua trạng thaacutei ldquoKhởi động chậmrdquo

Cho W lagrave kiacutech thước cửa sổ khi coacute mất maacutet xảy ra

Khi kiacutech thước cửa sổ = W lưu lượng = WRTT

Chỉ ngay sau khi mất maacutet cửa sổ giảm xuống = W2 lưu lượng = W2RTT

throughout trung bigravenh 075 WRTT

Transport Layer 3-98

TCP tương lai

Viacute dụ caacutec đoạn dagravei 1500 byte RTT 100ms lưu lượng 10 Gbps

Kiacutech thước cửa sổ yecircu cầu W = 83333 đoạn trecircn đường truyền

Lưu lượng trong caacutec trường hợp mất maacutet

L = 210-10

Phiecircn bản mới của TCP dagravenh cho nhu cầu tốc độ cao

LRTT

MSS221

Transport Layer 3-99

Mục tiecircu nếu K phiecircn lagravem việc TCP chia sẻ kết nối cổ chai của băng thocircng lagrave R mỗi phiecircn coacute tốc độ trung bigravenh lagrave RK

TCP kết nối 1

router cổ chaikhả năng R

TCP kết nối 2

TCP tiacutenh cocircng bằng

Transport Layer 3-100

Tại sao phải TCP cocircng bằng

2 phiecircn lagravem việc cạnh tranh nhau Additive tăng lưu lượng tăng multiplicative giảm lưu lượng tương xứng

R

R

chia sẻ băng thocircng bằng nhau

Connection 1 throughputConnect

ion 2

th

roughput

traacutenh tắc nghẽn additive tăng lecircnmất maacutet giảm cửa sổ bằng 12

traacutenh tắc nghẽn additive tăng lecircnmất maacutet giảm cửa sổ bằng 12

Transport Layer 3-101

TCP tiacutenh cocircng bằng (tt)

Tiacutenh cocircng bằng amp UDP nhiều ứng dụng

thường khocircng dugraveng TCP khocircng muốn tốc độ bị

điều tiết do điều khiển tắc nghẽn

Thay bằng dugraveng UDP truyền audiovideo với

tốc độ ổn định chịu được mất maacutet

Nghiecircn cứu giao thức thacircn thiện với TCP

Tiacutenh cocircng bằng amp caacutec kết nối TCP song song

khocircng coacute gigrave ngăn cản việc ứng dụng mở caacutec kết nối song song giữa 2 host

Trigravenh duyệt Web lagravem giống như thế

Viacute dụ tốc độ R hỗ trợ 9 kết nối ứng dụng mới yecircu cầu 1

TCP coacute tốc độ R10 ứng dụng mới yecircu cầu 11

TCP coacute tốc độ R2

Transport Layer 3-102

Mocirc higravenh trễ

Hỏi Mất bao lacircu để nhận 1 đối tượng từ Web server sau khi gửi yecircu cầu

Bỏ qua tắc nghẽn trễ bị ảnh hưởng bởi

thiết lập kết nối TCP trễ truyền dữ liệu khởi động chậm

Notation caacutec giả định Giả sử một kết nối giữa

client vagrave server coacute tốc độ R

S MSS (bits) O kiacutech thước đối tượng

(bits) khocircng truyền lại (khocircng

mất maacutet khocircng hỏng)

Kiacutech thước cửa sổ Giả định 1 cửa sổ tắc

nghẽn cố định coacute W đoạn Sau đoacute cửa sổ thay đổi

mocirc higravenh khởi động chậm

Transport Layer 3-103

Cửa sổ tắc nghẽn cố định (1)

Trường hợp đầu tiecircnWSR gt RTT + SR cho

đoạn đầu tiecircn trong cửa sổ trả về trước khi cửa sổ dữ liệu gửi ACK

trễ = 2RTT + OR

Transport Layer 3-104

Cửa sổ tắc nghẽn cố định (2)

Trường hợp thứ hai WSR lt RTT + SR sent

chờ cho ACK sau khi gửi dữ liệu

trễ = 2RTT + OR+ (K-1)[SR + RTT - WSR]

Transport Layer 3-105

TCP Mocirc higravenh trễ Khởi động chậm (1)

Bacircy giờ giả sử kiacutech thước cửa sổ tăng lecircn tugravey theo quaacute trigravenh khởi động chậm

Độ trễ của một đối tượng sẽ lagrave

R

S

R

SRTTP

R

ORTTLatency P )12(2

trong đoacute P lagrave số lần TCP rảnh ở tại server

1min KQP

- trong đoacute Q lagrave số lần server rảnh nếu đối tượng đatilde khởi tạo kiacutech thước

- vagrave K lagrave số lượng cửa sổ bao trugravem đối tượng

Transport Layer 3-106

TCP Mocirc higravenh trễ Khởi động chậm (2)

RTT

initia te TCPconnection

requestobject

first w indow= S R

second w indow= 2S R

third w indow= 4S R

fourth w indow= 8S R

com pletetransm issionobject

delivered

tim e atc lient

tim e atserver

Viacute dụbull OS = 15 đoạnbull K = 4 cửa sổbull Q = 2bull P = minK-1Q = 2

Server rảnh P=2 lần

Caacutec thagravenh phần trễbull 2 RTT dagravenh cho thiết lập kết nối vagrave yecircu cầubull OR để truyền đối tượngbullthời gian server rảnh bởi vigrave khởi động chậm

Server rảnh P = minK-1Q lần

Transport Layer 3-107

TCP Mocirc higravenh trễ(3)

R

S

R

SRTTPRTT

R

O

R

SRTT

R

SRTT

R

O

idleTimeRTTR

O

P

kP

k

P

pp

)12(][2

]2[2

2delay

1

1

1

th window after the timeidle 2 1 kR

SRTT

R

S k

ementacknowledg receivesserver until

segment send tostartsserver when from time RTTR

S

window kth the transmit totime2 1

R

Sk

RTT

initia te TCPconnection

requestobject

first w indow= S R

second w indow= 2S R

third w indow= 4S R

fourth w indow= 8S R

com pletetransm issionobject

delivered

tim e atc lient

tim e atserver

Transport Layer 3-108

TCP Mocirc higravenh trễ (4)

)1(log

)1(logmin

12min

222min

222min

2

2

110

110

S

OS

Okk

S

Ok

SOk

OSSSkK

k

k

k

caacutech tiacutenh toaacuten Q tương tự (xem HW)

K = số lượng cửa sổ bao trugravem đối tượngLagravem thế nagraveo tiacutenh được K

Transport Layer 3-109

HTTP Mocirc higravenh Giả sử trang Web chứa

1 trang HTML (kiacutech thước O bits) M higravenh ảnh (mỗi caacutei kiacutech thướcO bits)

HTTP khocircng bền vững M+1 TCP kết nối Thời gian đaacutep ứng = (M+1)OR + (M+1)2RTT + tổng số thời

gian rảnh HTTP bền vững

2 RTT để yecircu cầu vagrave nhận file HTML 1 RTT để yecircu cầu vagrave nhận M higravenh ảnh Thời gian đaacutep ứng = (M+1)OR + 3RTT + tổng số thời gian

rảnh HTTP khocircng bền vững với X kết nối song song

Giả sử MX lagrave số nguyecircn 1 TCP kết nối cho file MX thiết lập caacutec kết nối song song cho caacutec higravenh ảnh Thời gian đaacutep ứng = (M+1)OR + (MX + 1)2RTT + tổng số

thời gian rảnh

Transport Layer 3-110

02468

101214161820

28Kbps

100Kbps

1Mbps

10Mbps

non-persistent

persistent

parallel non-persistent

HTTP thời gian đaacutep ứng (giacircy)RTT = 100 msec O = 5 Kbytes M=10 vagrave X=5

Với băng thocircng thấp thời gian kết nối amp đaacutep ứng trội hơn thời gian truyền

Caacutec kết nối bền vững chỉ cho sự cải thiện khocircng đaacuteng kể trecircn caacutec kết nối song song

Transport Layer 3-111

0

10

20

30

40

50

60

70

28Kbps

100Kbps

1Mbps

10Mbps

non-persistent

persistent

parallel non-persistent

HTTP thời gian đaacutep ứng (giacircy)

RTT =1 sec O = 5 Kbytes M=10 and X=5

Với RTT lớn hơn thời gian đaacutep ứng trội hơn thời gian trễ chờ thiết lập kết nốiTCP amp khởi động chậm Caacutec kết nối bền vững bacircy giờ cho thấy cải thiện rotilde rệt đặc biệtvới caacutec mạng băng thocircng cao

Transport Layer 3-112

Chương 3 Tổng kết caacutec nguyecircn lyacute của caacutec

dịch vụ lớp transport multiplexing

demultiplexing truyền dữ liệu tin cậy điều khiển luồng điều khiển tắc nghẽn

khởi tạo vagrave hiện thực trong Internet UDP TCP

Tiếp theo nghiecircn cứu xong

caacutec vấn đề ldquongoagravei biecircnrdquo (caacutec lớp application transport)

chuẩn bị vagraveo phần ldquolotildeirdquo của mạng

  • Slide 1
  • Chương 3 Lớp Transport
  • Chương 3 Nội dung trigravenh bagravey
  • Caacutec dịch vụ vagrave giao thức Transport
  • Lớp Transport với lớp network
  • Caacutec giao thức lớp transport trecircn Internet
  • Slide 7
  • Multiplexingdemultiplexing
  • Demultiplexing lagravem việc như thế nagraveo
  • Demultiplexing khocircng kết nối
  • Demultiplexing khocircng kết nối (tiếp)
  • Demultiplexing hướng kết nối
  • Demultiplexing hướng kết nối (tiếp)
  • Demultiplexing hướng kết nối Threaded Web Server
  • Slide 15
  • UDP User Datagram Protocol [RFC 768]
  • UDP (tt)
  • UDP checksum
  • Viacute dụ Checksum
  • Slide 20
  • Caacutec nguyecircn lyacute truyền dữ liệu tin cậy
  • Slide 22
  • Slide 23
  • Truyền dữ liệu tin cậy
  • Slide 25
  • Rdt10 truyền dữ liệu tin cậy trecircn 1 kecircnh truyền tin cậy
  • Rdt20 kecircnh với caacutec lỗi
  • rdt20 đặc tả FSM
  • rdt20 hoạt động khi khocircng lỗi
  • rdt20 hoạt động khi coacute lỗi
  • rdt20 coacute lỗ hổng nghiecircm trọng
  • rdt21 người gửi quản lyacute caacutec ACKNAK bị hỏng
  • Slide 33
  • rdt21 thảo luận
  • rdt22 một giao thức khocircng cần NAK
  • rdt22 gửi nhận caacutec mảnh
  • rdt30 caacutec kecircnh với lỗi vagrave mất maacutet
  • rdt30 gửi
  • hagravenh động của rdt30
  • Slide 40
  • Hiệu suất của rdt30
  • rdt30 hoạt động dừng-vagrave-chờ
  • Caacutec giao thức Pipelined
  • Pipelining độ khả dụng tăng
  • Go-Back-N
  • GBN becircn gửi mở rộng FSM
  • GBN becircn nhận mở rộng FSM
  • GBN hoạt động
  • Lặp coacute lựa chọn
  • Lặp coacute lựa chọn caacutec cửa sổ gửi nhận
  • Slide 51
  • Hoạt động của lặp coacute lựa chọn
  • Lặp coacute lựa chọn tigravenh trạng khoacute giải quyết
  • Slide 54
  • TCP Tổng quan RFCs 793 1122 1323 2018 2581
  • TCP cấu truacutec đoạn
  • Caacutec số thứ tự TCP vagrave ACK
  • TCP Round Trip Time vagraveTimeout
  • TCP Round Trip Time vagrave Timeout
  • Viacute dụ đaacutenh giaacute RTT
  • Slide 61
  • TCP truyền dữ liệu tin cậy
  • TCP caacutec sự kiện
  • TCP becircn gửi (đơn giản)
  • TCP caacutec tigravenh huống truyền lại
  • TCP caacutec tigravenh huống truyền lại (tt)
  • TCP sinh ra ACK [RFC 1122 RFC 2581]
  • Truyền lại nhanh
  • Giải thuật truyền lại nhanh
  • Slide 70
  • TCP điều khiển luồng
  • TCP điều khiển luồng caacutech lagravem
  • Slide 73
  • TCP quản lyacute kết nối
  • TCP quản lyacute kết nối (tt)
  • Slide 76
  • Slide 77
  • Slide 78
  • Caacutec nguyecircn lyacute điều khiển tắc nghẽn
  • Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 1
  • Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 2
  • Slide 82
  • Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 3
  • Slide 84
  • Caacutec caacutech tiếp cận đối với điều khiển tắc nghẽn
  • Viacute dụ điều khiển tắc nghẽn ATM ABR
  • Slide 87
  • Slide 88
  • TCP điều khiển tắc nghẽn additive tăng lecircn multiplicative giảm xuống
  • TCP điều khiển tắc nghẽn chi tiết
  • TCP khởi động chậm
  • TCP khởi động chậm (tt)
  • Tinh chế
  • Tinh chế nhận biết mất maacutet
  • Tổng kết TCP điều khiển tắc nghẽn
  • TCP điều khiển tắc nghẽn becircn gửi
  • TCP throughput
  • TCP tương lai
  • TCP tiacutenh cocircng bằng
  • Tại sao phải TCP cocircng bằng
  • TCP tiacutenh cocircng bằng (tt)
  • Mocirc higravenh trễ
  • Cửa sổ tắc nghẽn cố định (1)
  • Cửa sổ tắc nghẽn cố định (2)
  • TCP Mocirc higravenh trễ Khởi động chậm (1)
  • TCP Mocirc higravenh trễ Khởi động chậm (2)
  • TCP Mocirc higravenh trễ(3)
  • TCP Mocirc higravenh trễ (4)
  • HTTP Mocirc higravenh
  • Slide 110
  • Slide 111
  • Chương 3 Tổng kết

Transport Layer 3-13

Demultiplexing hướng kết nối (tiếp)

ClientIPB

P1

client IP A

P1P2P4

serverIP C

SP 9157

DP 80

SP 9157

DP 80

P5 P6 P3

D-IPCS-IP A

D-IPC

S-IP B

SP 5775

DP 80

D-IPCS-IP B

Transport Layer 3-14

Demultiplexing hướng kết nối Threaded Web Server

ClientIPB

P1

client IP A

P1P2

serverIP C

SP 9157

DP 80

SP 9157

DP 80

P4 P3

D-IPCS-IP A

D-IPC

S-IP B

SP 5775

DP 80

D-IPCS-IP B

Transport Layer 3-15

Chương 3 Nội dung trigravenh bagravey

31 Caacutec dịch vụ lớp Transport

32 Multiplexing vagrave demultiplexing

33 Vận chuyển khocircng kết nối UDP

34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy

35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối

36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn

37 Điều khiển tắc nghẽn TCP

Transport Layer 3-16

UDP User Datagram Protocol [RFC 768]

giao thức Internet transport ldquođơn giản hoacuteardquo

dịch vụ ldquobest effortrdquo caacutec đoạn UDP coacute thể mất maacutet vận chuyển khocircng thứ

tự đến ứng dụng connectionless (khocircng

kết nối) khocircng bắt tay giữa

người nhận vagrave người gửi UDP

mỗi đoạn UDP được quản lyacute độc lập

Coacute UDP để lagravem gigrave khocircng thiết lập kết nối

(giuacutep coacute thể thecircm delay) đơn giản khocircng trạng

thaacutei kết nối tại nơi gửi nơi nhận

header của đoạn nhỏ khocircng điều khiển tắc

nghẽn UDP coacute thể gửi nhanh nhất theo mong muốn

Transport Layer 3-17

UDP (tt)

thường dugraveng cho caacutec ứng dụng streaming multimedia chịu mất maacutet cảm nhận tốc độ

ngoagravei ra UDP dugraveng DNS SNMP

truyền tin cậy trecircn UDP thecircm khả năng nagravey tại lớp application sửa lỗi

source port dest port

32 bits

dữ liệu ứng dụng

(thocircng điệp)

dạng thức đoạn UDP

length checksumĐộ dagravei

đoạn UDPbao gồm cả

header

Transport Layer 3-18

UDP checksum

Người gửi đối xử caacutec nội dung

đoạn như một chuỗi caacutec số nguyecircn 16-bit

checksum bổ sung(tổng bugrave 1) của caacutec nội dung đoạn

đặt giaacute trị checksum vagraveo trường UDP checksum

Người nhận tiacutenh toaacuten checksum của

đoạn đatilde nhận kiểm tra giaacute trị trecircn coacute bằng

với giaacute trị trong trường checksum NO ndash coacute lỗi xảy ra YES ndash khocircng coacute lỗi Nhưng coacute thể cograven lỗi

khaacutec nữa Xem tiếp phần sau hellip

Mục tiecircu kiểm tra caacutec ldquolỗirdquo (caacutec bit cờ đatilde bật lecircn) trong caacutec đoạn đatilde truyền

Transport Layer 3-19

Viacute dụ Checksum Lưu yacute

Khi cộng caacutec số một bit nhớ ở phiacutea cao nhất coacute thể sẽ phải thecircm vagraveo kết quả

Viacute dụ cộng hai số nguyecircn 16-bit

1 1 1 1 0 0 1 1 0 0 1 1 0 0 1 1 01 1 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1

1 1 0 1 1 1 0 1 1 1 0 1 1 1 0 1 1

1 1 0 1 1 1 0 1 1 1 0 1 1 1 1 0 01 0 1 0 0 0 1 0 0 0 1 0 0 0 0 1 1

bit dư

tổngchecksum

Transport Layer 3-20

Chương 3 Nội dung trigravenh bagravey

31 Caacutec dịch vụ lớp Transport

32 Multiplexing vagrave demultiplexing

33 Vận chuyển khocircng kết nối UDP

34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy

35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối

36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn

37 Điều khiển tắc nghẽn TCP

Transport Layer 3-21

Caacutec nguyecircn lyacute truyền dữ liệu tin cậy quan trọng trong caacutec lớp application transport link lagrave danh saacutech 10 vấn đề quan trọng nhất của mạng

caacutec đặc thugrave của kecircnh truyền khocircng tin cậy sẽ xaacutec định sự phức tạp của giao thức truyền dữ liệu data transfer protocol (rdt)

Transport Layer 3-22

Caacutec nguyecircn lyacute truyền dữ liệu tin cậy quan trọng trong caacutec lớp application transport link lagrave danh saacutech 10 vấn đề quan trọng nhất của mạng

caacutec đặc thugrave của kecircnh truyền khocircng tin cậy sẽ xaacutec định sự phức tạp của giao thức truyền dữ liệu data transfer protocol (rdt)

Transport Layer 3-23

Caacutec nguyecircn lyacute truyền dữ liệu tin cậy quan trọng trong caacutec lớp application transport link lagrave danh saacutech 10 vấn đề quan trọng nhất của mạng

caacutec đặc thugrave của kecircnh truyền khocircng tin cậy sẽ xaacutec định sự phức tạp của giao thức truyền dữ liệu data transfer protocol (rdt)

Transport Layer 3-24

Truyền dữ liệu tin cậy

sendside

receiveside

rdt_send() được gọi bởi lớp app Chuyển dữ liệu cần truyền

đến lớp cao hơn becircn nhận

udt_send() được gọi bởi rdt để truyền caacutec goacutei trecircn kecircnh khocircng tin cậy đến nơi

nhận

rdt_rcv() được gọi khi goacutei đến kecircnh becircn nhận

deliver_data() được gọi bởi rdt để truyền dữ liệu

đến lớp cao hơn

Transport Layer 3-25

Truyền dữ liệu tin cậy

Sẽ chỉ xem xeacutet truyền dữ liệu theo 1 hướng duy

nhất nhưng điều khiển luồng thocircng tin sẽ theo cả 2

chiều

dugraveng maacutey trạng thaacutei hữu hạn (finite state machines-FSM) để xaacutec định người gửi người nhận

trthaacutei1

trthaacutei2

sự kiện gacircy ra trạng thaacutei truyềncaacutec hagravenh động xảy ra khi truyền

trạng thaacutei khi ở ldquotrạng thaacuteirdquo nagravey thigrave

trạng thaacutei kế tiếp duy nhất được xaacutec định bởi sự kiện kế

tiếp

sự kiệncaacutec hagravenh động

Transport Layer 3-26

Rdt10 truyền dữ liệu tin cậy trecircn 1 kecircnh truyền tin cậy

kecircnh ưu tiecircn tin cậy hoagraven toagraven khocircng coacute caacutec lỗi khocircng mất maacutet caacutec goacutei

caacutec FSM phacircn biệt cho người gửi người nhận người gửi gửi dữ liệu vagraveo kecircnh ưu tiecircn người nhận nhận dữ liệu từ kecircnh ưu tiecircn

chờ gọi từ lớp trecircn packet = make_pkt(data)

udt_send(packet)

rdt_send(data)

extract (packetdata)deliver_data(data)

chờ gọi từ lớp dưới

rdt_rcv(packet)

người gửi người nhận

Transport Layer 3-27

Rdt20 kecircnh với caacutec lỗi

kecircnh ưu tiecircn coacute thể bật lecircn một số bit trong goacutei checksum để kiểm tra caacutec lỗi

Hỏi lagravem sao khocirci phục caacutec lỗi acknowledgements (ACKs) becircn nhận rotilde ragraveng thocircng

baacuteo cho becircn gửi rằng quaacute trigravenh nhận goacutei tốt negative acknowledgements (NAKs) becircn nhận rotilde ragraveng

thocircng baacuteo cho becircn gửi rằng quaacute trigravenh nhận goacutei coacute lỗi người gửi gửi lại goacutei nagraveo được xaacutec nhận lagrave NAK

caacutec cơ chế mới trong rdt20 (sau rdt10) kiểm tra lỗi nhận phản hồi caacutec thocircng điệp điều khiển (ACKNAK)

becircn nhận becircn gửi

Transport Layer 3-28

rdt20 đặc tả FSM

chờ gọi từ lớp trecircn

snkpkt = make_pkt(data checksum)udt_send(sndpkt)

extract(rcvpktdata)deliver_data(data)udt_send(ACK)

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)

rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp isNAK(rcvpkt)

udt_send(NAK)

rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)

chờ ACK hoặc NAK

chờ gọi từ lớp dưới

người gửi

người nhậnrdt_send(data)

Transport Layer 3-29

rdt20 hoạt động khi khocircng lỗi

chờ gọi từ lớp dưới

snkpkt = make_pkt(data checksum)udt_send(sndpkt)

extract(rcvpktdata)deliver_data(data)udt_send(ACK)

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)

rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp isNAK(rcvpkt)

udt_send(NAK)

rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)

chờ ACK hoặc NAK

chờ gọi từ lớp dưới

rdt_send(data)

Transport Layer 3-30

rdt20 hoạt động khi coacute lỗi

chờ gọi từ lớp dưới

snkpkt = make_pkt(data checksum)udt_send(sndpkt)

extract(rcvpktdata)deliver_data(data)udt_send(ACK)

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)

rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp isNAK(rcvpkt)

udt_send(NAK)

rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)

chờ ACK hoặc NAK

chờ gọi từ lớp dưới

rdt_send(data)

Transport Layer 3-31

rdt20 coacute lỗ hổng nghiecircm trọngĐiều gigrave xảy ra nếu

ACKNAK bị hỏng người gửi khocircng biết điều

gigrave đatilde xảy ra tại becircn nhận

khocircng thể đơn phương truyền lại khả năng trugraveng lặp

Quản lyacute trugraveng lặp người gửi truyền lại goacutei

hiện tại nếu ACKNAK bị hỏng

người gửi thecircm số thứ tự vagraveo mỗi goacutei

người nhận hủy (khocircng nhận) goacutei trugraveng lặp

Người gửi gửi 1 goacutei sau đoacute dừng lại chờ phản hồitừ người nhận

dừng vagrave chờ

Transport Layer 3-32

rdt21 người gửi quản lyacute caacutec ACKNAK bị hỏng

chờ gọi 0 từ lớp trecircn

sndpkt = make_pkt(0 data checksum)udt_send(sndpkt)

rdt_send(data)

chờ ACK hoặc NAK

0 udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) ||isNAK(rcvpkt) )

sndpkt = make_pkt(1 data checksum)udt_send(sndpkt)

rdt_send(data)

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) ||isNAK(rcvpkt) )

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt)

chờ gọi 1 từ lớp trecircn

chờ ACK hoặc NAK

1

Transport Layer 3-33

rdt21 người gửi quản lyacute caacutec ACKNAK bị hỏng

chờ 0 từ dưới

sndpkt = make_pkt(NAK chksum)udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp not corrupt(rcvpkt) ampamp has_seq0(rcvpkt)

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp has_seq1(rcvpkt)

extract(rcvpktdata)deliver_data(data)sndpkt = make_pkt(ACK chksum)udt_send(sndpkt)

chờ 1 từ dưới

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp has_seq0(rcvpkt)

extract(rcvpktdata)deliver_data(data)sndpkt = make_pkt(ACK chksum)udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp (corrupt(rcvpkt)

sndpkt = make_pkt(ACK chksum)udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp not corrupt(rcvpkt) ampamp has_seq1(rcvpkt)

rdt_rcv(rcvpkt) ampamp (corrupt(rcvpkt)

sndpkt = make_pkt(ACK chksum)udt_send(sndpkt)

sndpkt = make_pkt(NAK chksum)udt_send(sndpkt)

Transport Layer 3-34

rdt21 thảo luận

người gửi số thứ tự thecircm vagraveo

goacutei chỉ cần hai số thứ tự

(01) lagrave đủ Tại sao phải kiểm tra nếu việc

nhận ACKNAK bị hỏng

số trạng thaacutei tăng lecircn 2 lần trạng thaacutei phải ldquonhớrdquo

goacutei ldquohiện tạirdquo coacute số thứ tự lagrave 0 hay 1

người nhận phải kiểm tra coacute

nhận trugraveng goacutei khocircng trạng thaacutei chỉ rotilde coacute

hay khocircng mong chờ số thứ tự 0 hoặc 1

chuacute yacute người nhận khocircng biết ACKNAK vừa rồi của noacute coacute được người gửi nhận tốt hay khocircng

Transport Layer 3-35

rdt22 một giao thức khocircng cần NAK

chức năng giống như rdt21 chỉ dugraveng caacutec ACK thay cho NAK người nhận gửi ACK cho goacutei vừa

rồi đatilde nhận tốt người nhận phải rotilde ragraveng chegraven số thứ tự của goacutei vừa ACK

trugraveng ACK tại người gửi hậu quả giống như hagravenh động của NAK truyền lại goacutei vừa rồi

Transport Layer 3-36

rdt22 gửi nhận caacutec mảnh

Chờ cho gọi 0 từ

trecircn

sndpkt = make_pkt(0 data checksum)udt_send(sndpkt)

rdt_send(data)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) || isACK(rcvpkt1) )

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt0)

Chờ cho ACK

0

gửi phacircn mảnhFSM

Chờ cho gọi

0 từ dưới

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp has_seq1(rcvpkt)

extract(rcvpktdata)deliver_data(data)sndpkt = make_pkt(ACK1 chksum)udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp (corrupt(rcvpkt) || has_seq1(rcvpkt))

udt_send(sndpkt)

nhận phacircn mảnhFSM

Transport Layer 3-37

rdt30 caacutec kecircnh với lỗi vagrave mất maacutet

Giả định mới kecircnh ưu tiecircn cũng coacute thể lagravem mất caacutec goacutei (dữ liệu hoặc caacutec ACK) checksum số thứ tự

caacutec ACK caacutec việc truyền lại sẽ hỗ trợ nhưng khocircng đủ

Caacutech tiếp cận người gửi chờ ACK trong khoảng thời gian ldquochấp nhận đượcrdquo

truyền lại nếu khocircng nhận ACK trong khoảng thời gian nagravey

nếu goacutei (hoặc ACK) chỉ trễ (khocircng mất) truyền lại sẽ gacircy trugraveng

nhưng dugraveng số thứ tự sẽ giải quyết được

người nhận phải xaacutec định số thứ tự của goacutei vừa gửi ACK

cần bộ định thigrave đếm lugravei

Transport Layer 3-38

rdt30 gửi

sndpkt = make_pkt(0 data checksum)udt_send(sndpkt)start_timer

rdt_send(data)

Chờ cho

ACK 0

rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) ||isACK(rcvpkt1) )

Chờ cho gọi 1 từ trecircn

sndpkt = make_pkt(1 data checksum)udt_send(sndpkt)start_timer

rdt_send(data)

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt0)

rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) ||isACK(rcvpkt0) )

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt1)

stop_timerstop_timer

udt_send(sndpkt)start_timer

timeout

udt_send(sndpkt)start_timer

timeout

rdt_rcv(rcvpkt)

Chờ cho gọi 0 từ trecircn

Chờ cho

ACK 1

rdt_rcv(rcvpkt)

Transport Layer 3-39

hagravenh động của rdt30

Transport Layer 3-40

hagravenh động của rdt30

Transport Layer 3-41

Hiệu suất của rdt30

rdt30 lagravem việc được nhưng đaacutenh giaacute hiệu suất hơi rắc rối viacute dụ liecircn kết 1 Gbps trễ lan truyền giữa hai đầu cuối lagrave 15

ms goacutei 1KB

T truyền = 8kbpkt109 bsec

= 8 microsec

U sender độ khả dụng ndash

U sender

= 008

30008 = 000027

microseconds

L R

RTT + L R =

L (độ dagravei goacutei tiacutenh bằng bits)R (tốc độ truyền bps)

=

goacutei 1KB mỗi 30 msec -gt 33kBs trecircn đường truyền 1 Gbps giao thức network hạn chế việc dugraveng caacutec tagravei nguyecircn vật

lyacute

Transport Layer 3-42

rdt30 hoạt động dừng-vagrave-chờ

goacutei đầu tiecircn đatilde truyền t = 0

gửi nhận

RTT

goacutei cuối cugraveng đatilde truyền t = L R

goacutei đầu tiecircn đatilde đếngoacutei cuối cugraveng đatilde đến gửi ACK

ACK đến gửi goacutei kế tiếp t = RTT + L R

U sender

= 008

30008 = 000027

microseconds

L R

RTT + L R =

Transport Layer 3-43

Caacutec giao thức Pipelined

Pipelining người gửi cho pheacutep gửi nhiều goacutei đồng thời khocircng cần chờ baacuteo nhận được nhoacutem caacutec số thứ tự phải tăng dần phải coacute bộ nhớ đệm tại nơi gửi vagravehoặc nơi nhận

hai dạng phổ biến của caacutec giao thức pipelined go-Back-N Lặp coacute lựa chọn

Transport Layer 3-44

Pipelining độ khả dụng tăng

goacutei đầu tiecircn đatilde truyền t = 0

sender receiver

RTT

goacutei cuối cugraveng đatilde truyền t = L R

goacutei đầu tiecircn đatilde đếngoacutei cuối cugraveng đatilde đến gửi ACK

ACK đến gửi goacuteikế tiếp t = RTT + L R

bit cuối của goacutei thứ 2 đến gửi ACKbit cuối của goacutei thứ 3 đến gửi ACK

U sender

= 024

30008 = 00008

microseconds

3 L R

RTT + L R =

Độ khả dụng tăng lecircngấp 3 lần

Transport Layer 3-45

Go-Back-NBecircn gửi k-bit số thứ tự trong header của goacutei ldquocửa sổrdquo tăng lecircn đến N cho pheacutep gửi caacutec goacutei liecircn tục khocircng cần ACK

ACK(n) ACKs tất cả caacutec goacutei đến chứa số thứ tự n ndash ldquoACK tiacutech lũyrdquo coacute thể nhận caacutec ACK trugraveng lặp (xem becircn nhận)

định thigrave cho mỗi goacutei trecircn đường truyền timeout(n) gửi lại goacutei n vagrave tất cả caacutec goacutei coacute số thứ tự cao

hơn trong cửa sổ

Transport Layer 3-46

GBN becircn gửi mở rộng FSM

chờ start_timerudt_send(sndpkt[base])udt_send(sndpkt[base+1])hellipudt_send(sndpkt[nextseqnum-1])

timeout

rdt_send(data)

if (nextseqnum lt base+N) sndpkt[nextseqnum] = make_pkt(nextseqnumdatachksum) udt_send(sndpkt[nextseqnum]) if (base == nextseqnum) start_timer nextseqnum++ else refuse_data(data)

base = getacknum(rcvpkt)+1If (base == nextseqnum) stop_timer else start_timer

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)

base=1nextseqnum=1

rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)

Transport Layer 3-47

GBN becircn nhận mở rộng FSM

ACK-duy nhất luocircn luocircn gửi ACK cho goacutei đatilde nhận đuacuteng với số thứ tự xếp hạng cao nhất coacute thể sinh ra caacutec ACK trugraveng nhau chỉ cần nhớ expectedseqnum

goacutei khocircng theo thứ tự hủy -gt khocircng nhận vagraveo bộ đệm gửi lại ACK với số thứ tự xếp hạng cao nhất

chờ

udt_send(sndpkt)

default

rdt_rcv(rcvpkt) ampamp notcurrupt(rcvpkt) ampamp hasseqnum(rcvpktexpectedseqnum)

extract(rcvpktdata)deliver_data(data)sndpkt = make_pkt(expectedseqnumACKchksum)udt_send(sndpkt)expectedseqnum++

expectedseqnum=1sndpkt = make_pkt(expectedseqnumACKchksum)

Transport Layer 3-48

GBN hoạt động

Transport Layer 3-49

Lặp coacute lựa chọn

becircn nhận thocircng baacuteo đatilde nhận đuacuteng tất cả từng goacutei một đệm (buffer) caacutec goacutei nếu cần thiết

becircn gửi chỉ gửi lại caacutec goacutei nagraveo khocircng nhận được ACK becircn gửi định thigrave đối với mỗi goacutei khocircng gửi ACK

cửa sổ becircn gửi N số thứ tự liecircn tục hạn chế số thứ tự caacutec goacutei khocircng gửi ACK

Transport Layer 3-50

Lặp coacute lựa chọn caacutec cửa sổ gửi nhận

Transport Layer 3-51

Lặp coacute lựa chọn

dữ liệu từ lớp trecircn nếu số thứ tự kế tiếp sẵn

sagraveng trong cửa sổ gửi goacutei

timeout(n) gửi lại goacutei n taacutei khởi tạo

bộ định thigrave

ACK(n) trong [sendbasesendbase+N]

đaacutenh dấu goacutei n lagrave đatilde nhận nếu goacutei khocircng ACK coacute n

nhỏ nhất dịch chuyển cửa sổ base đến số thứ tự khocircng ACK kế tiếp

Gửigoacutei n trong [rcvbase

rcvbase+N-1]

gửi ACK(n) khocircng thứ tự đệm

(buffer) coacute thứ tự truyền (cũng

truyền caacutec goacutei đatilde đệm coacute thứ tự) dịch chuyển cửa sổ đến goacutei chưa nhận kế tiếp

goacutei n trong [rcvbase-Nrcvbase-1]

ACK(n)

ngược lại lờ đi

Nhận

Transport Layer 3-52

Hoạt động của lặp coacute lựa chọn

Transport Layer 3-53

Lặp coacute lựa chọntigravenh trạng khoacute giải quyếtViacute dụ Số thứ tự 0 1 2 3 Kiacutech thước cửa sổ = 3

becircn nhận khocircng thấy sự khaacutec nhau trong 2 tigravenh huống

chuyển khocircng chiacutenh xaacutec dữ liệu trugraveng lặp như dữ liệu mới trong (a)

Hỏi quan hệ giữa datildey số thứ tự vagrave kiacutech thước cửa sổ

Transport Layer 3-54

Chương 3 Nội dung trigravenh bagravey

31 Caacutec dịch vụ lớp Transport

32 Multiplexing vagrave demultiplexing

33 Vận chuyển khocircng kết nối UDP

34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy

35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối

36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn

37 Điều khiển tắc nghẽn TCP

Transport Layer 3-55

TCP Tổng quan RFCs 793 1122 1323 2018 2581

dữ liệu full duplex luồng dữ liệu đi 2 chiều

trong cugraveng một kết nối MSS maximum

segment size ndash kiacutech thước đoạn tối đa

hướng kết nối bắt tay (trao đổi caacutec

thocircng điệp điều khiển) trạng thaacutei becircn gửi becircn nhận trước khi trao đổi dữ liệu

điều khiển luồng becircn gửi sẽ khocircng lấn aacutet

becircn nhận

point-to-point một becircn gửi một becircn

nhận tin cậy dograveng byte coacute

thứ tự khocircng ldquoranh giới thocircng

điệprdquo kecircnh liecircn lạc

TCP điều khiển luồng vagrave tắc nghẽn thiết lập kiacutech thước cửa sổ

caacutec bộ đệm gửi amp nhận

socketdoor

T C Psend buffer

T C Preceive buffer

socketdoor

segm ent

applicationwrites data

applicationreads data

Transport Layer 3-56

TCP cấu truacutec đoạn

port nguồn port điacutech

32 bits

dữ liệu ứng dụng(độ dagravei thay đổi)

số thứ tự

số ACKcửa sổ nhận

con trỏ URGchecksum

FSRPAUheadlen

notused

Tugravey chọn (độ dagravei thay đổi)

URG dữ liệu khẩn cấp(thường khocircng dugraveng)

ACK ACK hợp lệ

PSH push data now(thường khocircng dugraveng)

RST SYN FINthiết lập kết nối

(caacutec lệnh thiết lậpchia nhỏ)

số byte becircn nhận sẵn sagraveng chấp nhận

đếm bởi số bytecủa dữ liệu

Internetchecksum

(giống UDP)

Transport Layer 3-57

Caacutec số thứ tự TCP vagrave ACKCaacutec số thứ tự

dograveng byte ldquođaacutenh sốrdquo byte đầu tiecircn trong dữ liệu của đoạn

caacutec ACK số thứ tự của byte

kế tiếp được chờ đợi từ phiacutea becircn kia

ACK tiacutech lũyHỏi lagravem thế nagraveo becircn

nhận quản lyacute caacutec đoạn khocircng thứ tự Trả lời TCP khocircng

đề cập tugravey thuộc người hiện thực

Host A Host B

Seq=42 ACK=79 data = lsquoCrsquo

Seq=79 ACK=43 data = lsquoCrsquo

Seq=43 ACK=80

UsernhậplsquoCrsquo

host ACKsnhận phản hồi

lsquoCrsquo

host ACKsbaacuteo nhận

lsquoCrsquo phản hồingược lại lsquoCrsquo

timetigravenh huống telnet đơn giản

Transport Layer 3-58

TCP Round Trip Time vagraveTimeout

Hỏi Lagravem thế nagraveo để thiết lập giaacute trị TCP timeout

dagravei hơn RTT khaacutec với RTT

quaacute ngắn timeout sớm truyền lại khocircng

cần thiết quaacute dagravei phản ứng

chậm đối với việc mất maacutet goacutei

Hỏi Lagravem thế nagraveo để thiết lập RTT

SampleRTT thời gian được đo từ khi truyền đoạn đến khi baacuteo nhận ACK lờ đi việc truyền lại

SampleRTT sẽ thay đổi muốn ước lượng RTT ldquomượt hơnrdquo tiacutenh trung bigravenh một số giaacute

trị đo được gần đoacute khocircng chỉ SampleRTT hiện tại

Transport Layer 3-59

TCP Round Trip Time vagrave Timeout

EstimatedRTT = (1- )EstimatedRTT + SampleRTT

giaacute trị đặc trưng = 0125

Transport Layer 3-60

Viacute dụ đaacutenh giaacute RTTRTT gaiacsumassedu to fantasiaeurecomfr

100

150

200

250

300

350

1 8 15 22 29 36 43 50 57 64 71 78 85 92 99 106

time (seconnds)

RTT

(mill

isec

onds

)

SampleRTT Estimated RTT

Transport Layer 3-61

TCP Round Trip Time vagrave Timeout

Thiết lập timeout EstimtedRTT cộng ldquohệ số dự trữ an toagravenrdquo

sự biến thiecircn lớn trong EstimatedRTT -gt hệ số dự trữ an toagraven lớn hơn ước lượng đầu tiecircn về sự biến thiecircn của SampleRTT từ EstimatedRTT

TimeoutInterval = EstimatedRTT + 4DevRTT

DevRTT = (1-)DevRTT + |SampleRTT-EstimatedRTT|

(tiecircu biểu = 025)

Sau đoacute thiết lập timeout interval

Transport Layer 3-62

TCP truyền dữ liệu tin cậy

TCP tạo dịch vụ rdt trecircn dịch vụ khocircng tin cậy IP

caacutec đoạn Pipelined caacutec ACK tiacutech lũy TCP dugraveng bộ định thigrave

truyền lại đơn

Truyền lại được kiacutech hoạt bởi caacutec sự kiện timeout caacutec ack trugraveng lặp

luacutec đầu khảo saacutet caacutec becircn gửi TCP đơn giản lờ đi caacutec ack trugraveng lặp lờ đi điều khiển luồng

điều khiển tắc nghẽn

Transport Layer 3-63

TCP caacutec sự kiệndữ liệu đatilde nhận từ ứng

dụng tạo đoạn với số thứ

tự của noacute số thứ tự lagrave số theo

byte dữ liệu đầu tiecircn khởi động bộ định thigrave

nếu chưa chạy khoảng thời gian hết

hạn TimeOutInterval

timeout gửi lại đoạn nagraveo gacircy

ra timeout khởi động lại bộ định

thigrave Ack đatilde nhận

cập nhật caacutei gigrave sẽ được ACK

khởi động bộ định thigrave nếu coacute caacutec đoạn cograven chờ

Transport Layer 3-64

TCP becircn gửi(đơn giản)

NextSeqNum = InitialSeqNum SendBase = InitialSeqNum

loop (forever) switch(event)

event data received from application above create TCP segment with sequence number NextSeqNum if (timer currently not running) start timer pass segment to IP NextSeqNum = NextSeqNum + length(data)

event timer timeout retransmit not-yet-acknowledged segment with smallest sequence number start timer

event ACK received with ACK field value of y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer

end of loop forever

Chuacute thiacutechbull SendBase-1 byte vừa được ACK tiacutech lũy Viacute dụbull SendBase-1 = 71y= 73 vigrave thế becircn nhận muốn 73+ y gt SendBase vigrave thế dữ liệu mới được chấp nhận

Transport Layer 3-65

TCP caacutec tigravenh huống truyền lại

Host A

Seq=100 20 bytes data

ACK=100

timetimeout sớm

Host B

Seq=92 8 bytes data

ACK=120

Seq=92 8 bytes data

Seq=

92

tim

eout

ACK=120

Host A

Seq=92 8 bytes data

ACK=100

loss

tim

eout

tigravenh huống mất ACK

Host B

X

Seq=92 8 bytes data

ACK=100

time

Seq=

92

tim

eout

SendBase= 100

SendBase= 120

SendBase= 120

Sendbase= 100

Transport Layer 3-66

TCP caacutec tigravenh huống truyền lại (tt)Host A

Seq=92 8 bytes data

ACK=100

loss

tim

eout

Cumulative ACK scenario

Host B

X

Seq=100 20 bytes data

ACK=120

time

SendBase= 120

Transport Layer 3-67

TCP sinh ra ACK [RFC 1122 RFC 2581]

Sự kiện tại becircn nhận

Đoạn đến với đuacuteng số thứ tự mong muốn Tất cả dữ liệu đếnđatilde được ACK

Đoạn đến với đuacuteng số thứ tự mong muốn Một đoạn khaacutec đangchờ ACK

Caacutec đoạn đến khocircng thứ tựlớn hơn số thứ tự đoạn mong muốnCoacute khoảng trống

Đoạn đếnlấp đầy từng phần hoặc toagraven bộkhoảng trống

TCP becircn nhận hagravenh động

ACK trễ Chờ đến 500mscho đoạn kế tiếp Nếu khocircng coacute đoạnkế tiếp gửi ACK

Gửi ngay một ACK tiacutech lũy chấp nhậncho cả caacutec đoạn theo thứ tự

Gửi ngay ACK trugraveng lặp chỉ thị số thứ tựđoạn của byte kế tiếp đang mong chờ

Gửi ngay ACK với điều kiện lagrave đoạnbắt đầu ngay điểm coacute khoảng trống

Transport Layer 3-68

Truyền lại nhanh

Chu kỳ Time-out thường tương đối dagravei độ trễ dagravei trước khi gửi

lại goacutei đatilde mất

Xaacutec nhận caacutec đoạn đatilde mất bằng caacutec ACK trugraveng lặp becircn gửi thường gửi

nhiều đoạn song song Nếu đoạn bị mất sẽ

xảy ra tigravenh trạng giống như nhiều ACK trugraveng nhau

Nếu becircn gửi nhận 3 ACK của cugraveng một dữ liệu noacute cho lagrave đoạn sau dữ liệu đatilde ACK bị mất Truyền lại nhanh gửi

lại đoạn trước khi bộ định thigrave hết hạn

Transport Layer 3-69

sự kiện ACK đatilde nhận với trường lagrave y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer else increment count of dup ACKs received for y if (count of dup ACKs received for y = 3) resend segment with sequence number y

Giải thuật truyền lại nhanh

một ACK trugraveng lặp cho đoạn đatilde được ACK

Truyền lại nhanh

Transport Layer 3-70

Chương 3 Nội dung trigravenh bagravey

31 Caacutec dịch vụ lớp Transport

32 Multiplexing vagrave demultiplexing

33 Vận chuyển khocircng kết nối UDP

34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy

35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối

36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn

37 Điều khiển tắc nghẽn TCP

Transport Layer 3-71

TCP điều khiển luồng

becircn nhận của kết nối TCP coacute một bộ đệm nhận

dịch vụ so trugraveng tốc độ so trugraveng tốc độ gửi với tốc độ nhận của ứng dụng

tiến trigravenh ứng dụng coacute thể chậm tại luacutec đọc bộ đệm

becircn gửi sẽ khocircng lagravem tragraven bộ đệm vigrave truyền quaacute nhiều vagrave

quaacute nhanh

điều khiển luồng

Transport Layer 3-72

TCP điều khiển luồng caacutech lagravem

(Giả sử becircn nhận TCP loại bỏ caacutec đoạn khocircng coacute thứ tự)

dự phograveng trong bộ đệm= RcvWindow

= RcvBuffer-[LastByteRcvd - LastByteRead]

Becircn nhận thocircng baacuteo khoảng dự trữ nhờ giaacute trị RcvWindow trong caacutec đoạn

Becircn gửi hạn chế dữ liệu khocircng được ACK vagraveo RcvWindow bảo đảm bộ đệm nhận

khocircng tragraven

Transport Layer 3-73

Chương 3 Nội dung trigravenh bagravey

31 Caacutec dịch vụ lớp Transport

32 Multiplexing vagrave demultiplexing

33 Vận chuyển khocircng kết nối UDP

34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy

35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối

36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn

37 Điều khiển tắc nghẽn TCP

Transport Layer 3-74

TCP quản lyacute kết nối

Chuacute yacute Becircn gửi vagrave becircn nhận TCP thiết lập ldquokết nốirdquo trước khi trao đổi dữ liệu

khởi tạo caacutec biến TCP caacutec số thứ tự đoạn thocircng tin caacutec bộ đệm điều

khiển luồng (như RcvWindow)

client người khởi xướng kết nối

Socket clientSocket = new Socket(hostnameport

number) server được tiếp xuacutec bởi

client Socket connectionSocket =

welcomeSocketaccept()

3 phương phaacutep bắt tay

Bước 1 client host gửi đoạnTCP SYN đến server xaacutec định số thứ tự khởi đầu khocircng phải dữ liệu

Bước 2 server host nhận SYN trả lời với đoạn SYNACK

server cấp phaacutet caacutec bộ đệm

xaacutec định số thứ tự khởi đầuBước 3 client nhận SYNACK trả

lời với đoạn ACK (coacute thể chứa dữ liệu)

Transport Layer 3-75

TCP quản lyacute kết nối (tt)

Đoacuteng một kết nối

client đoacuteng socket clientSocketclose()

Bước 1 client gửi đoạn điều khiển TCP FIN đến server

Bước 2 server nhận FIN trả lời với ACK Đoacuteng kết nối gửi FIN

client

FIN

server

ACK

ACK

FIN

đoacuteng

đoacuteng

đatilde đoacutengthời g

ian c

hờ

Transport Layer 3-76

TCP quản lyacute kết nối (tt)

Bước 3 client nhận FIN trả lời với ACK

Trong khoảng ldquothời gian chờrdquo ndash sẽ phản hồi với ACK để nhận caacutec FIN

Bước 4 server nhận ACK Kết nối đatilde đoacuteng

Chuacute yacute với một sửa đổi nhỏ coacute thể quản lyacute nhiều FIN đồng thời

client

FIN

server

ACK

ACK

FIN

đang đoacuteng

đang đoacuteng

đatilde đoacuteng

thời g

ian c

hờ

đatilde đoacuteng

Transport Layer 3-77

TCP quản lyacute kết nối (tt)

chu kỳ sống củaTCP client

chu kỳ sống củaTCP server

Transport Layer 3-78

Chương 3 Nội dung trigravenh bagravey

31 Caacutec dịch vụ lớp Transport

32 Multiplexing vagrave demultiplexing

33 Vận chuyển khocircng kết nối UDP

34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy

35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối

36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn

37 Điều khiển tắc nghẽn TCP

Transport Layer 3-79

Caacutec nguyecircn lyacute điều khiển tắc nghẽn

Tắc nghẽn ldquoquaacute nhiều nguồn gửi quaacute nhanh vagrave quaacute nhiều

dữ liệu đến mạngrdquo khaacutec với điều khiển luồng caacutec biểu hiện

caacutec goacutei bị mất (tragraven bộ đệm tại caacutec router) caacutec độ trễ quaacute dagravei (xếp hagraveng trong bộ đệm

của router) lagrave 1 trong 10 vấn đề nan giải nhất

Transport Layer 3-80

Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 1

2 gửi 2 nhận 1 router caacutec bộ

đệm khocircng giới hạn

khocircng coacute truyền lại

caacutec độ trễ lớn hơn khi tắc nghẽn

năng suất coacute thể đạt tối đa

unlimited shared output link buffers

Host Ain original data

Host B

out

Transport Layer 3-81

Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 2

1 router caacutec bộ đệm coacute giới hạn becircn gửi truyền lại caacutec goacutei đatilde mất

chia sẻ vocirc hạncaacutec bộ đệm ouput

Host A in dữ liệu gốc

Host B

out

in dữ liệu gốc cugraveng với dữ liệu truyền lại

Transport Layer 3-82

Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 2 luocircn luocircn

truyền lại ldquohoagraven toagravenrdquo chỉ khi mất maacutet

truyền lại vigrave trễ (khocircng mất) lagravem cho lớn hơn với cugraveng

in

out

=

in

out

gt

in

out

ldquocaacutec chi phiacuterdquo của tắc nghẽn nhiều việc (truyền lại) caacutec truyền lại khocircng cần thiết liecircn kết nhiều bản sao của

goacutei

R2

R2in

ou

t

b

R2

R2in

ou

t

a

R2

R2in

ou

t

c

R4

R3

Transport Layer 3-83

Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 3 4 người gửi caacutec đường qua nhiều hop timeouttruyền lại

in

Hỏi điều gigrave xảy ra nếu vagrave tăng lecircn

in

chia sẻ vocirc hạncaacutec bộ đệm ouput

Host Ain dữ liệu gốc

Host B

out

in dữ liệu gốc cugraveng với dữ liệu truyền lại

Transport Layer 3-84

Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 3

ldquochi phiacuterdquo khaacutec của tắc nghẽn khi caacutec goacutei bị bỏ bất kỳ ldquokhả năng truyền

upstream dugraveng cho goacutei đoacute sẽ bị latildeng phiacuterdquo

Host A

Host B

o

u

t

Transport Layer 3-85

Caacutec caacutech tiếp cận đối với điều khiển tắc nghẽn

điều khiển tắc nghẽn end-end

khocircng coacute phản hồi rotilde ragraveng từ mạng

tắc nghẽn được suy ra từ việc quan saacutet caacutec hệ thống đầu cuối coacute mất maacutet trễ

tiếp cận được quản lyacute bởi TCP

điều khiển tắc nghẽn coacute sự hỗ trợ của mạng

caacutec router cung cấp phản hồi về caacutec hệ thống đầu cuối 1 bit duy nhất chỉ thị

tắc nghẽn (SNA DECbit TCPIP ECN ATM)

tốc độ sẽ gửi được xaacutec định rotilde ragraveng

2 caacutech

Transport Layer 3-86

Viacute dụ điều khiển tắc nghẽn ATM ABR

ABR tốc độ bit sẵn sagraveng

ldquodịch vụ mềm dẻordquo nếu đường gửi ldquochưa

hếtrdquo becircn gửi sẽ dugraveng

băng thocircng sẵn sagraveng nếu đường gửi tắc

nghẽn becircn gửi điều tiết với

tốc độ tối thiểu

RM (resource management)

gửi bởi becircn gửi rải raacutec với caacutec ocirc dữ liệu

caacutec bit trong ocirc thiết lập bởi caacutec switch bit NI khocircng tăng tốc độ

(tắc nghẽn nhẹ) bit CI tắc nghẽn rotilde rệt

Caacutec ocirc RM được trả về becircn gửi từ becircn nhận với nguyecircn vẹn caacutec bit

Transport Layer 3-87

Viacute dụ điều khiển tắc nghẽn ATM ABR

trường 2-byte ER trong ocirc RM switch đatilde tắc nghẽn coacute thể coacute giaacute trị ER thấp hơn trong ocirc tốc độ gửi do đoacute coacute thể được hỗ trợ tối đa trecircn đường

EFCI bit trong caacutec ocirc dữ liệu được cagravei giaacute trị 1 trong switch đatilde tắc nghẽn nếu ocirc dữ liệu đứng trước ocirc RM coacute cagravei EFCI becircn gửi sẽ cagravei

bit CI trong ocirc RM trả về

Transport Layer 3-88

Chương 3 Nội dung trigravenh bagravey

31 Caacutec dịch vụ lớp Transport

32 Multiplexing vagrave demultiplexing

33 Vận chuyển khocircng kết nối UDP

34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy

35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối

36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn

37 Điều khiển tắc nghẽn TCP

Transport Layer 3-89

TCP điều khiển tắc nghẽn additive tăng lecircn multiplicative giảm xuống

8 Kbytes

16 Kbytes

24 Kbytes

time

congestionwindow

Caacutech tiếp cận tăng tốc độ truyền (kiacutech thước cửa sổ) tigravem khả năng băng thocircng coacute thể cho đến khi coacute mất maacutet xảy ra additive tăng lecircn tăng CongWin bởi 1 MSS

mỗi RTT cho đến khi coacute mất maacutet xảy ra multiplicative giảm xuống bỏ CongWin trong

nửa giai đoạn sau khi mất maacutet

timekiacutech

thư

ớc

cửa

sổ

tắc

nghẽ

n

Tigravem kiếm băng thocircng

Transport Layer 3-90

TCP điều khiển tắc nghẽn chi tiết

becircn gửi hạn chế việc truyền LastByteSent-LastByteAcked

CongWin Cocircng thức

CongWin thay đổi chức năng lagrave nhận biết tắc nghẽn trecircn mạng

Lagravem thế nagraveo becircn gửi nhận biết tắc nghẽn

mất maacutet xảy ra = timeout hoặc 3 ack trugraveng lặp

becircn gửi giảm tốc độ (CongWin) sau khi mất maacutet xảy ra

3 cơ chế AIMD khởi động chậm thận trọng sau khi coacute

caacutec sự kiện timeout

tốc độ = CongWin

RTT Bytess

Transport Layer 3-91

TCP khởi động chậm

Khi kết nối bắt đầu CongWin = 1 MSS Viacute dụ MSS = 500 bytes

amp RTT = 200 ms tốc độ khởi tạo = 20

kbps

băng thocircng sẵn sagraveng coacute thể gtgt MSSRTT mong muốn nhanh

choacuteng tăng tốc lecircn tốc độ coacute thể đaacutep ứng

Khi kết nối bắt đầu tăng tốc lecircn rất nhanh cho đến khi sự cố mất maacutet xảy ra đầu tiecircn

Transport Layer 3-92

TCP khởi động chậm (tt)

Khi kết nối bắt đầu tăng tốc lecircn rất nhanh cho đến khi sự cố mất maacutet xảy ra đầu tiecircn nhacircn đocirci CongWin mỗi

RTT hoagraven thagravenh nhờ tăng CongWin ứng với mỗi ACK đatilde nhận

Tổng kết tốc độ khởi đầu lagrave chậm nhưng sau đoacute tăng tốc rất nhanh

Host A

1 đoạn

RTT

Host B

thời gian

2 đoạn

4 đoạn

Transport Layer 3-93

Tinh chếHỏi Khi nagraveo việc tăng

tốc trở thagravenh tuyến tiacutenh

Trả lời Khi CongWin đạt đến 12 giaacute trị của noacute trước khi timeout

Hiện thực Ngưỡng thay đổi Tại thời điểm coacute sự cố

mất maacutet ngưỡng được cagravei giaacute trị bằng frac12 của CongWin ngay trước đoacute

Transport Layer 3-94

Tinh chế nhận biết mất maacutet

Sau 3 ACK trugraveng lặp CongWin sẽ giảm 12 kiacutech thước cửa sổ

tăng tuyến tiacutenh nhưng sau sự cố

timeout CongWin thay giaacute trị

bằng 1 MSS kiacutech thước cửa sổ

tăng cấp lũy thừa khi đến một ngưỡng

thigrave tăng tuyến tiacutenh

3 ACK trugraveng nhau chỉ ra khả năng truyền của mạng timeout chỉ thị ldquonhiều cảnh baacuteordquo về tigravenh huống tắc nghẽn

Nguyecircn lyacute

Transport Layer 3-95

Tổng kết TCP điều khiển tắc nghẽn

Khi CongWin dưới Threshold becircn gửi đang trong giai đoạn khởi động chậm kiacutech thước cửa sổ tăng nhanh theo cấp lũy thừa

Khi CongWin trecircn Threshold becircn gửi đang trong giai đoạn traacutenh tắc nghẽn kiacutech thước cửa sổ tăng nhanh theo cấp tuyến tiacutenh

Khi coacute 3 ACK trugraveng lặp xảy ra Threshold = CongWin2 vagrave CongWin = Threshold

Khi timeout xảy ra Threshold = CongWin2 vagrave CongWin = 1 MSS

Transport Layer 3-96

TCP điều khiển tắc nghẽn becircn gửi

Trạng thaacutei Sự kiện TCP becircn gửi hagravenh động Diễn giải

Slow Start (SS)-Khởi động chậm

ACK baacuteo nhận cho dữ liệu chưa ACK trước đoacute

CongWin = CongWin + MSS If (CongWin gt Threshold) cagravei đặt trạng thaacutei ldquoTraacutenh tắc nghẽnrdquo

Hậu quả lagravem tăng gấp đocirci CongWin mỗi RTT

CongestionAvoidance (CA) ndashTraacutenh tắc nghẽn

ACK baacuteo nhận cho dữ liệu chưa ACK trước đoacute

CongWin = CongWin+MSS (MSSCongWin)

Additive tăng lecircn lagravem tăng CongWin lecircn 1 MSS mỗi RTT

SS hoặc CA Sự cố mất maacutet xảy ra khi thấy coacute 3 ACK trugraveng lặp

Threshold = CongWin2 CongWin = Thresholdcagravei đặt trạng thaacutei ldquoTraacutenh tắc nghẽnrdquo

Khocirci phục nhanh hiện thực giảm xuống multiplicative CongWin sẽ khocircng giảm xuống dưới 1 MSS

SS hoặc CA Timeout Threshold = CongWin2 CongWin = 1 MSScagravei đặt trạng thaacutei ldquoKhởi động chậmrdquo

Vagraveo chế độ ldquoKhởi động chậmrdquo

SS hoặc CA ACK trugraveng lặp

Đếm ACK tăng lecircn cho đoạn vừa được ACK

CongWin vagrave Threshold khocircng thay đổi

Transport Layer 3-97

TCP throughput

Throughout trung bigravenh của TCP biểu diễn qua kiacutech thước của sổ vagrave RTT Bỏ qua trạng thaacutei ldquoKhởi động chậmrdquo

Cho W lagrave kiacutech thước cửa sổ khi coacute mất maacutet xảy ra

Khi kiacutech thước cửa sổ = W lưu lượng = WRTT

Chỉ ngay sau khi mất maacutet cửa sổ giảm xuống = W2 lưu lượng = W2RTT

throughout trung bigravenh 075 WRTT

Transport Layer 3-98

TCP tương lai

Viacute dụ caacutec đoạn dagravei 1500 byte RTT 100ms lưu lượng 10 Gbps

Kiacutech thước cửa sổ yecircu cầu W = 83333 đoạn trecircn đường truyền

Lưu lượng trong caacutec trường hợp mất maacutet

L = 210-10

Phiecircn bản mới của TCP dagravenh cho nhu cầu tốc độ cao

LRTT

MSS221

Transport Layer 3-99

Mục tiecircu nếu K phiecircn lagravem việc TCP chia sẻ kết nối cổ chai của băng thocircng lagrave R mỗi phiecircn coacute tốc độ trung bigravenh lagrave RK

TCP kết nối 1

router cổ chaikhả năng R

TCP kết nối 2

TCP tiacutenh cocircng bằng

Transport Layer 3-100

Tại sao phải TCP cocircng bằng

2 phiecircn lagravem việc cạnh tranh nhau Additive tăng lưu lượng tăng multiplicative giảm lưu lượng tương xứng

R

R

chia sẻ băng thocircng bằng nhau

Connection 1 throughputConnect

ion 2

th

roughput

traacutenh tắc nghẽn additive tăng lecircnmất maacutet giảm cửa sổ bằng 12

traacutenh tắc nghẽn additive tăng lecircnmất maacutet giảm cửa sổ bằng 12

Transport Layer 3-101

TCP tiacutenh cocircng bằng (tt)

Tiacutenh cocircng bằng amp UDP nhiều ứng dụng

thường khocircng dugraveng TCP khocircng muốn tốc độ bị

điều tiết do điều khiển tắc nghẽn

Thay bằng dugraveng UDP truyền audiovideo với

tốc độ ổn định chịu được mất maacutet

Nghiecircn cứu giao thức thacircn thiện với TCP

Tiacutenh cocircng bằng amp caacutec kết nối TCP song song

khocircng coacute gigrave ngăn cản việc ứng dụng mở caacutec kết nối song song giữa 2 host

Trigravenh duyệt Web lagravem giống như thế

Viacute dụ tốc độ R hỗ trợ 9 kết nối ứng dụng mới yecircu cầu 1

TCP coacute tốc độ R10 ứng dụng mới yecircu cầu 11

TCP coacute tốc độ R2

Transport Layer 3-102

Mocirc higravenh trễ

Hỏi Mất bao lacircu để nhận 1 đối tượng từ Web server sau khi gửi yecircu cầu

Bỏ qua tắc nghẽn trễ bị ảnh hưởng bởi

thiết lập kết nối TCP trễ truyền dữ liệu khởi động chậm

Notation caacutec giả định Giả sử một kết nối giữa

client vagrave server coacute tốc độ R

S MSS (bits) O kiacutech thước đối tượng

(bits) khocircng truyền lại (khocircng

mất maacutet khocircng hỏng)

Kiacutech thước cửa sổ Giả định 1 cửa sổ tắc

nghẽn cố định coacute W đoạn Sau đoacute cửa sổ thay đổi

mocirc higravenh khởi động chậm

Transport Layer 3-103

Cửa sổ tắc nghẽn cố định (1)

Trường hợp đầu tiecircnWSR gt RTT + SR cho

đoạn đầu tiecircn trong cửa sổ trả về trước khi cửa sổ dữ liệu gửi ACK

trễ = 2RTT + OR

Transport Layer 3-104

Cửa sổ tắc nghẽn cố định (2)

Trường hợp thứ hai WSR lt RTT + SR sent

chờ cho ACK sau khi gửi dữ liệu

trễ = 2RTT + OR+ (K-1)[SR + RTT - WSR]

Transport Layer 3-105

TCP Mocirc higravenh trễ Khởi động chậm (1)

Bacircy giờ giả sử kiacutech thước cửa sổ tăng lecircn tugravey theo quaacute trigravenh khởi động chậm

Độ trễ của một đối tượng sẽ lagrave

R

S

R

SRTTP

R

ORTTLatency P )12(2

trong đoacute P lagrave số lần TCP rảnh ở tại server

1min KQP

- trong đoacute Q lagrave số lần server rảnh nếu đối tượng đatilde khởi tạo kiacutech thước

- vagrave K lagrave số lượng cửa sổ bao trugravem đối tượng

Transport Layer 3-106

TCP Mocirc higravenh trễ Khởi động chậm (2)

RTT

initia te TCPconnection

requestobject

first w indow= S R

second w indow= 2S R

third w indow= 4S R

fourth w indow= 8S R

com pletetransm issionobject

delivered

tim e atc lient

tim e atserver

Viacute dụbull OS = 15 đoạnbull K = 4 cửa sổbull Q = 2bull P = minK-1Q = 2

Server rảnh P=2 lần

Caacutec thagravenh phần trễbull 2 RTT dagravenh cho thiết lập kết nối vagrave yecircu cầubull OR để truyền đối tượngbullthời gian server rảnh bởi vigrave khởi động chậm

Server rảnh P = minK-1Q lần

Transport Layer 3-107

TCP Mocirc higravenh trễ(3)

R

S

R

SRTTPRTT

R

O

R

SRTT

R

SRTT

R

O

idleTimeRTTR

O

P

kP

k

P

pp

)12(][2

]2[2

2delay

1

1

1

th window after the timeidle 2 1 kR

SRTT

R

S k

ementacknowledg receivesserver until

segment send tostartsserver when from time RTTR

S

window kth the transmit totime2 1

R

Sk

RTT

initia te TCPconnection

requestobject

first w indow= S R

second w indow= 2S R

third w indow= 4S R

fourth w indow= 8S R

com pletetransm issionobject

delivered

tim e atc lient

tim e atserver

Transport Layer 3-108

TCP Mocirc higravenh trễ (4)

)1(log

)1(logmin

12min

222min

222min

2

2

110

110

S

OS

Okk

S

Ok

SOk

OSSSkK

k

k

k

caacutech tiacutenh toaacuten Q tương tự (xem HW)

K = số lượng cửa sổ bao trugravem đối tượngLagravem thế nagraveo tiacutenh được K

Transport Layer 3-109

HTTP Mocirc higravenh Giả sử trang Web chứa

1 trang HTML (kiacutech thước O bits) M higravenh ảnh (mỗi caacutei kiacutech thướcO bits)

HTTP khocircng bền vững M+1 TCP kết nối Thời gian đaacutep ứng = (M+1)OR + (M+1)2RTT + tổng số thời

gian rảnh HTTP bền vững

2 RTT để yecircu cầu vagrave nhận file HTML 1 RTT để yecircu cầu vagrave nhận M higravenh ảnh Thời gian đaacutep ứng = (M+1)OR + 3RTT + tổng số thời gian

rảnh HTTP khocircng bền vững với X kết nối song song

Giả sử MX lagrave số nguyecircn 1 TCP kết nối cho file MX thiết lập caacutec kết nối song song cho caacutec higravenh ảnh Thời gian đaacutep ứng = (M+1)OR + (MX + 1)2RTT + tổng số

thời gian rảnh

Transport Layer 3-110

02468

101214161820

28Kbps

100Kbps

1Mbps

10Mbps

non-persistent

persistent

parallel non-persistent

HTTP thời gian đaacutep ứng (giacircy)RTT = 100 msec O = 5 Kbytes M=10 vagrave X=5

Với băng thocircng thấp thời gian kết nối amp đaacutep ứng trội hơn thời gian truyền

Caacutec kết nối bền vững chỉ cho sự cải thiện khocircng đaacuteng kể trecircn caacutec kết nối song song

Transport Layer 3-111

0

10

20

30

40

50

60

70

28Kbps

100Kbps

1Mbps

10Mbps

non-persistent

persistent

parallel non-persistent

HTTP thời gian đaacutep ứng (giacircy)

RTT =1 sec O = 5 Kbytes M=10 and X=5

Với RTT lớn hơn thời gian đaacutep ứng trội hơn thời gian trễ chờ thiết lập kết nốiTCP amp khởi động chậm Caacutec kết nối bền vững bacircy giờ cho thấy cải thiện rotilde rệt đặc biệtvới caacutec mạng băng thocircng cao

Transport Layer 3-112

Chương 3 Tổng kết caacutec nguyecircn lyacute của caacutec

dịch vụ lớp transport multiplexing

demultiplexing truyền dữ liệu tin cậy điều khiển luồng điều khiển tắc nghẽn

khởi tạo vagrave hiện thực trong Internet UDP TCP

Tiếp theo nghiecircn cứu xong

caacutec vấn đề ldquongoagravei biecircnrdquo (caacutec lớp application transport)

chuẩn bị vagraveo phần ldquolotildeirdquo của mạng

  • Slide 1
  • Chương 3 Lớp Transport
  • Chương 3 Nội dung trigravenh bagravey
  • Caacutec dịch vụ vagrave giao thức Transport
  • Lớp Transport với lớp network
  • Caacutec giao thức lớp transport trecircn Internet
  • Slide 7
  • Multiplexingdemultiplexing
  • Demultiplexing lagravem việc như thế nagraveo
  • Demultiplexing khocircng kết nối
  • Demultiplexing khocircng kết nối (tiếp)
  • Demultiplexing hướng kết nối
  • Demultiplexing hướng kết nối (tiếp)
  • Demultiplexing hướng kết nối Threaded Web Server
  • Slide 15
  • UDP User Datagram Protocol [RFC 768]
  • UDP (tt)
  • UDP checksum
  • Viacute dụ Checksum
  • Slide 20
  • Caacutec nguyecircn lyacute truyền dữ liệu tin cậy
  • Slide 22
  • Slide 23
  • Truyền dữ liệu tin cậy
  • Slide 25
  • Rdt10 truyền dữ liệu tin cậy trecircn 1 kecircnh truyền tin cậy
  • Rdt20 kecircnh với caacutec lỗi
  • rdt20 đặc tả FSM
  • rdt20 hoạt động khi khocircng lỗi
  • rdt20 hoạt động khi coacute lỗi
  • rdt20 coacute lỗ hổng nghiecircm trọng
  • rdt21 người gửi quản lyacute caacutec ACKNAK bị hỏng
  • Slide 33
  • rdt21 thảo luận
  • rdt22 một giao thức khocircng cần NAK
  • rdt22 gửi nhận caacutec mảnh
  • rdt30 caacutec kecircnh với lỗi vagrave mất maacutet
  • rdt30 gửi
  • hagravenh động của rdt30
  • Slide 40
  • Hiệu suất của rdt30
  • rdt30 hoạt động dừng-vagrave-chờ
  • Caacutec giao thức Pipelined
  • Pipelining độ khả dụng tăng
  • Go-Back-N
  • GBN becircn gửi mở rộng FSM
  • GBN becircn nhận mở rộng FSM
  • GBN hoạt động
  • Lặp coacute lựa chọn
  • Lặp coacute lựa chọn caacutec cửa sổ gửi nhận
  • Slide 51
  • Hoạt động của lặp coacute lựa chọn
  • Lặp coacute lựa chọn tigravenh trạng khoacute giải quyết
  • Slide 54
  • TCP Tổng quan RFCs 793 1122 1323 2018 2581
  • TCP cấu truacutec đoạn
  • Caacutec số thứ tự TCP vagrave ACK
  • TCP Round Trip Time vagraveTimeout
  • TCP Round Trip Time vagrave Timeout
  • Viacute dụ đaacutenh giaacute RTT
  • Slide 61
  • TCP truyền dữ liệu tin cậy
  • TCP caacutec sự kiện
  • TCP becircn gửi (đơn giản)
  • TCP caacutec tigravenh huống truyền lại
  • TCP caacutec tigravenh huống truyền lại (tt)
  • TCP sinh ra ACK [RFC 1122 RFC 2581]
  • Truyền lại nhanh
  • Giải thuật truyền lại nhanh
  • Slide 70
  • TCP điều khiển luồng
  • TCP điều khiển luồng caacutech lagravem
  • Slide 73
  • TCP quản lyacute kết nối
  • TCP quản lyacute kết nối (tt)
  • Slide 76
  • Slide 77
  • Slide 78
  • Caacutec nguyecircn lyacute điều khiển tắc nghẽn
  • Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 1
  • Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 2
  • Slide 82
  • Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 3
  • Slide 84
  • Caacutec caacutech tiếp cận đối với điều khiển tắc nghẽn
  • Viacute dụ điều khiển tắc nghẽn ATM ABR
  • Slide 87
  • Slide 88
  • TCP điều khiển tắc nghẽn additive tăng lecircn multiplicative giảm xuống
  • TCP điều khiển tắc nghẽn chi tiết
  • TCP khởi động chậm
  • TCP khởi động chậm (tt)
  • Tinh chế
  • Tinh chế nhận biết mất maacutet
  • Tổng kết TCP điều khiển tắc nghẽn
  • TCP điều khiển tắc nghẽn becircn gửi
  • TCP throughput
  • TCP tương lai
  • TCP tiacutenh cocircng bằng
  • Tại sao phải TCP cocircng bằng
  • TCP tiacutenh cocircng bằng (tt)
  • Mocirc higravenh trễ
  • Cửa sổ tắc nghẽn cố định (1)
  • Cửa sổ tắc nghẽn cố định (2)
  • TCP Mocirc higravenh trễ Khởi động chậm (1)
  • TCP Mocirc higravenh trễ Khởi động chậm (2)
  • TCP Mocirc higravenh trễ(3)
  • TCP Mocirc higravenh trễ (4)
  • HTTP Mocirc higravenh
  • Slide 110
  • Slide 111
  • Chương 3 Tổng kết

Transport Layer 3-14

Demultiplexing hướng kết nối Threaded Web Server

ClientIPB

P1

client IP A

P1P2

serverIP C

SP 9157

DP 80

SP 9157

DP 80

P4 P3

D-IPCS-IP A

D-IPC

S-IP B

SP 5775

DP 80

D-IPCS-IP B

Transport Layer 3-15

Chương 3 Nội dung trigravenh bagravey

31 Caacutec dịch vụ lớp Transport

32 Multiplexing vagrave demultiplexing

33 Vận chuyển khocircng kết nối UDP

34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy

35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối

36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn

37 Điều khiển tắc nghẽn TCP

Transport Layer 3-16

UDP User Datagram Protocol [RFC 768]

giao thức Internet transport ldquođơn giản hoacuteardquo

dịch vụ ldquobest effortrdquo caacutec đoạn UDP coacute thể mất maacutet vận chuyển khocircng thứ

tự đến ứng dụng connectionless (khocircng

kết nối) khocircng bắt tay giữa

người nhận vagrave người gửi UDP

mỗi đoạn UDP được quản lyacute độc lập

Coacute UDP để lagravem gigrave khocircng thiết lập kết nối

(giuacutep coacute thể thecircm delay) đơn giản khocircng trạng

thaacutei kết nối tại nơi gửi nơi nhận

header của đoạn nhỏ khocircng điều khiển tắc

nghẽn UDP coacute thể gửi nhanh nhất theo mong muốn

Transport Layer 3-17

UDP (tt)

thường dugraveng cho caacutec ứng dụng streaming multimedia chịu mất maacutet cảm nhận tốc độ

ngoagravei ra UDP dugraveng DNS SNMP

truyền tin cậy trecircn UDP thecircm khả năng nagravey tại lớp application sửa lỗi

source port dest port

32 bits

dữ liệu ứng dụng

(thocircng điệp)

dạng thức đoạn UDP

length checksumĐộ dagravei

đoạn UDPbao gồm cả

header

Transport Layer 3-18

UDP checksum

Người gửi đối xử caacutec nội dung

đoạn như một chuỗi caacutec số nguyecircn 16-bit

checksum bổ sung(tổng bugrave 1) của caacutec nội dung đoạn

đặt giaacute trị checksum vagraveo trường UDP checksum

Người nhận tiacutenh toaacuten checksum của

đoạn đatilde nhận kiểm tra giaacute trị trecircn coacute bằng

với giaacute trị trong trường checksum NO ndash coacute lỗi xảy ra YES ndash khocircng coacute lỗi Nhưng coacute thể cograven lỗi

khaacutec nữa Xem tiếp phần sau hellip

Mục tiecircu kiểm tra caacutec ldquolỗirdquo (caacutec bit cờ đatilde bật lecircn) trong caacutec đoạn đatilde truyền

Transport Layer 3-19

Viacute dụ Checksum Lưu yacute

Khi cộng caacutec số một bit nhớ ở phiacutea cao nhất coacute thể sẽ phải thecircm vagraveo kết quả

Viacute dụ cộng hai số nguyecircn 16-bit

1 1 1 1 0 0 1 1 0 0 1 1 0 0 1 1 01 1 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1

1 1 0 1 1 1 0 1 1 1 0 1 1 1 0 1 1

1 1 0 1 1 1 0 1 1 1 0 1 1 1 1 0 01 0 1 0 0 0 1 0 0 0 1 0 0 0 0 1 1

bit dư

tổngchecksum

Transport Layer 3-20

Chương 3 Nội dung trigravenh bagravey

31 Caacutec dịch vụ lớp Transport

32 Multiplexing vagrave demultiplexing

33 Vận chuyển khocircng kết nối UDP

34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy

35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối

36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn

37 Điều khiển tắc nghẽn TCP

Transport Layer 3-21

Caacutec nguyecircn lyacute truyền dữ liệu tin cậy quan trọng trong caacutec lớp application transport link lagrave danh saacutech 10 vấn đề quan trọng nhất của mạng

caacutec đặc thugrave của kecircnh truyền khocircng tin cậy sẽ xaacutec định sự phức tạp của giao thức truyền dữ liệu data transfer protocol (rdt)

Transport Layer 3-22

Caacutec nguyecircn lyacute truyền dữ liệu tin cậy quan trọng trong caacutec lớp application transport link lagrave danh saacutech 10 vấn đề quan trọng nhất của mạng

caacutec đặc thugrave của kecircnh truyền khocircng tin cậy sẽ xaacutec định sự phức tạp của giao thức truyền dữ liệu data transfer protocol (rdt)

Transport Layer 3-23

Caacutec nguyecircn lyacute truyền dữ liệu tin cậy quan trọng trong caacutec lớp application transport link lagrave danh saacutech 10 vấn đề quan trọng nhất của mạng

caacutec đặc thugrave của kecircnh truyền khocircng tin cậy sẽ xaacutec định sự phức tạp của giao thức truyền dữ liệu data transfer protocol (rdt)

Transport Layer 3-24

Truyền dữ liệu tin cậy

sendside

receiveside

rdt_send() được gọi bởi lớp app Chuyển dữ liệu cần truyền

đến lớp cao hơn becircn nhận

udt_send() được gọi bởi rdt để truyền caacutec goacutei trecircn kecircnh khocircng tin cậy đến nơi

nhận

rdt_rcv() được gọi khi goacutei đến kecircnh becircn nhận

deliver_data() được gọi bởi rdt để truyền dữ liệu

đến lớp cao hơn

Transport Layer 3-25

Truyền dữ liệu tin cậy

Sẽ chỉ xem xeacutet truyền dữ liệu theo 1 hướng duy

nhất nhưng điều khiển luồng thocircng tin sẽ theo cả 2

chiều

dugraveng maacutey trạng thaacutei hữu hạn (finite state machines-FSM) để xaacutec định người gửi người nhận

trthaacutei1

trthaacutei2

sự kiện gacircy ra trạng thaacutei truyềncaacutec hagravenh động xảy ra khi truyền

trạng thaacutei khi ở ldquotrạng thaacuteirdquo nagravey thigrave

trạng thaacutei kế tiếp duy nhất được xaacutec định bởi sự kiện kế

tiếp

sự kiệncaacutec hagravenh động

Transport Layer 3-26

Rdt10 truyền dữ liệu tin cậy trecircn 1 kecircnh truyền tin cậy

kecircnh ưu tiecircn tin cậy hoagraven toagraven khocircng coacute caacutec lỗi khocircng mất maacutet caacutec goacutei

caacutec FSM phacircn biệt cho người gửi người nhận người gửi gửi dữ liệu vagraveo kecircnh ưu tiecircn người nhận nhận dữ liệu từ kecircnh ưu tiecircn

chờ gọi từ lớp trecircn packet = make_pkt(data)

udt_send(packet)

rdt_send(data)

extract (packetdata)deliver_data(data)

chờ gọi từ lớp dưới

rdt_rcv(packet)

người gửi người nhận

Transport Layer 3-27

Rdt20 kecircnh với caacutec lỗi

kecircnh ưu tiecircn coacute thể bật lecircn một số bit trong goacutei checksum để kiểm tra caacutec lỗi

Hỏi lagravem sao khocirci phục caacutec lỗi acknowledgements (ACKs) becircn nhận rotilde ragraveng thocircng

baacuteo cho becircn gửi rằng quaacute trigravenh nhận goacutei tốt negative acknowledgements (NAKs) becircn nhận rotilde ragraveng

thocircng baacuteo cho becircn gửi rằng quaacute trigravenh nhận goacutei coacute lỗi người gửi gửi lại goacutei nagraveo được xaacutec nhận lagrave NAK

caacutec cơ chế mới trong rdt20 (sau rdt10) kiểm tra lỗi nhận phản hồi caacutec thocircng điệp điều khiển (ACKNAK)

becircn nhận becircn gửi

Transport Layer 3-28

rdt20 đặc tả FSM

chờ gọi từ lớp trecircn

snkpkt = make_pkt(data checksum)udt_send(sndpkt)

extract(rcvpktdata)deliver_data(data)udt_send(ACK)

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)

rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp isNAK(rcvpkt)

udt_send(NAK)

rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)

chờ ACK hoặc NAK

chờ gọi từ lớp dưới

người gửi

người nhậnrdt_send(data)

Transport Layer 3-29

rdt20 hoạt động khi khocircng lỗi

chờ gọi từ lớp dưới

snkpkt = make_pkt(data checksum)udt_send(sndpkt)

extract(rcvpktdata)deliver_data(data)udt_send(ACK)

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)

rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp isNAK(rcvpkt)

udt_send(NAK)

rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)

chờ ACK hoặc NAK

chờ gọi từ lớp dưới

rdt_send(data)

Transport Layer 3-30

rdt20 hoạt động khi coacute lỗi

chờ gọi từ lớp dưới

snkpkt = make_pkt(data checksum)udt_send(sndpkt)

extract(rcvpktdata)deliver_data(data)udt_send(ACK)

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)

rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp isNAK(rcvpkt)

udt_send(NAK)

rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)

chờ ACK hoặc NAK

chờ gọi từ lớp dưới

rdt_send(data)

Transport Layer 3-31

rdt20 coacute lỗ hổng nghiecircm trọngĐiều gigrave xảy ra nếu

ACKNAK bị hỏng người gửi khocircng biết điều

gigrave đatilde xảy ra tại becircn nhận

khocircng thể đơn phương truyền lại khả năng trugraveng lặp

Quản lyacute trugraveng lặp người gửi truyền lại goacutei

hiện tại nếu ACKNAK bị hỏng

người gửi thecircm số thứ tự vagraveo mỗi goacutei

người nhận hủy (khocircng nhận) goacutei trugraveng lặp

Người gửi gửi 1 goacutei sau đoacute dừng lại chờ phản hồitừ người nhận

dừng vagrave chờ

Transport Layer 3-32

rdt21 người gửi quản lyacute caacutec ACKNAK bị hỏng

chờ gọi 0 từ lớp trecircn

sndpkt = make_pkt(0 data checksum)udt_send(sndpkt)

rdt_send(data)

chờ ACK hoặc NAK

0 udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) ||isNAK(rcvpkt) )

sndpkt = make_pkt(1 data checksum)udt_send(sndpkt)

rdt_send(data)

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) ||isNAK(rcvpkt) )

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt)

chờ gọi 1 từ lớp trecircn

chờ ACK hoặc NAK

1

Transport Layer 3-33

rdt21 người gửi quản lyacute caacutec ACKNAK bị hỏng

chờ 0 từ dưới

sndpkt = make_pkt(NAK chksum)udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp not corrupt(rcvpkt) ampamp has_seq0(rcvpkt)

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp has_seq1(rcvpkt)

extract(rcvpktdata)deliver_data(data)sndpkt = make_pkt(ACK chksum)udt_send(sndpkt)

chờ 1 từ dưới

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp has_seq0(rcvpkt)

extract(rcvpktdata)deliver_data(data)sndpkt = make_pkt(ACK chksum)udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp (corrupt(rcvpkt)

sndpkt = make_pkt(ACK chksum)udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp not corrupt(rcvpkt) ampamp has_seq1(rcvpkt)

rdt_rcv(rcvpkt) ampamp (corrupt(rcvpkt)

sndpkt = make_pkt(ACK chksum)udt_send(sndpkt)

sndpkt = make_pkt(NAK chksum)udt_send(sndpkt)

Transport Layer 3-34

rdt21 thảo luận

người gửi số thứ tự thecircm vagraveo

goacutei chỉ cần hai số thứ tự

(01) lagrave đủ Tại sao phải kiểm tra nếu việc

nhận ACKNAK bị hỏng

số trạng thaacutei tăng lecircn 2 lần trạng thaacutei phải ldquonhớrdquo

goacutei ldquohiện tạirdquo coacute số thứ tự lagrave 0 hay 1

người nhận phải kiểm tra coacute

nhận trugraveng goacutei khocircng trạng thaacutei chỉ rotilde coacute

hay khocircng mong chờ số thứ tự 0 hoặc 1

chuacute yacute người nhận khocircng biết ACKNAK vừa rồi của noacute coacute được người gửi nhận tốt hay khocircng

Transport Layer 3-35

rdt22 một giao thức khocircng cần NAK

chức năng giống như rdt21 chỉ dugraveng caacutec ACK thay cho NAK người nhận gửi ACK cho goacutei vừa

rồi đatilde nhận tốt người nhận phải rotilde ragraveng chegraven số thứ tự của goacutei vừa ACK

trugraveng ACK tại người gửi hậu quả giống như hagravenh động của NAK truyền lại goacutei vừa rồi

Transport Layer 3-36

rdt22 gửi nhận caacutec mảnh

Chờ cho gọi 0 từ

trecircn

sndpkt = make_pkt(0 data checksum)udt_send(sndpkt)

rdt_send(data)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) || isACK(rcvpkt1) )

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt0)

Chờ cho ACK

0

gửi phacircn mảnhFSM

Chờ cho gọi

0 từ dưới

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp has_seq1(rcvpkt)

extract(rcvpktdata)deliver_data(data)sndpkt = make_pkt(ACK1 chksum)udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp (corrupt(rcvpkt) || has_seq1(rcvpkt))

udt_send(sndpkt)

nhận phacircn mảnhFSM

Transport Layer 3-37

rdt30 caacutec kecircnh với lỗi vagrave mất maacutet

Giả định mới kecircnh ưu tiecircn cũng coacute thể lagravem mất caacutec goacutei (dữ liệu hoặc caacutec ACK) checksum số thứ tự

caacutec ACK caacutec việc truyền lại sẽ hỗ trợ nhưng khocircng đủ

Caacutech tiếp cận người gửi chờ ACK trong khoảng thời gian ldquochấp nhận đượcrdquo

truyền lại nếu khocircng nhận ACK trong khoảng thời gian nagravey

nếu goacutei (hoặc ACK) chỉ trễ (khocircng mất) truyền lại sẽ gacircy trugraveng

nhưng dugraveng số thứ tự sẽ giải quyết được

người nhận phải xaacutec định số thứ tự của goacutei vừa gửi ACK

cần bộ định thigrave đếm lugravei

Transport Layer 3-38

rdt30 gửi

sndpkt = make_pkt(0 data checksum)udt_send(sndpkt)start_timer

rdt_send(data)

Chờ cho

ACK 0

rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) ||isACK(rcvpkt1) )

Chờ cho gọi 1 từ trecircn

sndpkt = make_pkt(1 data checksum)udt_send(sndpkt)start_timer

rdt_send(data)

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt0)

rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) ||isACK(rcvpkt0) )

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt1)

stop_timerstop_timer

udt_send(sndpkt)start_timer

timeout

udt_send(sndpkt)start_timer

timeout

rdt_rcv(rcvpkt)

Chờ cho gọi 0 từ trecircn

Chờ cho

ACK 1

rdt_rcv(rcvpkt)

Transport Layer 3-39

hagravenh động của rdt30

Transport Layer 3-40

hagravenh động của rdt30

Transport Layer 3-41

Hiệu suất của rdt30

rdt30 lagravem việc được nhưng đaacutenh giaacute hiệu suất hơi rắc rối viacute dụ liecircn kết 1 Gbps trễ lan truyền giữa hai đầu cuối lagrave 15

ms goacutei 1KB

T truyền = 8kbpkt109 bsec

= 8 microsec

U sender độ khả dụng ndash

U sender

= 008

30008 = 000027

microseconds

L R

RTT + L R =

L (độ dagravei goacutei tiacutenh bằng bits)R (tốc độ truyền bps)

=

goacutei 1KB mỗi 30 msec -gt 33kBs trecircn đường truyền 1 Gbps giao thức network hạn chế việc dugraveng caacutec tagravei nguyecircn vật

lyacute

Transport Layer 3-42

rdt30 hoạt động dừng-vagrave-chờ

goacutei đầu tiecircn đatilde truyền t = 0

gửi nhận

RTT

goacutei cuối cugraveng đatilde truyền t = L R

goacutei đầu tiecircn đatilde đếngoacutei cuối cugraveng đatilde đến gửi ACK

ACK đến gửi goacutei kế tiếp t = RTT + L R

U sender

= 008

30008 = 000027

microseconds

L R

RTT + L R =

Transport Layer 3-43

Caacutec giao thức Pipelined

Pipelining người gửi cho pheacutep gửi nhiều goacutei đồng thời khocircng cần chờ baacuteo nhận được nhoacutem caacutec số thứ tự phải tăng dần phải coacute bộ nhớ đệm tại nơi gửi vagravehoặc nơi nhận

hai dạng phổ biến của caacutec giao thức pipelined go-Back-N Lặp coacute lựa chọn

Transport Layer 3-44

Pipelining độ khả dụng tăng

goacutei đầu tiecircn đatilde truyền t = 0

sender receiver

RTT

goacutei cuối cugraveng đatilde truyền t = L R

goacutei đầu tiecircn đatilde đếngoacutei cuối cugraveng đatilde đến gửi ACK

ACK đến gửi goacuteikế tiếp t = RTT + L R

bit cuối của goacutei thứ 2 đến gửi ACKbit cuối của goacutei thứ 3 đến gửi ACK

U sender

= 024

30008 = 00008

microseconds

3 L R

RTT + L R =

Độ khả dụng tăng lecircngấp 3 lần

Transport Layer 3-45

Go-Back-NBecircn gửi k-bit số thứ tự trong header của goacutei ldquocửa sổrdquo tăng lecircn đến N cho pheacutep gửi caacutec goacutei liecircn tục khocircng cần ACK

ACK(n) ACKs tất cả caacutec goacutei đến chứa số thứ tự n ndash ldquoACK tiacutech lũyrdquo coacute thể nhận caacutec ACK trugraveng lặp (xem becircn nhận)

định thigrave cho mỗi goacutei trecircn đường truyền timeout(n) gửi lại goacutei n vagrave tất cả caacutec goacutei coacute số thứ tự cao

hơn trong cửa sổ

Transport Layer 3-46

GBN becircn gửi mở rộng FSM

chờ start_timerudt_send(sndpkt[base])udt_send(sndpkt[base+1])hellipudt_send(sndpkt[nextseqnum-1])

timeout

rdt_send(data)

if (nextseqnum lt base+N) sndpkt[nextseqnum] = make_pkt(nextseqnumdatachksum) udt_send(sndpkt[nextseqnum]) if (base == nextseqnum) start_timer nextseqnum++ else refuse_data(data)

base = getacknum(rcvpkt)+1If (base == nextseqnum) stop_timer else start_timer

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)

base=1nextseqnum=1

rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)

Transport Layer 3-47

GBN becircn nhận mở rộng FSM

ACK-duy nhất luocircn luocircn gửi ACK cho goacutei đatilde nhận đuacuteng với số thứ tự xếp hạng cao nhất coacute thể sinh ra caacutec ACK trugraveng nhau chỉ cần nhớ expectedseqnum

goacutei khocircng theo thứ tự hủy -gt khocircng nhận vagraveo bộ đệm gửi lại ACK với số thứ tự xếp hạng cao nhất

chờ

udt_send(sndpkt)

default

rdt_rcv(rcvpkt) ampamp notcurrupt(rcvpkt) ampamp hasseqnum(rcvpktexpectedseqnum)

extract(rcvpktdata)deliver_data(data)sndpkt = make_pkt(expectedseqnumACKchksum)udt_send(sndpkt)expectedseqnum++

expectedseqnum=1sndpkt = make_pkt(expectedseqnumACKchksum)

Transport Layer 3-48

GBN hoạt động

Transport Layer 3-49

Lặp coacute lựa chọn

becircn nhận thocircng baacuteo đatilde nhận đuacuteng tất cả từng goacutei một đệm (buffer) caacutec goacutei nếu cần thiết

becircn gửi chỉ gửi lại caacutec goacutei nagraveo khocircng nhận được ACK becircn gửi định thigrave đối với mỗi goacutei khocircng gửi ACK

cửa sổ becircn gửi N số thứ tự liecircn tục hạn chế số thứ tự caacutec goacutei khocircng gửi ACK

Transport Layer 3-50

Lặp coacute lựa chọn caacutec cửa sổ gửi nhận

Transport Layer 3-51

Lặp coacute lựa chọn

dữ liệu từ lớp trecircn nếu số thứ tự kế tiếp sẵn

sagraveng trong cửa sổ gửi goacutei

timeout(n) gửi lại goacutei n taacutei khởi tạo

bộ định thigrave

ACK(n) trong [sendbasesendbase+N]

đaacutenh dấu goacutei n lagrave đatilde nhận nếu goacutei khocircng ACK coacute n

nhỏ nhất dịch chuyển cửa sổ base đến số thứ tự khocircng ACK kế tiếp

Gửigoacutei n trong [rcvbase

rcvbase+N-1]

gửi ACK(n) khocircng thứ tự đệm

(buffer) coacute thứ tự truyền (cũng

truyền caacutec goacutei đatilde đệm coacute thứ tự) dịch chuyển cửa sổ đến goacutei chưa nhận kế tiếp

goacutei n trong [rcvbase-Nrcvbase-1]

ACK(n)

ngược lại lờ đi

Nhận

Transport Layer 3-52

Hoạt động của lặp coacute lựa chọn

Transport Layer 3-53

Lặp coacute lựa chọntigravenh trạng khoacute giải quyếtViacute dụ Số thứ tự 0 1 2 3 Kiacutech thước cửa sổ = 3

becircn nhận khocircng thấy sự khaacutec nhau trong 2 tigravenh huống

chuyển khocircng chiacutenh xaacutec dữ liệu trugraveng lặp như dữ liệu mới trong (a)

Hỏi quan hệ giữa datildey số thứ tự vagrave kiacutech thước cửa sổ

Transport Layer 3-54

Chương 3 Nội dung trigravenh bagravey

31 Caacutec dịch vụ lớp Transport

32 Multiplexing vagrave demultiplexing

33 Vận chuyển khocircng kết nối UDP

34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy

35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối

36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn

37 Điều khiển tắc nghẽn TCP

Transport Layer 3-55

TCP Tổng quan RFCs 793 1122 1323 2018 2581

dữ liệu full duplex luồng dữ liệu đi 2 chiều

trong cugraveng một kết nối MSS maximum

segment size ndash kiacutech thước đoạn tối đa

hướng kết nối bắt tay (trao đổi caacutec

thocircng điệp điều khiển) trạng thaacutei becircn gửi becircn nhận trước khi trao đổi dữ liệu

điều khiển luồng becircn gửi sẽ khocircng lấn aacutet

becircn nhận

point-to-point một becircn gửi một becircn

nhận tin cậy dograveng byte coacute

thứ tự khocircng ldquoranh giới thocircng

điệprdquo kecircnh liecircn lạc

TCP điều khiển luồng vagrave tắc nghẽn thiết lập kiacutech thước cửa sổ

caacutec bộ đệm gửi amp nhận

socketdoor

T C Psend buffer

T C Preceive buffer

socketdoor

segm ent

applicationwrites data

applicationreads data

Transport Layer 3-56

TCP cấu truacutec đoạn

port nguồn port điacutech

32 bits

dữ liệu ứng dụng(độ dagravei thay đổi)

số thứ tự

số ACKcửa sổ nhận

con trỏ URGchecksum

FSRPAUheadlen

notused

Tugravey chọn (độ dagravei thay đổi)

URG dữ liệu khẩn cấp(thường khocircng dugraveng)

ACK ACK hợp lệ

PSH push data now(thường khocircng dugraveng)

RST SYN FINthiết lập kết nối

(caacutec lệnh thiết lậpchia nhỏ)

số byte becircn nhận sẵn sagraveng chấp nhận

đếm bởi số bytecủa dữ liệu

Internetchecksum

(giống UDP)

Transport Layer 3-57

Caacutec số thứ tự TCP vagrave ACKCaacutec số thứ tự

dograveng byte ldquođaacutenh sốrdquo byte đầu tiecircn trong dữ liệu của đoạn

caacutec ACK số thứ tự của byte

kế tiếp được chờ đợi từ phiacutea becircn kia

ACK tiacutech lũyHỏi lagravem thế nagraveo becircn

nhận quản lyacute caacutec đoạn khocircng thứ tự Trả lời TCP khocircng

đề cập tugravey thuộc người hiện thực

Host A Host B

Seq=42 ACK=79 data = lsquoCrsquo

Seq=79 ACK=43 data = lsquoCrsquo

Seq=43 ACK=80

UsernhậplsquoCrsquo

host ACKsnhận phản hồi

lsquoCrsquo

host ACKsbaacuteo nhận

lsquoCrsquo phản hồingược lại lsquoCrsquo

timetigravenh huống telnet đơn giản

Transport Layer 3-58

TCP Round Trip Time vagraveTimeout

Hỏi Lagravem thế nagraveo để thiết lập giaacute trị TCP timeout

dagravei hơn RTT khaacutec với RTT

quaacute ngắn timeout sớm truyền lại khocircng

cần thiết quaacute dagravei phản ứng

chậm đối với việc mất maacutet goacutei

Hỏi Lagravem thế nagraveo để thiết lập RTT

SampleRTT thời gian được đo từ khi truyền đoạn đến khi baacuteo nhận ACK lờ đi việc truyền lại

SampleRTT sẽ thay đổi muốn ước lượng RTT ldquomượt hơnrdquo tiacutenh trung bigravenh một số giaacute

trị đo được gần đoacute khocircng chỉ SampleRTT hiện tại

Transport Layer 3-59

TCP Round Trip Time vagrave Timeout

EstimatedRTT = (1- )EstimatedRTT + SampleRTT

giaacute trị đặc trưng = 0125

Transport Layer 3-60

Viacute dụ đaacutenh giaacute RTTRTT gaiacsumassedu to fantasiaeurecomfr

100

150

200

250

300

350

1 8 15 22 29 36 43 50 57 64 71 78 85 92 99 106

time (seconnds)

RTT

(mill

isec

onds

)

SampleRTT Estimated RTT

Transport Layer 3-61

TCP Round Trip Time vagrave Timeout

Thiết lập timeout EstimtedRTT cộng ldquohệ số dự trữ an toagravenrdquo

sự biến thiecircn lớn trong EstimatedRTT -gt hệ số dự trữ an toagraven lớn hơn ước lượng đầu tiecircn về sự biến thiecircn của SampleRTT từ EstimatedRTT

TimeoutInterval = EstimatedRTT + 4DevRTT

DevRTT = (1-)DevRTT + |SampleRTT-EstimatedRTT|

(tiecircu biểu = 025)

Sau đoacute thiết lập timeout interval

Transport Layer 3-62

TCP truyền dữ liệu tin cậy

TCP tạo dịch vụ rdt trecircn dịch vụ khocircng tin cậy IP

caacutec đoạn Pipelined caacutec ACK tiacutech lũy TCP dugraveng bộ định thigrave

truyền lại đơn

Truyền lại được kiacutech hoạt bởi caacutec sự kiện timeout caacutec ack trugraveng lặp

luacutec đầu khảo saacutet caacutec becircn gửi TCP đơn giản lờ đi caacutec ack trugraveng lặp lờ đi điều khiển luồng

điều khiển tắc nghẽn

Transport Layer 3-63

TCP caacutec sự kiệndữ liệu đatilde nhận từ ứng

dụng tạo đoạn với số thứ

tự của noacute số thứ tự lagrave số theo

byte dữ liệu đầu tiecircn khởi động bộ định thigrave

nếu chưa chạy khoảng thời gian hết

hạn TimeOutInterval

timeout gửi lại đoạn nagraveo gacircy

ra timeout khởi động lại bộ định

thigrave Ack đatilde nhận

cập nhật caacutei gigrave sẽ được ACK

khởi động bộ định thigrave nếu coacute caacutec đoạn cograven chờ

Transport Layer 3-64

TCP becircn gửi(đơn giản)

NextSeqNum = InitialSeqNum SendBase = InitialSeqNum

loop (forever) switch(event)

event data received from application above create TCP segment with sequence number NextSeqNum if (timer currently not running) start timer pass segment to IP NextSeqNum = NextSeqNum + length(data)

event timer timeout retransmit not-yet-acknowledged segment with smallest sequence number start timer

event ACK received with ACK field value of y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer

end of loop forever

Chuacute thiacutechbull SendBase-1 byte vừa được ACK tiacutech lũy Viacute dụbull SendBase-1 = 71y= 73 vigrave thế becircn nhận muốn 73+ y gt SendBase vigrave thế dữ liệu mới được chấp nhận

Transport Layer 3-65

TCP caacutec tigravenh huống truyền lại

Host A

Seq=100 20 bytes data

ACK=100

timetimeout sớm

Host B

Seq=92 8 bytes data

ACK=120

Seq=92 8 bytes data

Seq=

92

tim

eout

ACK=120

Host A

Seq=92 8 bytes data

ACK=100

loss

tim

eout

tigravenh huống mất ACK

Host B

X

Seq=92 8 bytes data

ACK=100

time

Seq=

92

tim

eout

SendBase= 100

SendBase= 120

SendBase= 120

Sendbase= 100

Transport Layer 3-66

TCP caacutec tigravenh huống truyền lại (tt)Host A

Seq=92 8 bytes data

ACK=100

loss

tim

eout

Cumulative ACK scenario

Host B

X

Seq=100 20 bytes data

ACK=120

time

SendBase= 120

Transport Layer 3-67

TCP sinh ra ACK [RFC 1122 RFC 2581]

Sự kiện tại becircn nhận

Đoạn đến với đuacuteng số thứ tự mong muốn Tất cả dữ liệu đếnđatilde được ACK

Đoạn đến với đuacuteng số thứ tự mong muốn Một đoạn khaacutec đangchờ ACK

Caacutec đoạn đến khocircng thứ tựlớn hơn số thứ tự đoạn mong muốnCoacute khoảng trống

Đoạn đếnlấp đầy từng phần hoặc toagraven bộkhoảng trống

TCP becircn nhận hagravenh động

ACK trễ Chờ đến 500mscho đoạn kế tiếp Nếu khocircng coacute đoạnkế tiếp gửi ACK

Gửi ngay một ACK tiacutech lũy chấp nhậncho cả caacutec đoạn theo thứ tự

Gửi ngay ACK trugraveng lặp chỉ thị số thứ tựđoạn của byte kế tiếp đang mong chờ

Gửi ngay ACK với điều kiện lagrave đoạnbắt đầu ngay điểm coacute khoảng trống

Transport Layer 3-68

Truyền lại nhanh

Chu kỳ Time-out thường tương đối dagravei độ trễ dagravei trước khi gửi

lại goacutei đatilde mất

Xaacutec nhận caacutec đoạn đatilde mất bằng caacutec ACK trugraveng lặp becircn gửi thường gửi

nhiều đoạn song song Nếu đoạn bị mất sẽ

xảy ra tigravenh trạng giống như nhiều ACK trugraveng nhau

Nếu becircn gửi nhận 3 ACK của cugraveng một dữ liệu noacute cho lagrave đoạn sau dữ liệu đatilde ACK bị mất Truyền lại nhanh gửi

lại đoạn trước khi bộ định thigrave hết hạn

Transport Layer 3-69

sự kiện ACK đatilde nhận với trường lagrave y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer else increment count of dup ACKs received for y if (count of dup ACKs received for y = 3) resend segment with sequence number y

Giải thuật truyền lại nhanh

một ACK trugraveng lặp cho đoạn đatilde được ACK

Truyền lại nhanh

Transport Layer 3-70

Chương 3 Nội dung trigravenh bagravey

31 Caacutec dịch vụ lớp Transport

32 Multiplexing vagrave demultiplexing

33 Vận chuyển khocircng kết nối UDP

34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy

35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối

36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn

37 Điều khiển tắc nghẽn TCP

Transport Layer 3-71

TCP điều khiển luồng

becircn nhận của kết nối TCP coacute một bộ đệm nhận

dịch vụ so trugraveng tốc độ so trugraveng tốc độ gửi với tốc độ nhận của ứng dụng

tiến trigravenh ứng dụng coacute thể chậm tại luacutec đọc bộ đệm

becircn gửi sẽ khocircng lagravem tragraven bộ đệm vigrave truyền quaacute nhiều vagrave

quaacute nhanh

điều khiển luồng

Transport Layer 3-72

TCP điều khiển luồng caacutech lagravem

(Giả sử becircn nhận TCP loại bỏ caacutec đoạn khocircng coacute thứ tự)

dự phograveng trong bộ đệm= RcvWindow

= RcvBuffer-[LastByteRcvd - LastByteRead]

Becircn nhận thocircng baacuteo khoảng dự trữ nhờ giaacute trị RcvWindow trong caacutec đoạn

Becircn gửi hạn chế dữ liệu khocircng được ACK vagraveo RcvWindow bảo đảm bộ đệm nhận

khocircng tragraven

Transport Layer 3-73

Chương 3 Nội dung trigravenh bagravey

31 Caacutec dịch vụ lớp Transport

32 Multiplexing vagrave demultiplexing

33 Vận chuyển khocircng kết nối UDP

34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy

35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối

36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn

37 Điều khiển tắc nghẽn TCP

Transport Layer 3-74

TCP quản lyacute kết nối

Chuacute yacute Becircn gửi vagrave becircn nhận TCP thiết lập ldquokết nốirdquo trước khi trao đổi dữ liệu

khởi tạo caacutec biến TCP caacutec số thứ tự đoạn thocircng tin caacutec bộ đệm điều

khiển luồng (như RcvWindow)

client người khởi xướng kết nối

Socket clientSocket = new Socket(hostnameport

number) server được tiếp xuacutec bởi

client Socket connectionSocket =

welcomeSocketaccept()

3 phương phaacutep bắt tay

Bước 1 client host gửi đoạnTCP SYN đến server xaacutec định số thứ tự khởi đầu khocircng phải dữ liệu

Bước 2 server host nhận SYN trả lời với đoạn SYNACK

server cấp phaacutet caacutec bộ đệm

xaacutec định số thứ tự khởi đầuBước 3 client nhận SYNACK trả

lời với đoạn ACK (coacute thể chứa dữ liệu)

Transport Layer 3-75

TCP quản lyacute kết nối (tt)

Đoacuteng một kết nối

client đoacuteng socket clientSocketclose()

Bước 1 client gửi đoạn điều khiển TCP FIN đến server

Bước 2 server nhận FIN trả lời với ACK Đoacuteng kết nối gửi FIN

client

FIN

server

ACK

ACK

FIN

đoacuteng

đoacuteng

đatilde đoacutengthời g

ian c

hờ

Transport Layer 3-76

TCP quản lyacute kết nối (tt)

Bước 3 client nhận FIN trả lời với ACK

Trong khoảng ldquothời gian chờrdquo ndash sẽ phản hồi với ACK để nhận caacutec FIN

Bước 4 server nhận ACK Kết nối đatilde đoacuteng

Chuacute yacute với một sửa đổi nhỏ coacute thể quản lyacute nhiều FIN đồng thời

client

FIN

server

ACK

ACK

FIN

đang đoacuteng

đang đoacuteng

đatilde đoacuteng

thời g

ian c

hờ

đatilde đoacuteng

Transport Layer 3-77

TCP quản lyacute kết nối (tt)

chu kỳ sống củaTCP client

chu kỳ sống củaTCP server

Transport Layer 3-78

Chương 3 Nội dung trigravenh bagravey

31 Caacutec dịch vụ lớp Transport

32 Multiplexing vagrave demultiplexing

33 Vận chuyển khocircng kết nối UDP

34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy

35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối

36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn

37 Điều khiển tắc nghẽn TCP

Transport Layer 3-79

Caacutec nguyecircn lyacute điều khiển tắc nghẽn

Tắc nghẽn ldquoquaacute nhiều nguồn gửi quaacute nhanh vagrave quaacute nhiều

dữ liệu đến mạngrdquo khaacutec với điều khiển luồng caacutec biểu hiện

caacutec goacutei bị mất (tragraven bộ đệm tại caacutec router) caacutec độ trễ quaacute dagravei (xếp hagraveng trong bộ đệm

của router) lagrave 1 trong 10 vấn đề nan giải nhất

Transport Layer 3-80

Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 1

2 gửi 2 nhận 1 router caacutec bộ

đệm khocircng giới hạn

khocircng coacute truyền lại

caacutec độ trễ lớn hơn khi tắc nghẽn

năng suất coacute thể đạt tối đa

unlimited shared output link buffers

Host Ain original data

Host B

out

Transport Layer 3-81

Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 2

1 router caacutec bộ đệm coacute giới hạn becircn gửi truyền lại caacutec goacutei đatilde mất

chia sẻ vocirc hạncaacutec bộ đệm ouput

Host A in dữ liệu gốc

Host B

out

in dữ liệu gốc cugraveng với dữ liệu truyền lại

Transport Layer 3-82

Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 2 luocircn luocircn

truyền lại ldquohoagraven toagravenrdquo chỉ khi mất maacutet

truyền lại vigrave trễ (khocircng mất) lagravem cho lớn hơn với cugraveng

in

out

=

in

out

gt

in

out

ldquocaacutec chi phiacuterdquo của tắc nghẽn nhiều việc (truyền lại) caacutec truyền lại khocircng cần thiết liecircn kết nhiều bản sao của

goacutei

R2

R2in

ou

t

b

R2

R2in

ou

t

a

R2

R2in

ou

t

c

R4

R3

Transport Layer 3-83

Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 3 4 người gửi caacutec đường qua nhiều hop timeouttruyền lại

in

Hỏi điều gigrave xảy ra nếu vagrave tăng lecircn

in

chia sẻ vocirc hạncaacutec bộ đệm ouput

Host Ain dữ liệu gốc

Host B

out

in dữ liệu gốc cugraveng với dữ liệu truyền lại

Transport Layer 3-84

Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 3

ldquochi phiacuterdquo khaacutec của tắc nghẽn khi caacutec goacutei bị bỏ bất kỳ ldquokhả năng truyền

upstream dugraveng cho goacutei đoacute sẽ bị latildeng phiacuterdquo

Host A

Host B

o

u

t

Transport Layer 3-85

Caacutec caacutech tiếp cận đối với điều khiển tắc nghẽn

điều khiển tắc nghẽn end-end

khocircng coacute phản hồi rotilde ragraveng từ mạng

tắc nghẽn được suy ra từ việc quan saacutet caacutec hệ thống đầu cuối coacute mất maacutet trễ

tiếp cận được quản lyacute bởi TCP

điều khiển tắc nghẽn coacute sự hỗ trợ của mạng

caacutec router cung cấp phản hồi về caacutec hệ thống đầu cuối 1 bit duy nhất chỉ thị

tắc nghẽn (SNA DECbit TCPIP ECN ATM)

tốc độ sẽ gửi được xaacutec định rotilde ragraveng

2 caacutech

Transport Layer 3-86

Viacute dụ điều khiển tắc nghẽn ATM ABR

ABR tốc độ bit sẵn sagraveng

ldquodịch vụ mềm dẻordquo nếu đường gửi ldquochưa

hếtrdquo becircn gửi sẽ dugraveng

băng thocircng sẵn sagraveng nếu đường gửi tắc

nghẽn becircn gửi điều tiết với

tốc độ tối thiểu

RM (resource management)

gửi bởi becircn gửi rải raacutec với caacutec ocirc dữ liệu

caacutec bit trong ocirc thiết lập bởi caacutec switch bit NI khocircng tăng tốc độ

(tắc nghẽn nhẹ) bit CI tắc nghẽn rotilde rệt

Caacutec ocirc RM được trả về becircn gửi từ becircn nhận với nguyecircn vẹn caacutec bit

Transport Layer 3-87

Viacute dụ điều khiển tắc nghẽn ATM ABR

trường 2-byte ER trong ocirc RM switch đatilde tắc nghẽn coacute thể coacute giaacute trị ER thấp hơn trong ocirc tốc độ gửi do đoacute coacute thể được hỗ trợ tối đa trecircn đường

EFCI bit trong caacutec ocirc dữ liệu được cagravei giaacute trị 1 trong switch đatilde tắc nghẽn nếu ocirc dữ liệu đứng trước ocirc RM coacute cagravei EFCI becircn gửi sẽ cagravei

bit CI trong ocirc RM trả về

Transport Layer 3-88

Chương 3 Nội dung trigravenh bagravey

31 Caacutec dịch vụ lớp Transport

32 Multiplexing vagrave demultiplexing

33 Vận chuyển khocircng kết nối UDP

34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy

35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối

36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn

37 Điều khiển tắc nghẽn TCP

Transport Layer 3-89

TCP điều khiển tắc nghẽn additive tăng lecircn multiplicative giảm xuống

8 Kbytes

16 Kbytes

24 Kbytes

time

congestionwindow

Caacutech tiếp cận tăng tốc độ truyền (kiacutech thước cửa sổ) tigravem khả năng băng thocircng coacute thể cho đến khi coacute mất maacutet xảy ra additive tăng lecircn tăng CongWin bởi 1 MSS

mỗi RTT cho đến khi coacute mất maacutet xảy ra multiplicative giảm xuống bỏ CongWin trong

nửa giai đoạn sau khi mất maacutet

timekiacutech

thư

ớc

cửa

sổ

tắc

nghẽ

n

Tigravem kiếm băng thocircng

Transport Layer 3-90

TCP điều khiển tắc nghẽn chi tiết

becircn gửi hạn chế việc truyền LastByteSent-LastByteAcked

CongWin Cocircng thức

CongWin thay đổi chức năng lagrave nhận biết tắc nghẽn trecircn mạng

Lagravem thế nagraveo becircn gửi nhận biết tắc nghẽn

mất maacutet xảy ra = timeout hoặc 3 ack trugraveng lặp

becircn gửi giảm tốc độ (CongWin) sau khi mất maacutet xảy ra

3 cơ chế AIMD khởi động chậm thận trọng sau khi coacute

caacutec sự kiện timeout

tốc độ = CongWin

RTT Bytess

Transport Layer 3-91

TCP khởi động chậm

Khi kết nối bắt đầu CongWin = 1 MSS Viacute dụ MSS = 500 bytes

amp RTT = 200 ms tốc độ khởi tạo = 20

kbps

băng thocircng sẵn sagraveng coacute thể gtgt MSSRTT mong muốn nhanh

choacuteng tăng tốc lecircn tốc độ coacute thể đaacutep ứng

Khi kết nối bắt đầu tăng tốc lecircn rất nhanh cho đến khi sự cố mất maacutet xảy ra đầu tiecircn

Transport Layer 3-92

TCP khởi động chậm (tt)

Khi kết nối bắt đầu tăng tốc lecircn rất nhanh cho đến khi sự cố mất maacutet xảy ra đầu tiecircn nhacircn đocirci CongWin mỗi

RTT hoagraven thagravenh nhờ tăng CongWin ứng với mỗi ACK đatilde nhận

Tổng kết tốc độ khởi đầu lagrave chậm nhưng sau đoacute tăng tốc rất nhanh

Host A

1 đoạn

RTT

Host B

thời gian

2 đoạn

4 đoạn

Transport Layer 3-93

Tinh chếHỏi Khi nagraveo việc tăng

tốc trở thagravenh tuyến tiacutenh

Trả lời Khi CongWin đạt đến 12 giaacute trị của noacute trước khi timeout

Hiện thực Ngưỡng thay đổi Tại thời điểm coacute sự cố

mất maacutet ngưỡng được cagravei giaacute trị bằng frac12 của CongWin ngay trước đoacute

Transport Layer 3-94

Tinh chế nhận biết mất maacutet

Sau 3 ACK trugraveng lặp CongWin sẽ giảm 12 kiacutech thước cửa sổ

tăng tuyến tiacutenh nhưng sau sự cố

timeout CongWin thay giaacute trị

bằng 1 MSS kiacutech thước cửa sổ

tăng cấp lũy thừa khi đến một ngưỡng

thigrave tăng tuyến tiacutenh

3 ACK trugraveng nhau chỉ ra khả năng truyền của mạng timeout chỉ thị ldquonhiều cảnh baacuteordquo về tigravenh huống tắc nghẽn

Nguyecircn lyacute

Transport Layer 3-95

Tổng kết TCP điều khiển tắc nghẽn

Khi CongWin dưới Threshold becircn gửi đang trong giai đoạn khởi động chậm kiacutech thước cửa sổ tăng nhanh theo cấp lũy thừa

Khi CongWin trecircn Threshold becircn gửi đang trong giai đoạn traacutenh tắc nghẽn kiacutech thước cửa sổ tăng nhanh theo cấp tuyến tiacutenh

Khi coacute 3 ACK trugraveng lặp xảy ra Threshold = CongWin2 vagrave CongWin = Threshold

Khi timeout xảy ra Threshold = CongWin2 vagrave CongWin = 1 MSS

Transport Layer 3-96

TCP điều khiển tắc nghẽn becircn gửi

Trạng thaacutei Sự kiện TCP becircn gửi hagravenh động Diễn giải

Slow Start (SS)-Khởi động chậm

ACK baacuteo nhận cho dữ liệu chưa ACK trước đoacute

CongWin = CongWin + MSS If (CongWin gt Threshold) cagravei đặt trạng thaacutei ldquoTraacutenh tắc nghẽnrdquo

Hậu quả lagravem tăng gấp đocirci CongWin mỗi RTT

CongestionAvoidance (CA) ndashTraacutenh tắc nghẽn

ACK baacuteo nhận cho dữ liệu chưa ACK trước đoacute

CongWin = CongWin+MSS (MSSCongWin)

Additive tăng lecircn lagravem tăng CongWin lecircn 1 MSS mỗi RTT

SS hoặc CA Sự cố mất maacutet xảy ra khi thấy coacute 3 ACK trugraveng lặp

Threshold = CongWin2 CongWin = Thresholdcagravei đặt trạng thaacutei ldquoTraacutenh tắc nghẽnrdquo

Khocirci phục nhanh hiện thực giảm xuống multiplicative CongWin sẽ khocircng giảm xuống dưới 1 MSS

SS hoặc CA Timeout Threshold = CongWin2 CongWin = 1 MSScagravei đặt trạng thaacutei ldquoKhởi động chậmrdquo

Vagraveo chế độ ldquoKhởi động chậmrdquo

SS hoặc CA ACK trugraveng lặp

Đếm ACK tăng lecircn cho đoạn vừa được ACK

CongWin vagrave Threshold khocircng thay đổi

Transport Layer 3-97

TCP throughput

Throughout trung bigravenh của TCP biểu diễn qua kiacutech thước của sổ vagrave RTT Bỏ qua trạng thaacutei ldquoKhởi động chậmrdquo

Cho W lagrave kiacutech thước cửa sổ khi coacute mất maacutet xảy ra

Khi kiacutech thước cửa sổ = W lưu lượng = WRTT

Chỉ ngay sau khi mất maacutet cửa sổ giảm xuống = W2 lưu lượng = W2RTT

throughout trung bigravenh 075 WRTT

Transport Layer 3-98

TCP tương lai

Viacute dụ caacutec đoạn dagravei 1500 byte RTT 100ms lưu lượng 10 Gbps

Kiacutech thước cửa sổ yecircu cầu W = 83333 đoạn trecircn đường truyền

Lưu lượng trong caacutec trường hợp mất maacutet

L = 210-10

Phiecircn bản mới của TCP dagravenh cho nhu cầu tốc độ cao

LRTT

MSS221

Transport Layer 3-99

Mục tiecircu nếu K phiecircn lagravem việc TCP chia sẻ kết nối cổ chai của băng thocircng lagrave R mỗi phiecircn coacute tốc độ trung bigravenh lagrave RK

TCP kết nối 1

router cổ chaikhả năng R

TCP kết nối 2

TCP tiacutenh cocircng bằng

Transport Layer 3-100

Tại sao phải TCP cocircng bằng

2 phiecircn lagravem việc cạnh tranh nhau Additive tăng lưu lượng tăng multiplicative giảm lưu lượng tương xứng

R

R

chia sẻ băng thocircng bằng nhau

Connection 1 throughputConnect

ion 2

th

roughput

traacutenh tắc nghẽn additive tăng lecircnmất maacutet giảm cửa sổ bằng 12

traacutenh tắc nghẽn additive tăng lecircnmất maacutet giảm cửa sổ bằng 12

Transport Layer 3-101

TCP tiacutenh cocircng bằng (tt)

Tiacutenh cocircng bằng amp UDP nhiều ứng dụng

thường khocircng dugraveng TCP khocircng muốn tốc độ bị

điều tiết do điều khiển tắc nghẽn

Thay bằng dugraveng UDP truyền audiovideo với

tốc độ ổn định chịu được mất maacutet

Nghiecircn cứu giao thức thacircn thiện với TCP

Tiacutenh cocircng bằng amp caacutec kết nối TCP song song

khocircng coacute gigrave ngăn cản việc ứng dụng mở caacutec kết nối song song giữa 2 host

Trigravenh duyệt Web lagravem giống như thế

Viacute dụ tốc độ R hỗ trợ 9 kết nối ứng dụng mới yecircu cầu 1

TCP coacute tốc độ R10 ứng dụng mới yecircu cầu 11

TCP coacute tốc độ R2

Transport Layer 3-102

Mocirc higravenh trễ

Hỏi Mất bao lacircu để nhận 1 đối tượng từ Web server sau khi gửi yecircu cầu

Bỏ qua tắc nghẽn trễ bị ảnh hưởng bởi

thiết lập kết nối TCP trễ truyền dữ liệu khởi động chậm

Notation caacutec giả định Giả sử một kết nối giữa

client vagrave server coacute tốc độ R

S MSS (bits) O kiacutech thước đối tượng

(bits) khocircng truyền lại (khocircng

mất maacutet khocircng hỏng)

Kiacutech thước cửa sổ Giả định 1 cửa sổ tắc

nghẽn cố định coacute W đoạn Sau đoacute cửa sổ thay đổi

mocirc higravenh khởi động chậm

Transport Layer 3-103

Cửa sổ tắc nghẽn cố định (1)

Trường hợp đầu tiecircnWSR gt RTT + SR cho

đoạn đầu tiecircn trong cửa sổ trả về trước khi cửa sổ dữ liệu gửi ACK

trễ = 2RTT + OR

Transport Layer 3-104

Cửa sổ tắc nghẽn cố định (2)

Trường hợp thứ hai WSR lt RTT + SR sent

chờ cho ACK sau khi gửi dữ liệu

trễ = 2RTT + OR+ (K-1)[SR + RTT - WSR]

Transport Layer 3-105

TCP Mocirc higravenh trễ Khởi động chậm (1)

Bacircy giờ giả sử kiacutech thước cửa sổ tăng lecircn tugravey theo quaacute trigravenh khởi động chậm

Độ trễ của một đối tượng sẽ lagrave

R

S

R

SRTTP

R

ORTTLatency P )12(2

trong đoacute P lagrave số lần TCP rảnh ở tại server

1min KQP

- trong đoacute Q lagrave số lần server rảnh nếu đối tượng đatilde khởi tạo kiacutech thước

- vagrave K lagrave số lượng cửa sổ bao trugravem đối tượng

Transport Layer 3-106

TCP Mocirc higravenh trễ Khởi động chậm (2)

RTT

initia te TCPconnection

requestobject

first w indow= S R

second w indow= 2S R

third w indow= 4S R

fourth w indow= 8S R

com pletetransm issionobject

delivered

tim e atc lient

tim e atserver

Viacute dụbull OS = 15 đoạnbull K = 4 cửa sổbull Q = 2bull P = minK-1Q = 2

Server rảnh P=2 lần

Caacutec thagravenh phần trễbull 2 RTT dagravenh cho thiết lập kết nối vagrave yecircu cầubull OR để truyền đối tượngbullthời gian server rảnh bởi vigrave khởi động chậm

Server rảnh P = minK-1Q lần

Transport Layer 3-107

TCP Mocirc higravenh trễ(3)

R

S

R

SRTTPRTT

R

O

R

SRTT

R

SRTT

R

O

idleTimeRTTR

O

P

kP

k

P

pp

)12(][2

]2[2

2delay

1

1

1

th window after the timeidle 2 1 kR

SRTT

R

S k

ementacknowledg receivesserver until

segment send tostartsserver when from time RTTR

S

window kth the transmit totime2 1

R

Sk

RTT

initia te TCPconnection

requestobject

first w indow= S R

second w indow= 2S R

third w indow= 4S R

fourth w indow= 8S R

com pletetransm issionobject

delivered

tim e atc lient

tim e atserver

Transport Layer 3-108

TCP Mocirc higravenh trễ (4)

)1(log

)1(logmin

12min

222min

222min

2

2

110

110

S

OS

Okk

S

Ok

SOk

OSSSkK

k

k

k

caacutech tiacutenh toaacuten Q tương tự (xem HW)

K = số lượng cửa sổ bao trugravem đối tượngLagravem thế nagraveo tiacutenh được K

Transport Layer 3-109

HTTP Mocirc higravenh Giả sử trang Web chứa

1 trang HTML (kiacutech thước O bits) M higravenh ảnh (mỗi caacutei kiacutech thướcO bits)

HTTP khocircng bền vững M+1 TCP kết nối Thời gian đaacutep ứng = (M+1)OR + (M+1)2RTT + tổng số thời

gian rảnh HTTP bền vững

2 RTT để yecircu cầu vagrave nhận file HTML 1 RTT để yecircu cầu vagrave nhận M higravenh ảnh Thời gian đaacutep ứng = (M+1)OR + 3RTT + tổng số thời gian

rảnh HTTP khocircng bền vững với X kết nối song song

Giả sử MX lagrave số nguyecircn 1 TCP kết nối cho file MX thiết lập caacutec kết nối song song cho caacutec higravenh ảnh Thời gian đaacutep ứng = (M+1)OR + (MX + 1)2RTT + tổng số

thời gian rảnh

Transport Layer 3-110

02468

101214161820

28Kbps

100Kbps

1Mbps

10Mbps

non-persistent

persistent

parallel non-persistent

HTTP thời gian đaacutep ứng (giacircy)RTT = 100 msec O = 5 Kbytes M=10 vagrave X=5

Với băng thocircng thấp thời gian kết nối amp đaacutep ứng trội hơn thời gian truyền

Caacutec kết nối bền vững chỉ cho sự cải thiện khocircng đaacuteng kể trecircn caacutec kết nối song song

Transport Layer 3-111

0

10

20

30

40

50

60

70

28Kbps

100Kbps

1Mbps

10Mbps

non-persistent

persistent

parallel non-persistent

HTTP thời gian đaacutep ứng (giacircy)

RTT =1 sec O = 5 Kbytes M=10 and X=5

Với RTT lớn hơn thời gian đaacutep ứng trội hơn thời gian trễ chờ thiết lập kết nốiTCP amp khởi động chậm Caacutec kết nối bền vững bacircy giờ cho thấy cải thiện rotilde rệt đặc biệtvới caacutec mạng băng thocircng cao

Transport Layer 3-112

Chương 3 Tổng kết caacutec nguyecircn lyacute của caacutec

dịch vụ lớp transport multiplexing

demultiplexing truyền dữ liệu tin cậy điều khiển luồng điều khiển tắc nghẽn

khởi tạo vagrave hiện thực trong Internet UDP TCP

Tiếp theo nghiecircn cứu xong

caacutec vấn đề ldquongoagravei biecircnrdquo (caacutec lớp application transport)

chuẩn bị vagraveo phần ldquolotildeirdquo của mạng

  • Slide 1
  • Chương 3 Lớp Transport
  • Chương 3 Nội dung trigravenh bagravey
  • Caacutec dịch vụ vagrave giao thức Transport
  • Lớp Transport với lớp network
  • Caacutec giao thức lớp transport trecircn Internet
  • Slide 7
  • Multiplexingdemultiplexing
  • Demultiplexing lagravem việc như thế nagraveo
  • Demultiplexing khocircng kết nối
  • Demultiplexing khocircng kết nối (tiếp)
  • Demultiplexing hướng kết nối
  • Demultiplexing hướng kết nối (tiếp)
  • Demultiplexing hướng kết nối Threaded Web Server
  • Slide 15
  • UDP User Datagram Protocol [RFC 768]
  • UDP (tt)
  • UDP checksum
  • Viacute dụ Checksum
  • Slide 20
  • Caacutec nguyecircn lyacute truyền dữ liệu tin cậy
  • Slide 22
  • Slide 23
  • Truyền dữ liệu tin cậy
  • Slide 25
  • Rdt10 truyền dữ liệu tin cậy trecircn 1 kecircnh truyền tin cậy
  • Rdt20 kecircnh với caacutec lỗi
  • rdt20 đặc tả FSM
  • rdt20 hoạt động khi khocircng lỗi
  • rdt20 hoạt động khi coacute lỗi
  • rdt20 coacute lỗ hổng nghiecircm trọng
  • rdt21 người gửi quản lyacute caacutec ACKNAK bị hỏng
  • Slide 33
  • rdt21 thảo luận
  • rdt22 một giao thức khocircng cần NAK
  • rdt22 gửi nhận caacutec mảnh
  • rdt30 caacutec kecircnh với lỗi vagrave mất maacutet
  • rdt30 gửi
  • hagravenh động của rdt30
  • Slide 40
  • Hiệu suất của rdt30
  • rdt30 hoạt động dừng-vagrave-chờ
  • Caacutec giao thức Pipelined
  • Pipelining độ khả dụng tăng
  • Go-Back-N
  • GBN becircn gửi mở rộng FSM
  • GBN becircn nhận mở rộng FSM
  • GBN hoạt động
  • Lặp coacute lựa chọn
  • Lặp coacute lựa chọn caacutec cửa sổ gửi nhận
  • Slide 51
  • Hoạt động của lặp coacute lựa chọn
  • Lặp coacute lựa chọn tigravenh trạng khoacute giải quyết
  • Slide 54
  • TCP Tổng quan RFCs 793 1122 1323 2018 2581
  • TCP cấu truacutec đoạn
  • Caacutec số thứ tự TCP vagrave ACK
  • TCP Round Trip Time vagraveTimeout
  • TCP Round Trip Time vagrave Timeout
  • Viacute dụ đaacutenh giaacute RTT
  • Slide 61
  • TCP truyền dữ liệu tin cậy
  • TCP caacutec sự kiện
  • TCP becircn gửi (đơn giản)
  • TCP caacutec tigravenh huống truyền lại
  • TCP caacutec tigravenh huống truyền lại (tt)
  • TCP sinh ra ACK [RFC 1122 RFC 2581]
  • Truyền lại nhanh
  • Giải thuật truyền lại nhanh
  • Slide 70
  • TCP điều khiển luồng
  • TCP điều khiển luồng caacutech lagravem
  • Slide 73
  • TCP quản lyacute kết nối
  • TCP quản lyacute kết nối (tt)
  • Slide 76
  • Slide 77
  • Slide 78
  • Caacutec nguyecircn lyacute điều khiển tắc nghẽn
  • Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 1
  • Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 2
  • Slide 82
  • Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 3
  • Slide 84
  • Caacutec caacutech tiếp cận đối với điều khiển tắc nghẽn
  • Viacute dụ điều khiển tắc nghẽn ATM ABR
  • Slide 87
  • Slide 88
  • TCP điều khiển tắc nghẽn additive tăng lecircn multiplicative giảm xuống
  • TCP điều khiển tắc nghẽn chi tiết
  • TCP khởi động chậm
  • TCP khởi động chậm (tt)
  • Tinh chế
  • Tinh chế nhận biết mất maacutet
  • Tổng kết TCP điều khiển tắc nghẽn
  • TCP điều khiển tắc nghẽn becircn gửi
  • TCP throughput
  • TCP tương lai
  • TCP tiacutenh cocircng bằng
  • Tại sao phải TCP cocircng bằng
  • TCP tiacutenh cocircng bằng (tt)
  • Mocirc higravenh trễ
  • Cửa sổ tắc nghẽn cố định (1)
  • Cửa sổ tắc nghẽn cố định (2)
  • TCP Mocirc higravenh trễ Khởi động chậm (1)
  • TCP Mocirc higravenh trễ Khởi động chậm (2)
  • TCP Mocirc higravenh trễ(3)
  • TCP Mocirc higravenh trễ (4)
  • HTTP Mocirc higravenh
  • Slide 110
  • Slide 111
  • Chương 3 Tổng kết

Transport Layer 3-15

Chương 3 Nội dung trigravenh bagravey

31 Caacutec dịch vụ lớp Transport

32 Multiplexing vagrave demultiplexing

33 Vận chuyển khocircng kết nối UDP

34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy

35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối

36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn

37 Điều khiển tắc nghẽn TCP

Transport Layer 3-16

UDP User Datagram Protocol [RFC 768]

giao thức Internet transport ldquođơn giản hoacuteardquo

dịch vụ ldquobest effortrdquo caacutec đoạn UDP coacute thể mất maacutet vận chuyển khocircng thứ

tự đến ứng dụng connectionless (khocircng

kết nối) khocircng bắt tay giữa

người nhận vagrave người gửi UDP

mỗi đoạn UDP được quản lyacute độc lập

Coacute UDP để lagravem gigrave khocircng thiết lập kết nối

(giuacutep coacute thể thecircm delay) đơn giản khocircng trạng

thaacutei kết nối tại nơi gửi nơi nhận

header của đoạn nhỏ khocircng điều khiển tắc

nghẽn UDP coacute thể gửi nhanh nhất theo mong muốn

Transport Layer 3-17

UDP (tt)

thường dugraveng cho caacutec ứng dụng streaming multimedia chịu mất maacutet cảm nhận tốc độ

ngoagravei ra UDP dugraveng DNS SNMP

truyền tin cậy trecircn UDP thecircm khả năng nagravey tại lớp application sửa lỗi

source port dest port

32 bits

dữ liệu ứng dụng

(thocircng điệp)

dạng thức đoạn UDP

length checksumĐộ dagravei

đoạn UDPbao gồm cả

header

Transport Layer 3-18

UDP checksum

Người gửi đối xử caacutec nội dung

đoạn như một chuỗi caacutec số nguyecircn 16-bit

checksum bổ sung(tổng bugrave 1) của caacutec nội dung đoạn

đặt giaacute trị checksum vagraveo trường UDP checksum

Người nhận tiacutenh toaacuten checksum của

đoạn đatilde nhận kiểm tra giaacute trị trecircn coacute bằng

với giaacute trị trong trường checksum NO ndash coacute lỗi xảy ra YES ndash khocircng coacute lỗi Nhưng coacute thể cograven lỗi

khaacutec nữa Xem tiếp phần sau hellip

Mục tiecircu kiểm tra caacutec ldquolỗirdquo (caacutec bit cờ đatilde bật lecircn) trong caacutec đoạn đatilde truyền

Transport Layer 3-19

Viacute dụ Checksum Lưu yacute

Khi cộng caacutec số một bit nhớ ở phiacutea cao nhất coacute thể sẽ phải thecircm vagraveo kết quả

Viacute dụ cộng hai số nguyecircn 16-bit

1 1 1 1 0 0 1 1 0 0 1 1 0 0 1 1 01 1 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1

1 1 0 1 1 1 0 1 1 1 0 1 1 1 0 1 1

1 1 0 1 1 1 0 1 1 1 0 1 1 1 1 0 01 0 1 0 0 0 1 0 0 0 1 0 0 0 0 1 1

bit dư

tổngchecksum

Transport Layer 3-20

Chương 3 Nội dung trigravenh bagravey

31 Caacutec dịch vụ lớp Transport

32 Multiplexing vagrave demultiplexing

33 Vận chuyển khocircng kết nối UDP

34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy

35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối

36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn

37 Điều khiển tắc nghẽn TCP

Transport Layer 3-21

Caacutec nguyecircn lyacute truyền dữ liệu tin cậy quan trọng trong caacutec lớp application transport link lagrave danh saacutech 10 vấn đề quan trọng nhất của mạng

caacutec đặc thugrave của kecircnh truyền khocircng tin cậy sẽ xaacutec định sự phức tạp của giao thức truyền dữ liệu data transfer protocol (rdt)

Transport Layer 3-22

Caacutec nguyecircn lyacute truyền dữ liệu tin cậy quan trọng trong caacutec lớp application transport link lagrave danh saacutech 10 vấn đề quan trọng nhất của mạng

caacutec đặc thugrave của kecircnh truyền khocircng tin cậy sẽ xaacutec định sự phức tạp của giao thức truyền dữ liệu data transfer protocol (rdt)

Transport Layer 3-23

Caacutec nguyecircn lyacute truyền dữ liệu tin cậy quan trọng trong caacutec lớp application transport link lagrave danh saacutech 10 vấn đề quan trọng nhất của mạng

caacutec đặc thugrave của kecircnh truyền khocircng tin cậy sẽ xaacutec định sự phức tạp của giao thức truyền dữ liệu data transfer protocol (rdt)

Transport Layer 3-24

Truyền dữ liệu tin cậy

sendside

receiveside

rdt_send() được gọi bởi lớp app Chuyển dữ liệu cần truyền

đến lớp cao hơn becircn nhận

udt_send() được gọi bởi rdt để truyền caacutec goacutei trecircn kecircnh khocircng tin cậy đến nơi

nhận

rdt_rcv() được gọi khi goacutei đến kecircnh becircn nhận

deliver_data() được gọi bởi rdt để truyền dữ liệu

đến lớp cao hơn

Transport Layer 3-25

Truyền dữ liệu tin cậy

Sẽ chỉ xem xeacutet truyền dữ liệu theo 1 hướng duy

nhất nhưng điều khiển luồng thocircng tin sẽ theo cả 2

chiều

dugraveng maacutey trạng thaacutei hữu hạn (finite state machines-FSM) để xaacutec định người gửi người nhận

trthaacutei1

trthaacutei2

sự kiện gacircy ra trạng thaacutei truyềncaacutec hagravenh động xảy ra khi truyền

trạng thaacutei khi ở ldquotrạng thaacuteirdquo nagravey thigrave

trạng thaacutei kế tiếp duy nhất được xaacutec định bởi sự kiện kế

tiếp

sự kiệncaacutec hagravenh động

Transport Layer 3-26

Rdt10 truyền dữ liệu tin cậy trecircn 1 kecircnh truyền tin cậy

kecircnh ưu tiecircn tin cậy hoagraven toagraven khocircng coacute caacutec lỗi khocircng mất maacutet caacutec goacutei

caacutec FSM phacircn biệt cho người gửi người nhận người gửi gửi dữ liệu vagraveo kecircnh ưu tiecircn người nhận nhận dữ liệu từ kecircnh ưu tiecircn

chờ gọi từ lớp trecircn packet = make_pkt(data)

udt_send(packet)

rdt_send(data)

extract (packetdata)deliver_data(data)

chờ gọi từ lớp dưới

rdt_rcv(packet)

người gửi người nhận

Transport Layer 3-27

Rdt20 kecircnh với caacutec lỗi

kecircnh ưu tiecircn coacute thể bật lecircn một số bit trong goacutei checksum để kiểm tra caacutec lỗi

Hỏi lagravem sao khocirci phục caacutec lỗi acknowledgements (ACKs) becircn nhận rotilde ragraveng thocircng

baacuteo cho becircn gửi rằng quaacute trigravenh nhận goacutei tốt negative acknowledgements (NAKs) becircn nhận rotilde ragraveng

thocircng baacuteo cho becircn gửi rằng quaacute trigravenh nhận goacutei coacute lỗi người gửi gửi lại goacutei nagraveo được xaacutec nhận lagrave NAK

caacutec cơ chế mới trong rdt20 (sau rdt10) kiểm tra lỗi nhận phản hồi caacutec thocircng điệp điều khiển (ACKNAK)

becircn nhận becircn gửi

Transport Layer 3-28

rdt20 đặc tả FSM

chờ gọi từ lớp trecircn

snkpkt = make_pkt(data checksum)udt_send(sndpkt)

extract(rcvpktdata)deliver_data(data)udt_send(ACK)

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)

rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp isNAK(rcvpkt)

udt_send(NAK)

rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)

chờ ACK hoặc NAK

chờ gọi từ lớp dưới

người gửi

người nhậnrdt_send(data)

Transport Layer 3-29

rdt20 hoạt động khi khocircng lỗi

chờ gọi từ lớp dưới

snkpkt = make_pkt(data checksum)udt_send(sndpkt)

extract(rcvpktdata)deliver_data(data)udt_send(ACK)

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)

rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp isNAK(rcvpkt)

udt_send(NAK)

rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)

chờ ACK hoặc NAK

chờ gọi từ lớp dưới

rdt_send(data)

Transport Layer 3-30

rdt20 hoạt động khi coacute lỗi

chờ gọi từ lớp dưới

snkpkt = make_pkt(data checksum)udt_send(sndpkt)

extract(rcvpktdata)deliver_data(data)udt_send(ACK)

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)

rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp isNAK(rcvpkt)

udt_send(NAK)

rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)

chờ ACK hoặc NAK

chờ gọi từ lớp dưới

rdt_send(data)

Transport Layer 3-31

rdt20 coacute lỗ hổng nghiecircm trọngĐiều gigrave xảy ra nếu

ACKNAK bị hỏng người gửi khocircng biết điều

gigrave đatilde xảy ra tại becircn nhận

khocircng thể đơn phương truyền lại khả năng trugraveng lặp

Quản lyacute trugraveng lặp người gửi truyền lại goacutei

hiện tại nếu ACKNAK bị hỏng

người gửi thecircm số thứ tự vagraveo mỗi goacutei

người nhận hủy (khocircng nhận) goacutei trugraveng lặp

Người gửi gửi 1 goacutei sau đoacute dừng lại chờ phản hồitừ người nhận

dừng vagrave chờ

Transport Layer 3-32

rdt21 người gửi quản lyacute caacutec ACKNAK bị hỏng

chờ gọi 0 từ lớp trecircn

sndpkt = make_pkt(0 data checksum)udt_send(sndpkt)

rdt_send(data)

chờ ACK hoặc NAK

0 udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) ||isNAK(rcvpkt) )

sndpkt = make_pkt(1 data checksum)udt_send(sndpkt)

rdt_send(data)

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) ||isNAK(rcvpkt) )

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt)

chờ gọi 1 từ lớp trecircn

chờ ACK hoặc NAK

1

Transport Layer 3-33

rdt21 người gửi quản lyacute caacutec ACKNAK bị hỏng

chờ 0 từ dưới

sndpkt = make_pkt(NAK chksum)udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp not corrupt(rcvpkt) ampamp has_seq0(rcvpkt)

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp has_seq1(rcvpkt)

extract(rcvpktdata)deliver_data(data)sndpkt = make_pkt(ACK chksum)udt_send(sndpkt)

chờ 1 từ dưới

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp has_seq0(rcvpkt)

extract(rcvpktdata)deliver_data(data)sndpkt = make_pkt(ACK chksum)udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp (corrupt(rcvpkt)

sndpkt = make_pkt(ACK chksum)udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp not corrupt(rcvpkt) ampamp has_seq1(rcvpkt)

rdt_rcv(rcvpkt) ampamp (corrupt(rcvpkt)

sndpkt = make_pkt(ACK chksum)udt_send(sndpkt)

sndpkt = make_pkt(NAK chksum)udt_send(sndpkt)

Transport Layer 3-34

rdt21 thảo luận

người gửi số thứ tự thecircm vagraveo

goacutei chỉ cần hai số thứ tự

(01) lagrave đủ Tại sao phải kiểm tra nếu việc

nhận ACKNAK bị hỏng

số trạng thaacutei tăng lecircn 2 lần trạng thaacutei phải ldquonhớrdquo

goacutei ldquohiện tạirdquo coacute số thứ tự lagrave 0 hay 1

người nhận phải kiểm tra coacute

nhận trugraveng goacutei khocircng trạng thaacutei chỉ rotilde coacute

hay khocircng mong chờ số thứ tự 0 hoặc 1

chuacute yacute người nhận khocircng biết ACKNAK vừa rồi của noacute coacute được người gửi nhận tốt hay khocircng

Transport Layer 3-35

rdt22 một giao thức khocircng cần NAK

chức năng giống như rdt21 chỉ dugraveng caacutec ACK thay cho NAK người nhận gửi ACK cho goacutei vừa

rồi đatilde nhận tốt người nhận phải rotilde ragraveng chegraven số thứ tự của goacutei vừa ACK

trugraveng ACK tại người gửi hậu quả giống như hagravenh động của NAK truyền lại goacutei vừa rồi

Transport Layer 3-36

rdt22 gửi nhận caacutec mảnh

Chờ cho gọi 0 từ

trecircn

sndpkt = make_pkt(0 data checksum)udt_send(sndpkt)

rdt_send(data)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) || isACK(rcvpkt1) )

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt0)

Chờ cho ACK

0

gửi phacircn mảnhFSM

Chờ cho gọi

0 từ dưới

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp has_seq1(rcvpkt)

extract(rcvpktdata)deliver_data(data)sndpkt = make_pkt(ACK1 chksum)udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp (corrupt(rcvpkt) || has_seq1(rcvpkt))

udt_send(sndpkt)

nhận phacircn mảnhFSM

Transport Layer 3-37

rdt30 caacutec kecircnh với lỗi vagrave mất maacutet

Giả định mới kecircnh ưu tiecircn cũng coacute thể lagravem mất caacutec goacutei (dữ liệu hoặc caacutec ACK) checksum số thứ tự

caacutec ACK caacutec việc truyền lại sẽ hỗ trợ nhưng khocircng đủ

Caacutech tiếp cận người gửi chờ ACK trong khoảng thời gian ldquochấp nhận đượcrdquo

truyền lại nếu khocircng nhận ACK trong khoảng thời gian nagravey

nếu goacutei (hoặc ACK) chỉ trễ (khocircng mất) truyền lại sẽ gacircy trugraveng

nhưng dugraveng số thứ tự sẽ giải quyết được

người nhận phải xaacutec định số thứ tự của goacutei vừa gửi ACK

cần bộ định thigrave đếm lugravei

Transport Layer 3-38

rdt30 gửi

sndpkt = make_pkt(0 data checksum)udt_send(sndpkt)start_timer

rdt_send(data)

Chờ cho

ACK 0

rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) ||isACK(rcvpkt1) )

Chờ cho gọi 1 từ trecircn

sndpkt = make_pkt(1 data checksum)udt_send(sndpkt)start_timer

rdt_send(data)

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt0)

rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) ||isACK(rcvpkt0) )

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt1)

stop_timerstop_timer

udt_send(sndpkt)start_timer

timeout

udt_send(sndpkt)start_timer

timeout

rdt_rcv(rcvpkt)

Chờ cho gọi 0 từ trecircn

Chờ cho

ACK 1

rdt_rcv(rcvpkt)

Transport Layer 3-39

hagravenh động của rdt30

Transport Layer 3-40

hagravenh động của rdt30

Transport Layer 3-41

Hiệu suất của rdt30

rdt30 lagravem việc được nhưng đaacutenh giaacute hiệu suất hơi rắc rối viacute dụ liecircn kết 1 Gbps trễ lan truyền giữa hai đầu cuối lagrave 15

ms goacutei 1KB

T truyền = 8kbpkt109 bsec

= 8 microsec

U sender độ khả dụng ndash

U sender

= 008

30008 = 000027

microseconds

L R

RTT + L R =

L (độ dagravei goacutei tiacutenh bằng bits)R (tốc độ truyền bps)

=

goacutei 1KB mỗi 30 msec -gt 33kBs trecircn đường truyền 1 Gbps giao thức network hạn chế việc dugraveng caacutec tagravei nguyecircn vật

lyacute

Transport Layer 3-42

rdt30 hoạt động dừng-vagrave-chờ

goacutei đầu tiecircn đatilde truyền t = 0

gửi nhận

RTT

goacutei cuối cugraveng đatilde truyền t = L R

goacutei đầu tiecircn đatilde đếngoacutei cuối cugraveng đatilde đến gửi ACK

ACK đến gửi goacutei kế tiếp t = RTT + L R

U sender

= 008

30008 = 000027

microseconds

L R

RTT + L R =

Transport Layer 3-43

Caacutec giao thức Pipelined

Pipelining người gửi cho pheacutep gửi nhiều goacutei đồng thời khocircng cần chờ baacuteo nhận được nhoacutem caacutec số thứ tự phải tăng dần phải coacute bộ nhớ đệm tại nơi gửi vagravehoặc nơi nhận

hai dạng phổ biến của caacutec giao thức pipelined go-Back-N Lặp coacute lựa chọn

Transport Layer 3-44

Pipelining độ khả dụng tăng

goacutei đầu tiecircn đatilde truyền t = 0

sender receiver

RTT

goacutei cuối cugraveng đatilde truyền t = L R

goacutei đầu tiecircn đatilde đếngoacutei cuối cugraveng đatilde đến gửi ACK

ACK đến gửi goacuteikế tiếp t = RTT + L R

bit cuối của goacutei thứ 2 đến gửi ACKbit cuối của goacutei thứ 3 đến gửi ACK

U sender

= 024

30008 = 00008

microseconds

3 L R

RTT + L R =

Độ khả dụng tăng lecircngấp 3 lần

Transport Layer 3-45

Go-Back-NBecircn gửi k-bit số thứ tự trong header của goacutei ldquocửa sổrdquo tăng lecircn đến N cho pheacutep gửi caacutec goacutei liecircn tục khocircng cần ACK

ACK(n) ACKs tất cả caacutec goacutei đến chứa số thứ tự n ndash ldquoACK tiacutech lũyrdquo coacute thể nhận caacutec ACK trugraveng lặp (xem becircn nhận)

định thigrave cho mỗi goacutei trecircn đường truyền timeout(n) gửi lại goacutei n vagrave tất cả caacutec goacutei coacute số thứ tự cao

hơn trong cửa sổ

Transport Layer 3-46

GBN becircn gửi mở rộng FSM

chờ start_timerudt_send(sndpkt[base])udt_send(sndpkt[base+1])hellipudt_send(sndpkt[nextseqnum-1])

timeout

rdt_send(data)

if (nextseqnum lt base+N) sndpkt[nextseqnum] = make_pkt(nextseqnumdatachksum) udt_send(sndpkt[nextseqnum]) if (base == nextseqnum) start_timer nextseqnum++ else refuse_data(data)

base = getacknum(rcvpkt)+1If (base == nextseqnum) stop_timer else start_timer

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)

base=1nextseqnum=1

rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)

Transport Layer 3-47

GBN becircn nhận mở rộng FSM

ACK-duy nhất luocircn luocircn gửi ACK cho goacutei đatilde nhận đuacuteng với số thứ tự xếp hạng cao nhất coacute thể sinh ra caacutec ACK trugraveng nhau chỉ cần nhớ expectedseqnum

goacutei khocircng theo thứ tự hủy -gt khocircng nhận vagraveo bộ đệm gửi lại ACK với số thứ tự xếp hạng cao nhất

chờ

udt_send(sndpkt)

default

rdt_rcv(rcvpkt) ampamp notcurrupt(rcvpkt) ampamp hasseqnum(rcvpktexpectedseqnum)

extract(rcvpktdata)deliver_data(data)sndpkt = make_pkt(expectedseqnumACKchksum)udt_send(sndpkt)expectedseqnum++

expectedseqnum=1sndpkt = make_pkt(expectedseqnumACKchksum)

Transport Layer 3-48

GBN hoạt động

Transport Layer 3-49

Lặp coacute lựa chọn

becircn nhận thocircng baacuteo đatilde nhận đuacuteng tất cả từng goacutei một đệm (buffer) caacutec goacutei nếu cần thiết

becircn gửi chỉ gửi lại caacutec goacutei nagraveo khocircng nhận được ACK becircn gửi định thigrave đối với mỗi goacutei khocircng gửi ACK

cửa sổ becircn gửi N số thứ tự liecircn tục hạn chế số thứ tự caacutec goacutei khocircng gửi ACK

Transport Layer 3-50

Lặp coacute lựa chọn caacutec cửa sổ gửi nhận

Transport Layer 3-51

Lặp coacute lựa chọn

dữ liệu từ lớp trecircn nếu số thứ tự kế tiếp sẵn

sagraveng trong cửa sổ gửi goacutei

timeout(n) gửi lại goacutei n taacutei khởi tạo

bộ định thigrave

ACK(n) trong [sendbasesendbase+N]

đaacutenh dấu goacutei n lagrave đatilde nhận nếu goacutei khocircng ACK coacute n

nhỏ nhất dịch chuyển cửa sổ base đến số thứ tự khocircng ACK kế tiếp

Gửigoacutei n trong [rcvbase

rcvbase+N-1]

gửi ACK(n) khocircng thứ tự đệm

(buffer) coacute thứ tự truyền (cũng

truyền caacutec goacutei đatilde đệm coacute thứ tự) dịch chuyển cửa sổ đến goacutei chưa nhận kế tiếp

goacutei n trong [rcvbase-Nrcvbase-1]

ACK(n)

ngược lại lờ đi

Nhận

Transport Layer 3-52

Hoạt động của lặp coacute lựa chọn

Transport Layer 3-53

Lặp coacute lựa chọntigravenh trạng khoacute giải quyếtViacute dụ Số thứ tự 0 1 2 3 Kiacutech thước cửa sổ = 3

becircn nhận khocircng thấy sự khaacutec nhau trong 2 tigravenh huống

chuyển khocircng chiacutenh xaacutec dữ liệu trugraveng lặp như dữ liệu mới trong (a)

Hỏi quan hệ giữa datildey số thứ tự vagrave kiacutech thước cửa sổ

Transport Layer 3-54

Chương 3 Nội dung trigravenh bagravey

31 Caacutec dịch vụ lớp Transport

32 Multiplexing vagrave demultiplexing

33 Vận chuyển khocircng kết nối UDP

34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy

35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối

36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn

37 Điều khiển tắc nghẽn TCP

Transport Layer 3-55

TCP Tổng quan RFCs 793 1122 1323 2018 2581

dữ liệu full duplex luồng dữ liệu đi 2 chiều

trong cugraveng một kết nối MSS maximum

segment size ndash kiacutech thước đoạn tối đa

hướng kết nối bắt tay (trao đổi caacutec

thocircng điệp điều khiển) trạng thaacutei becircn gửi becircn nhận trước khi trao đổi dữ liệu

điều khiển luồng becircn gửi sẽ khocircng lấn aacutet

becircn nhận

point-to-point một becircn gửi một becircn

nhận tin cậy dograveng byte coacute

thứ tự khocircng ldquoranh giới thocircng

điệprdquo kecircnh liecircn lạc

TCP điều khiển luồng vagrave tắc nghẽn thiết lập kiacutech thước cửa sổ

caacutec bộ đệm gửi amp nhận

socketdoor

T C Psend buffer

T C Preceive buffer

socketdoor

segm ent

applicationwrites data

applicationreads data

Transport Layer 3-56

TCP cấu truacutec đoạn

port nguồn port điacutech

32 bits

dữ liệu ứng dụng(độ dagravei thay đổi)

số thứ tự

số ACKcửa sổ nhận

con trỏ URGchecksum

FSRPAUheadlen

notused

Tugravey chọn (độ dagravei thay đổi)

URG dữ liệu khẩn cấp(thường khocircng dugraveng)

ACK ACK hợp lệ

PSH push data now(thường khocircng dugraveng)

RST SYN FINthiết lập kết nối

(caacutec lệnh thiết lậpchia nhỏ)

số byte becircn nhận sẵn sagraveng chấp nhận

đếm bởi số bytecủa dữ liệu

Internetchecksum

(giống UDP)

Transport Layer 3-57

Caacutec số thứ tự TCP vagrave ACKCaacutec số thứ tự

dograveng byte ldquođaacutenh sốrdquo byte đầu tiecircn trong dữ liệu của đoạn

caacutec ACK số thứ tự của byte

kế tiếp được chờ đợi từ phiacutea becircn kia

ACK tiacutech lũyHỏi lagravem thế nagraveo becircn

nhận quản lyacute caacutec đoạn khocircng thứ tự Trả lời TCP khocircng

đề cập tugravey thuộc người hiện thực

Host A Host B

Seq=42 ACK=79 data = lsquoCrsquo

Seq=79 ACK=43 data = lsquoCrsquo

Seq=43 ACK=80

UsernhậplsquoCrsquo

host ACKsnhận phản hồi

lsquoCrsquo

host ACKsbaacuteo nhận

lsquoCrsquo phản hồingược lại lsquoCrsquo

timetigravenh huống telnet đơn giản

Transport Layer 3-58

TCP Round Trip Time vagraveTimeout

Hỏi Lagravem thế nagraveo để thiết lập giaacute trị TCP timeout

dagravei hơn RTT khaacutec với RTT

quaacute ngắn timeout sớm truyền lại khocircng

cần thiết quaacute dagravei phản ứng

chậm đối với việc mất maacutet goacutei

Hỏi Lagravem thế nagraveo để thiết lập RTT

SampleRTT thời gian được đo từ khi truyền đoạn đến khi baacuteo nhận ACK lờ đi việc truyền lại

SampleRTT sẽ thay đổi muốn ước lượng RTT ldquomượt hơnrdquo tiacutenh trung bigravenh một số giaacute

trị đo được gần đoacute khocircng chỉ SampleRTT hiện tại

Transport Layer 3-59

TCP Round Trip Time vagrave Timeout

EstimatedRTT = (1- )EstimatedRTT + SampleRTT

giaacute trị đặc trưng = 0125

Transport Layer 3-60

Viacute dụ đaacutenh giaacute RTTRTT gaiacsumassedu to fantasiaeurecomfr

100

150

200

250

300

350

1 8 15 22 29 36 43 50 57 64 71 78 85 92 99 106

time (seconnds)

RTT

(mill

isec

onds

)

SampleRTT Estimated RTT

Transport Layer 3-61

TCP Round Trip Time vagrave Timeout

Thiết lập timeout EstimtedRTT cộng ldquohệ số dự trữ an toagravenrdquo

sự biến thiecircn lớn trong EstimatedRTT -gt hệ số dự trữ an toagraven lớn hơn ước lượng đầu tiecircn về sự biến thiecircn của SampleRTT từ EstimatedRTT

TimeoutInterval = EstimatedRTT + 4DevRTT

DevRTT = (1-)DevRTT + |SampleRTT-EstimatedRTT|

(tiecircu biểu = 025)

Sau đoacute thiết lập timeout interval

Transport Layer 3-62

TCP truyền dữ liệu tin cậy

TCP tạo dịch vụ rdt trecircn dịch vụ khocircng tin cậy IP

caacutec đoạn Pipelined caacutec ACK tiacutech lũy TCP dugraveng bộ định thigrave

truyền lại đơn

Truyền lại được kiacutech hoạt bởi caacutec sự kiện timeout caacutec ack trugraveng lặp

luacutec đầu khảo saacutet caacutec becircn gửi TCP đơn giản lờ đi caacutec ack trugraveng lặp lờ đi điều khiển luồng

điều khiển tắc nghẽn

Transport Layer 3-63

TCP caacutec sự kiệndữ liệu đatilde nhận từ ứng

dụng tạo đoạn với số thứ

tự của noacute số thứ tự lagrave số theo

byte dữ liệu đầu tiecircn khởi động bộ định thigrave

nếu chưa chạy khoảng thời gian hết

hạn TimeOutInterval

timeout gửi lại đoạn nagraveo gacircy

ra timeout khởi động lại bộ định

thigrave Ack đatilde nhận

cập nhật caacutei gigrave sẽ được ACK

khởi động bộ định thigrave nếu coacute caacutec đoạn cograven chờ

Transport Layer 3-64

TCP becircn gửi(đơn giản)

NextSeqNum = InitialSeqNum SendBase = InitialSeqNum

loop (forever) switch(event)

event data received from application above create TCP segment with sequence number NextSeqNum if (timer currently not running) start timer pass segment to IP NextSeqNum = NextSeqNum + length(data)

event timer timeout retransmit not-yet-acknowledged segment with smallest sequence number start timer

event ACK received with ACK field value of y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer

end of loop forever

Chuacute thiacutechbull SendBase-1 byte vừa được ACK tiacutech lũy Viacute dụbull SendBase-1 = 71y= 73 vigrave thế becircn nhận muốn 73+ y gt SendBase vigrave thế dữ liệu mới được chấp nhận

Transport Layer 3-65

TCP caacutec tigravenh huống truyền lại

Host A

Seq=100 20 bytes data

ACK=100

timetimeout sớm

Host B

Seq=92 8 bytes data

ACK=120

Seq=92 8 bytes data

Seq=

92

tim

eout

ACK=120

Host A

Seq=92 8 bytes data

ACK=100

loss

tim

eout

tigravenh huống mất ACK

Host B

X

Seq=92 8 bytes data

ACK=100

time

Seq=

92

tim

eout

SendBase= 100

SendBase= 120

SendBase= 120

Sendbase= 100

Transport Layer 3-66

TCP caacutec tigravenh huống truyền lại (tt)Host A

Seq=92 8 bytes data

ACK=100

loss

tim

eout

Cumulative ACK scenario

Host B

X

Seq=100 20 bytes data

ACK=120

time

SendBase= 120

Transport Layer 3-67

TCP sinh ra ACK [RFC 1122 RFC 2581]

Sự kiện tại becircn nhận

Đoạn đến với đuacuteng số thứ tự mong muốn Tất cả dữ liệu đếnđatilde được ACK

Đoạn đến với đuacuteng số thứ tự mong muốn Một đoạn khaacutec đangchờ ACK

Caacutec đoạn đến khocircng thứ tựlớn hơn số thứ tự đoạn mong muốnCoacute khoảng trống

Đoạn đếnlấp đầy từng phần hoặc toagraven bộkhoảng trống

TCP becircn nhận hagravenh động

ACK trễ Chờ đến 500mscho đoạn kế tiếp Nếu khocircng coacute đoạnkế tiếp gửi ACK

Gửi ngay một ACK tiacutech lũy chấp nhậncho cả caacutec đoạn theo thứ tự

Gửi ngay ACK trugraveng lặp chỉ thị số thứ tựđoạn của byte kế tiếp đang mong chờ

Gửi ngay ACK với điều kiện lagrave đoạnbắt đầu ngay điểm coacute khoảng trống

Transport Layer 3-68

Truyền lại nhanh

Chu kỳ Time-out thường tương đối dagravei độ trễ dagravei trước khi gửi

lại goacutei đatilde mất

Xaacutec nhận caacutec đoạn đatilde mất bằng caacutec ACK trugraveng lặp becircn gửi thường gửi

nhiều đoạn song song Nếu đoạn bị mất sẽ

xảy ra tigravenh trạng giống như nhiều ACK trugraveng nhau

Nếu becircn gửi nhận 3 ACK của cugraveng một dữ liệu noacute cho lagrave đoạn sau dữ liệu đatilde ACK bị mất Truyền lại nhanh gửi

lại đoạn trước khi bộ định thigrave hết hạn

Transport Layer 3-69

sự kiện ACK đatilde nhận với trường lagrave y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer else increment count of dup ACKs received for y if (count of dup ACKs received for y = 3) resend segment with sequence number y

Giải thuật truyền lại nhanh

một ACK trugraveng lặp cho đoạn đatilde được ACK

Truyền lại nhanh

Transport Layer 3-70

Chương 3 Nội dung trigravenh bagravey

31 Caacutec dịch vụ lớp Transport

32 Multiplexing vagrave demultiplexing

33 Vận chuyển khocircng kết nối UDP

34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy

35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối

36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn

37 Điều khiển tắc nghẽn TCP

Transport Layer 3-71

TCP điều khiển luồng

becircn nhận của kết nối TCP coacute một bộ đệm nhận

dịch vụ so trugraveng tốc độ so trugraveng tốc độ gửi với tốc độ nhận của ứng dụng

tiến trigravenh ứng dụng coacute thể chậm tại luacutec đọc bộ đệm

becircn gửi sẽ khocircng lagravem tragraven bộ đệm vigrave truyền quaacute nhiều vagrave

quaacute nhanh

điều khiển luồng

Transport Layer 3-72

TCP điều khiển luồng caacutech lagravem

(Giả sử becircn nhận TCP loại bỏ caacutec đoạn khocircng coacute thứ tự)

dự phograveng trong bộ đệm= RcvWindow

= RcvBuffer-[LastByteRcvd - LastByteRead]

Becircn nhận thocircng baacuteo khoảng dự trữ nhờ giaacute trị RcvWindow trong caacutec đoạn

Becircn gửi hạn chế dữ liệu khocircng được ACK vagraveo RcvWindow bảo đảm bộ đệm nhận

khocircng tragraven

Transport Layer 3-73

Chương 3 Nội dung trigravenh bagravey

31 Caacutec dịch vụ lớp Transport

32 Multiplexing vagrave demultiplexing

33 Vận chuyển khocircng kết nối UDP

34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy

35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối

36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn

37 Điều khiển tắc nghẽn TCP

Transport Layer 3-74

TCP quản lyacute kết nối

Chuacute yacute Becircn gửi vagrave becircn nhận TCP thiết lập ldquokết nốirdquo trước khi trao đổi dữ liệu

khởi tạo caacutec biến TCP caacutec số thứ tự đoạn thocircng tin caacutec bộ đệm điều

khiển luồng (như RcvWindow)

client người khởi xướng kết nối

Socket clientSocket = new Socket(hostnameport

number) server được tiếp xuacutec bởi

client Socket connectionSocket =

welcomeSocketaccept()

3 phương phaacutep bắt tay

Bước 1 client host gửi đoạnTCP SYN đến server xaacutec định số thứ tự khởi đầu khocircng phải dữ liệu

Bước 2 server host nhận SYN trả lời với đoạn SYNACK

server cấp phaacutet caacutec bộ đệm

xaacutec định số thứ tự khởi đầuBước 3 client nhận SYNACK trả

lời với đoạn ACK (coacute thể chứa dữ liệu)

Transport Layer 3-75

TCP quản lyacute kết nối (tt)

Đoacuteng một kết nối

client đoacuteng socket clientSocketclose()

Bước 1 client gửi đoạn điều khiển TCP FIN đến server

Bước 2 server nhận FIN trả lời với ACK Đoacuteng kết nối gửi FIN

client

FIN

server

ACK

ACK

FIN

đoacuteng

đoacuteng

đatilde đoacutengthời g

ian c

hờ

Transport Layer 3-76

TCP quản lyacute kết nối (tt)

Bước 3 client nhận FIN trả lời với ACK

Trong khoảng ldquothời gian chờrdquo ndash sẽ phản hồi với ACK để nhận caacutec FIN

Bước 4 server nhận ACK Kết nối đatilde đoacuteng

Chuacute yacute với một sửa đổi nhỏ coacute thể quản lyacute nhiều FIN đồng thời

client

FIN

server

ACK

ACK

FIN

đang đoacuteng

đang đoacuteng

đatilde đoacuteng

thời g

ian c

hờ

đatilde đoacuteng

Transport Layer 3-77

TCP quản lyacute kết nối (tt)

chu kỳ sống củaTCP client

chu kỳ sống củaTCP server

Transport Layer 3-78

Chương 3 Nội dung trigravenh bagravey

31 Caacutec dịch vụ lớp Transport

32 Multiplexing vagrave demultiplexing

33 Vận chuyển khocircng kết nối UDP

34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy

35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối

36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn

37 Điều khiển tắc nghẽn TCP

Transport Layer 3-79

Caacutec nguyecircn lyacute điều khiển tắc nghẽn

Tắc nghẽn ldquoquaacute nhiều nguồn gửi quaacute nhanh vagrave quaacute nhiều

dữ liệu đến mạngrdquo khaacutec với điều khiển luồng caacutec biểu hiện

caacutec goacutei bị mất (tragraven bộ đệm tại caacutec router) caacutec độ trễ quaacute dagravei (xếp hagraveng trong bộ đệm

của router) lagrave 1 trong 10 vấn đề nan giải nhất

Transport Layer 3-80

Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 1

2 gửi 2 nhận 1 router caacutec bộ

đệm khocircng giới hạn

khocircng coacute truyền lại

caacutec độ trễ lớn hơn khi tắc nghẽn

năng suất coacute thể đạt tối đa

unlimited shared output link buffers

Host Ain original data

Host B

out

Transport Layer 3-81

Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 2

1 router caacutec bộ đệm coacute giới hạn becircn gửi truyền lại caacutec goacutei đatilde mất

chia sẻ vocirc hạncaacutec bộ đệm ouput

Host A in dữ liệu gốc

Host B

out

in dữ liệu gốc cugraveng với dữ liệu truyền lại

Transport Layer 3-82

Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 2 luocircn luocircn

truyền lại ldquohoagraven toagravenrdquo chỉ khi mất maacutet

truyền lại vigrave trễ (khocircng mất) lagravem cho lớn hơn với cugraveng

in

out

=

in

out

gt

in

out

ldquocaacutec chi phiacuterdquo của tắc nghẽn nhiều việc (truyền lại) caacutec truyền lại khocircng cần thiết liecircn kết nhiều bản sao của

goacutei

R2

R2in

ou

t

b

R2

R2in

ou

t

a

R2

R2in

ou

t

c

R4

R3

Transport Layer 3-83

Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 3 4 người gửi caacutec đường qua nhiều hop timeouttruyền lại

in

Hỏi điều gigrave xảy ra nếu vagrave tăng lecircn

in

chia sẻ vocirc hạncaacutec bộ đệm ouput

Host Ain dữ liệu gốc

Host B

out

in dữ liệu gốc cugraveng với dữ liệu truyền lại

Transport Layer 3-84

Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 3

ldquochi phiacuterdquo khaacutec của tắc nghẽn khi caacutec goacutei bị bỏ bất kỳ ldquokhả năng truyền

upstream dugraveng cho goacutei đoacute sẽ bị latildeng phiacuterdquo

Host A

Host B

o

u

t

Transport Layer 3-85

Caacutec caacutech tiếp cận đối với điều khiển tắc nghẽn

điều khiển tắc nghẽn end-end

khocircng coacute phản hồi rotilde ragraveng từ mạng

tắc nghẽn được suy ra từ việc quan saacutet caacutec hệ thống đầu cuối coacute mất maacutet trễ

tiếp cận được quản lyacute bởi TCP

điều khiển tắc nghẽn coacute sự hỗ trợ của mạng

caacutec router cung cấp phản hồi về caacutec hệ thống đầu cuối 1 bit duy nhất chỉ thị

tắc nghẽn (SNA DECbit TCPIP ECN ATM)

tốc độ sẽ gửi được xaacutec định rotilde ragraveng

2 caacutech

Transport Layer 3-86

Viacute dụ điều khiển tắc nghẽn ATM ABR

ABR tốc độ bit sẵn sagraveng

ldquodịch vụ mềm dẻordquo nếu đường gửi ldquochưa

hếtrdquo becircn gửi sẽ dugraveng

băng thocircng sẵn sagraveng nếu đường gửi tắc

nghẽn becircn gửi điều tiết với

tốc độ tối thiểu

RM (resource management)

gửi bởi becircn gửi rải raacutec với caacutec ocirc dữ liệu

caacutec bit trong ocirc thiết lập bởi caacutec switch bit NI khocircng tăng tốc độ

(tắc nghẽn nhẹ) bit CI tắc nghẽn rotilde rệt

Caacutec ocirc RM được trả về becircn gửi từ becircn nhận với nguyecircn vẹn caacutec bit

Transport Layer 3-87

Viacute dụ điều khiển tắc nghẽn ATM ABR

trường 2-byte ER trong ocirc RM switch đatilde tắc nghẽn coacute thể coacute giaacute trị ER thấp hơn trong ocirc tốc độ gửi do đoacute coacute thể được hỗ trợ tối đa trecircn đường

EFCI bit trong caacutec ocirc dữ liệu được cagravei giaacute trị 1 trong switch đatilde tắc nghẽn nếu ocirc dữ liệu đứng trước ocirc RM coacute cagravei EFCI becircn gửi sẽ cagravei

bit CI trong ocirc RM trả về

Transport Layer 3-88

Chương 3 Nội dung trigravenh bagravey

31 Caacutec dịch vụ lớp Transport

32 Multiplexing vagrave demultiplexing

33 Vận chuyển khocircng kết nối UDP

34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy

35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối

36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn

37 Điều khiển tắc nghẽn TCP

Transport Layer 3-89

TCP điều khiển tắc nghẽn additive tăng lecircn multiplicative giảm xuống

8 Kbytes

16 Kbytes

24 Kbytes

time

congestionwindow

Caacutech tiếp cận tăng tốc độ truyền (kiacutech thước cửa sổ) tigravem khả năng băng thocircng coacute thể cho đến khi coacute mất maacutet xảy ra additive tăng lecircn tăng CongWin bởi 1 MSS

mỗi RTT cho đến khi coacute mất maacutet xảy ra multiplicative giảm xuống bỏ CongWin trong

nửa giai đoạn sau khi mất maacutet

timekiacutech

thư

ớc

cửa

sổ

tắc

nghẽ

n

Tigravem kiếm băng thocircng

Transport Layer 3-90

TCP điều khiển tắc nghẽn chi tiết

becircn gửi hạn chế việc truyền LastByteSent-LastByteAcked

CongWin Cocircng thức

CongWin thay đổi chức năng lagrave nhận biết tắc nghẽn trecircn mạng

Lagravem thế nagraveo becircn gửi nhận biết tắc nghẽn

mất maacutet xảy ra = timeout hoặc 3 ack trugraveng lặp

becircn gửi giảm tốc độ (CongWin) sau khi mất maacutet xảy ra

3 cơ chế AIMD khởi động chậm thận trọng sau khi coacute

caacutec sự kiện timeout

tốc độ = CongWin

RTT Bytess

Transport Layer 3-91

TCP khởi động chậm

Khi kết nối bắt đầu CongWin = 1 MSS Viacute dụ MSS = 500 bytes

amp RTT = 200 ms tốc độ khởi tạo = 20

kbps

băng thocircng sẵn sagraveng coacute thể gtgt MSSRTT mong muốn nhanh

choacuteng tăng tốc lecircn tốc độ coacute thể đaacutep ứng

Khi kết nối bắt đầu tăng tốc lecircn rất nhanh cho đến khi sự cố mất maacutet xảy ra đầu tiecircn

Transport Layer 3-92

TCP khởi động chậm (tt)

Khi kết nối bắt đầu tăng tốc lecircn rất nhanh cho đến khi sự cố mất maacutet xảy ra đầu tiecircn nhacircn đocirci CongWin mỗi

RTT hoagraven thagravenh nhờ tăng CongWin ứng với mỗi ACK đatilde nhận

Tổng kết tốc độ khởi đầu lagrave chậm nhưng sau đoacute tăng tốc rất nhanh

Host A

1 đoạn

RTT

Host B

thời gian

2 đoạn

4 đoạn

Transport Layer 3-93

Tinh chếHỏi Khi nagraveo việc tăng

tốc trở thagravenh tuyến tiacutenh

Trả lời Khi CongWin đạt đến 12 giaacute trị của noacute trước khi timeout

Hiện thực Ngưỡng thay đổi Tại thời điểm coacute sự cố

mất maacutet ngưỡng được cagravei giaacute trị bằng frac12 của CongWin ngay trước đoacute

Transport Layer 3-94

Tinh chế nhận biết mất maacutet

Sau 3 ACK trugraveng lặp CongWin sẽ giảm 12 kiacutech thước cửa sổ

tăng tuyến tiacutenh nhưng sau sự cố

timeout CongWin thay giaacute trị

bằng 1 MSS kiacutech thước cửa sổ

tăng cấp lũy thừa khi đến một ngưỡng

thigrave tăng tuyến tiacutenh

3 ACK trugraveng nhau chỉ ra khả năng truyền của mạng timeout chỉ thị ldquonhiều cảnh baacuteordquo về tigravenh huống tắc nghẽn

Nguyecircn lyacute

Transport Layer 3-95

Tổng kết TCP điều khiển tắc nghẽn

Khi CongWin dưới Threshold becircn gửi đang trong giai đoạn khởi động chậm kiacutech thước cửa sổ tăng nhanh theo cấp lũy thừa

Khi CongWin trecircn Threshold becircn gửi đang trong giai đoạn traacutenh tắc nghẽn kiacutech thước cửa sổ tăng nhanh theo cấp tuyến tiacutenh

Khi coacute 3 ACK trugraveng lặp xảy ra Threshold = CongWin2 vagrave CongWin = Threshold

Khi timeout xảy ra Threshold = CongWin2 vagrave CongWin = 1 MSS

Transport Layer 3-96

TCP điều khiển tắc nghẽn becircn gửi

Trạng thaacutei Sự kiện TCP becircn gửi hagravenh động Diễn giải

Slow Start (SS)-Khởi động chậm

ACK baacuteo nhận cho dữ liệu chưa ACK trước đoacute

CongWin = CongWin + MSS If (CongWin gt Threshold) cagravei đặt trạng thaacutei ldquoTraacutenh tắc nghẽnrdquo

Hậu quả lagravem tăng gấp đocirci CongWin mỗi RTT

CongestionAvoidance (CA) ndashTraacutenh tắc nghẽn

ACK baacuteo nhận cho dữ liệu chưa ACK trước đoacute

CongWin = CongWin+MSS (MSSCongWin)

Additive tăng lecircn lagravem tăng CongWin lecircn 1 MSS mỗi RTT

SS hoặc CA Sự cố mất maacutet xảy ra khi thấy coacute 3 ACK trugraveng lặp

Threshold = CongWin2 CongWin = Thresholdcagravei đặt trạng thaacutei ldquoTraacutenh tắc nghẽnrdquo

Khocirci phục nhanh hiện thực giảm xuống multiplicative CongWin sẽ khocircng giảm xuống dưới 1 MSS

SS hoặc CA Timeout Threshold = CongWin2 CongWin = 1 MSScagravei đặt trạng thaacutei ldquoKhởi động chậmrdquo

Vagraveo chế độ ldquoKhởi động chậmrdquo

SS hoặc CA ACK trugraveng lặp

Đếm ACK tăng lecircn cho đoạn vừa được ACK

CongWin vagrave Threshold khocircng thay đổi

Transport Layer 3-97

TCP throughput

Throughout trung bigravenh của TCP biểu diễn qua kiacutech thước của sổ vagrave RTT Bỏ qua trạng thaacutei ldquoKhởi động chậmrdquo

Cho W lagrave kiacutech thước cửa sổ khi coacute mất maacutet xảy ra

Khi kiacutech thước cửa sổ = W lưu lượng = WRTT

Chỉ ngay sau khi mất maacutet cửa sổ giảm xuống = W2 lưu lượng = W2RTT

throughout trung bigravenh 075 WRTT

Transport Layer 3-98

TCP tương lai

Viacute dụ caacutec đoạn dagravei 1500 byte RTT 100ms lưu lượng 10 Gbps

Kiacutech thước cửa sổ yecircu cầu W = 83333 đoạn trecircn đường truyền

Lưu lượng trong caacutec trường hợp mất maacutet

L = 210-10

Phiecircn bản mới của TCP dagravenh cho nhu cầu tốc độ cao

LRTT

MSS221

Transport Layer 3-99

Mục tiecircu nếu K phiecircn lagravem việc TCP chia sẻ kết nối cổ chai của băng thocircng lagrave R mỗi phiecircn coacute tốc độ trung bigravenh lagrave RK

TCP kết nối 1

router cổ chaikhả năng R

TCP kết nối 2

TCP tiacutenh cocircng bằng

Transport Layer 3-100

Tại sao phải TCP cocircng bằng

2 phiecircn lagravem việc cạnh tranh nhau Additive tăng lưu lượng tăng multiplicative giảm lưu lượng tương xứng

R

R

chia sẻ băng thocircng bằng nhau

Connection 1 throughputConnect

ion 2

th

roughput

traacutenh tắc nghẽn additive tăng lecircnmất maacutet giảm cửa sổ bằng 12

traacutenh tắc nghẽn additive tăng lecircnmất maacutet giảm cửa sổ bằng 12

Transport Layer 3-101

TCP tiacutenh cocircng bằng (tt)

Tiacutenh cocircng bằng amp UDP nhiều ứng dụng

thường khocircng dugraveng TCP khocircng muốn tốc độ bị

điều tiết do điều khiển tắc nghẽn

Thay bằng dugraveng UDP truyền audiovideo với

tốc độ ổn định chịu được mất maacutet

Nghiecircn cứu giao thức thacircn thiện với TCP

Tiacutenh cocircng bằng amp caacutec kết nối TCP song song

khocircng coacute gigrave ngăn cản việc ứng dụng mở caacutec kết nối song song giữa 2 host

Trigravenh duyệt Web lagravem giống như thế

Viacute dụ tốc độ R hỗ trợ 9 kết nối ứng dụng mới yecircu cầu 1

TCP coacute tốc độ R10 ứng dụng mới yecircu cầu 11

TCP coacute tốc độ R2

Transport Layer 3-102

Mocirc higravenh trễ

Hỏi Mất bao lacircu để nhận 1 đối tượng từ Web server sau khi gửi yecircu cầu

Bỏ qua tắc nghẽn trễ bị ảnh hưởng bởi

thiết lập kết nối TCP trễ truyền dữ liệu khởi động chậm

Notation caacutec giả định Giả sử một kết nối giữa

client vagrave server coacute tốc độ R

S MSS (bits) O kiacutech thước đối tượng

(bits) khocircng truyền lại (khocircng

mất maacutet khocircng hỏng)

Kiacutech thước cửa sổ Giả định 1 cửa sổ tắc

nghẽn cố định coacute W đoạn Sau đoacute cửa sổ thay đổi

mocirc higravenh khởi động chậm

Transport Layer 3-103

Cửa sổ tắc nghẽn cố định (1)

Trường hợp đầu tiecircnWSR gt RTT + SR cho

đoạn đầu tiecircn trong cửa sổ trả về trước khi cửa sổ dữ liệu gửi ACK

trễ = 2RTT + OR

Transport Layer 3-104

Cửa sổ tắc nghẽn cố định (2)

Trường hợp thứ hai WSR lt RTT + SR sent

chờ cho ACK sau khi gửi dữ liệu

trễ = 2RTT + OR+ (K-1)[SR + RTT - WSR]

Transport Layer 3-105

TCP Mocirc higravenh trễ Khởi động chậm (1)

Bacircy giờ giả sử kiacutech thước cửa sổ tăng lecircn tugravey theo quaacute trigravenh khởi động chậm

Độ trễ của một đối tượng sẽ lagrave

R

S

R

SRTTP

R

ORTTLatency P )12(2

trong đoacute P lagrave số lần TCP rảnh ở tại server

1min KQP

- trong đoacute Q lagrave số lần server rảnh nếu đối tượng đatilde khởi tạo kiacutech thước

- vagrave K lagrave số lượng cửa sổ bao trugravem đối tượng

Transport Layer 3-106

TCP Mocirc higravenh trễ Khởi động chậm (2)

RTT

initia te TCPconnection

requestobject

first w indow= S R

second w indow= 2S R

third w indow= 4S R

fourth w indow= 8S R

com pletetransm issionobject

delivered

tim e atc lient

tim e atserver

Viacute dụbull OS = 15 đoạnbull K = 4 cửa sổbull Q = 2bull P = minK-1Q = 2

Server rảnh P=2 lần

Caacutec thagravenh phần trễbull 2 RTT dagravenh cho thiết lập kết nối vagrave yecircu cầubull OR để truyền đối tượngbullthời gian server rảnh bởi vigrave khởi động chậm

Server rảnh P = minK-1Q lần

Transport Layer 3-107

TCP Mocirc higravenh trễ(3)

R

S

R

SRTTPRTT

R

O

R

SRTT

R

SRTT

R

O

idleTimeRTTR

O

P

kP

k

P

pp

)12(][2

]2[2

2delay

1

1

1

th window after the timeidle 2 1 kR

SRTT

R

S k

ementacknowledg receivesserver until

segment send tostartsserver when from time RTTR

S

window kth the transmit totime2 1

R

Sk

RTT

initia te TCPconnection

requestobject

first w indow= S R

second w indow= 2S R

third w indow= 4S R

fourth w indow= 8S R

com pletetransm issionobject

delivered

tim e atc lient

tim e atserver

Transport Layer 3-108

TCP Mocirc higravenh trễ (4)

)1(log

)1(logmin

12min

222min

222min

2

2

110

110

S

OS

Okk

S

Ok

SOk

OSSSkK

k

k

k

caacutech tiacutenh toaacuten Q tương tự (xem HW)

K = số lượng cửa sổ bao trugravem đối tượngLagravem thế nagraveo tiacutenh được K

Transport Layer 3-109

HTTP Mocirc higravenh Giả sử trang Web chứa

1 trang HTML (kiacutech thước O bits) M higravenh ảnh (mỗi caacutei kiacutech thướcO bits)

HTTP khocircng bền vững M+1 TCP kết nối Thời gian đaacutep ứng = (M+1)OR + (M+1)2RTT + tổng số thời

gian rảnh HTTP bền vững

2 RTT để yecircu cầu vagrave nhận file HTML 1 RTT để yecircu cầu vagrave nhận M higravenh ảnh Thời gian đaacutep ứng = (M+1)OR + 3RTT + tổng số thời gian

rảnh HTTP khocircng bền vững với X kết nối song song

Giả sử MX lagrave số nguyecircn 1 TCP kết nối cho file MX thiết lập caacutec kết nối song song cho caacutec higravenh ảnh Thời gian đaacutep ứng = (M+1)OR + (MX + 1)2RTT + tổng số

thời gian rảnh

Transport Layer 3-110

02468

101214161820

28Kbps

100Kbps

1Mbps

10Mbps

non-persistent

persistent

parallel non-persistent

HTTP thời gian đaacutep ứng (giacircy)RTT = 100 msec O = 5 Kbytes M=10 vagrave X=5

Với băng thocircng thấp thời gian kết nối amp đaacutep ứng trội hơn thời gian truyền

Caacutec kết nối bền vững chỉ cho sự cải thiện khocircng đaacuteng kể trecircn caacutec kết nối song song

Transport Layer 3-111

0

10

20

30

40

50

60

70

28Kbps

100Kbps

1Mbps

10Mbps

non-persistent

persistent

parallel non-persistent

HTTP thời gian đaacutep ứng (giacircy)

RTT =1 sec O = 5 Kbytes M=10 and X=5

Với RTT lớn hơn thời gian đaacutep ứng trội hơn thời gian trễ chờ thiết lập kết nốiTCP amp khởi động chậm Caacutec kết nối bền vững bacircy giờ cho thấy cải thiện rotilde rệt đặc biệtvới caacutec mạng băng thocircng cao

Transport Layer 3-112

Chương 3 Tổng kết caacutec nguyecircn lyacute của caacutec

dịch vụ lớp transport multiplexing

demultiplexing truyền dữ liệu tin cậy điều khiển luồng điều khiển tắc nghẽn

khởi tạo vagrave hiện thực trong Internet UDP TCP

Tiếp theo nghiecircn cứu xong

caacutec vấn đề ldquongoagravei biecircnrdquo (caacutec lớp application transport)

chuẩn bị vagraveo phần ldquolotildeirdquo của mạng

  • Slide 1
  • Chương 3 Lớp Transport
  • Chương 3 Nội dung trigravenh bagravey
  • Caacutec dịch vụ vagrave giao thức Transport
  • Lớp Transport với lớp network
  • Caacutec giao thức lớp transport trecircn Internet
  • Slide 7
  • Multiplexingdemultiplexing
  • Demultiplexing lagravem việc như thế nagraveo
  • Demultiplexing khocircng kết nối
  • Demultiplexing khocircng kết nối (tiếp)
  • Demultiplexing hướng kết nối
  • Demultiplexing hướng kết nối (tiếp)
  • Demultiplexing hướng kết nối Threaded Web Server
  • Slide 15
  • UDP User Datagram Protocol [RFC 768]
  • UDP (tt)
  • UDP checksum
  • Viacute dụ Checksum
  • Slide 20
  • Caacutec nguyecircn lyacute truyền dữ liệu tin cậy
  • Slide 22
  • Slide 23
  • Truyền dữ liệu tin cậy
  • Slide 25
  • Rdt10 truyền dữ liệu tin cậy trecircn 1 kecircnh truyền tin cậy
  • Rdt20 kecircnh với caacutec lỗi
  • rdt20 đặc tả FSM
  • rdt20 hoạt động khi khocircng lỗi
  • rdt20 hoạt động khi coacute lỗi
  • rdt20 coacute lỗ hổng nghiecircm trọng
  • rdt21 người gửi quản lyacute caacutec ACKNAK bị hỏng
  • Slide 33
  • rdt21 thảo luận
  • rdt22 một giao thức khocircng cần NAK
  • rdt22 gửi nhận caacutec mảnh
  • rdt30 caacutec kecircnh với lỗi vagrave mất maacutet
  • rdt30 gửi
  • hagravenh động của rdt30
  • Slide 40
  • Hiệu suất của rdt30
  • rdt30 hoạt động dừng-vagrave-chờ
  • Caacutec giao thức Pipelined
  • Pipelining độ khả dụng tăng
  • Go-Back-N
  • GBN becircn gửi mở rộng FSM
  • GBN becircn nhận mở rộng FSM
  • GBN hoạt động
  • Lặp coacute lựa chọn
  • Lặp coacute lựa chọn caacutec cửa sổ gửi nhận
  • Slide 51
  • Hoạt động của lặp coacute lựa chọn
  • Lặp coacute lựa chọn tigravenh trạng khoacute giải quyết
  • Slide 54
  • TCP Tổng quan RFCs 793 1122 1323 2018 2581
  • TCP cấu truacutec đoạn
  • Caacutec số thứ tự TCP vagrave ACK
  • TCP Round Trip Time vagraveTimeout
  • TCP Round Trip Time vagrave Timeout
  • Viacute dụ đaacutenh giaacute RTT
  • Slide 61
  • TCP truyền dữ liệu tin cậy
  • TCP caacutec sự kiện
  • TCP becircn gửi (đơn giản)
  • TCP caacutec tigravenh huống truyền lại
  • TCP caacutec tigravenh huống truyền lại (tt)
  • TCP sinh ra ACK [RFC 1122 RFC 2581]
  • Truyền lại nhanh
  • Giải thuật truyền lại nhanh
  • Slide 70
  • TCP điều khiển luồng
  • TCP điều khiển luồng caacutech lagravem
  • Slide 73
  • TCP quản lyacute kết nối
  • TCP quản lyacute kết nối (tt)
  • Slide 76
  • Slide 77
  • Slide 78
  • Caacutec nguyecircn lyacute điều khiển tắc nghẽn
  • Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 1
  • Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 2
  • Slide 82
  • Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 3
  • Slide 84
  • Caacutec caacutech tiếp cận đối với điều khiển tắc nghẽn
  • Viacute dụ điều khiển tắc nghẽn ATM ABR
  • Slide 87
  • Slide 88
  • TCP điều khiển tắc nghẽn additive tăng lecircn multiplicative giảm xuống
  • TCP điều khiển tắc nghẽn chi tiết
  • TCP khởi động chậm
  • TCP khởi động chậm (tt)
  • Tinh chế
  • Tinh chế nhận biết mất maacutet
  • Tổng kết TCP điều khiển tắc nghẽn
  • TCP điều khiển tắc nghẽn becircn gửi
  • TCP throughput
  • TCP tương lai
  • TCP tiacutenh cocircng bằng
  • Tại sao phải TCP cocircng bằng
  • TCP tiacutenh cocircng bằng (tt)
  • Mocirc higravenh trễ
  • Cửa sổ tắc nghẽn cố định (1)
  • Cửa sổ tắc nghẽn cố định (2)
  • TCP Mocirc higravenh trễ Khởi động chậm (1)
  • TCP Mocirc higravenh trễ Khởi động chậm (2)
  • TCP Mocirc higravenh trễ(3)
  • TCP Mocirc higravenh trễ (4)
  • HTTP Mocirc higravenh
  • Slide 110
  • Slide 111
  • Chương 3 Tổng kết

Transport Layer 3-16

UDP User Datagram Protocol [RFC 768]

giao thức Internet transport ldquođơn giản hoacuteardquo

dịch vụ ldquobest effortrdquo caacutec đoạn UDP coacute thể mất maacutet vận chuyển khocircng thứ

tự đến ứng dụng connectionless (khocircng

kết nối) khocircng bắt tay giữa

người nhận vagrave người gửi UDP

mỗi đoạn UDP được quản lyacute độc lập

Coacute UDP để lagravem gigrave khocircng thiết lập kết nối

(giuacutep coacute thể thecircm delay) đơn giản khocircng trạng

thaacutei kết nối tại nơi gửi nơi nhận

header của đoạn nhỏ khocircng điều khiển tắc

nghẽn UDP coacute thể gửi nhanh nhất theo mong muốn

Transport Layer 3-17

UDP (tt)

thường dugraveng cho caacutec ứng dụng streaming multimedia chịu mất maacutet cảm nhận tốc độ

ngoagravei ra UDP dugraveng DNS SNMP

truyền tin cậy trecircn UDP thecircm khả năng nagravey tại lớp application sửa lỗi

source port dest port

32 bits

dữ liệu ứng dụng

(thocircng điệp)

dạng thức đoạn UDP

length checksumĐộ dagravei

đoạn UDPbao gồm cả

header

Transport Layer 3-18

UDP checksum

Người gửi đối xử caacutec nội dung

đoạn như một chuỗi caacutec số nguyecircn 16-bit

checksum bổ sung(tổng bugrave 1) của caacutec nội dung đoạn

đặt giaacute trị checksum vagraveo trường UDP checksum

Người nhận tiacutenh toaacuten checksum của

đoạn đatilde nhận kiểm tra giaacute trị trecircn coacute bằng

với giaacute trị trong trường checksum NO ndash coacute lỗi xảy ra YES ndash khocircng coacute lỗi Nhưng coacute thể cograven lỗi

khaacutec nữa Xem tiếp phần sau hellip

Mục tiecircu kiểm tra caacutec ldquolỗirdquo (caacutec bit cờ đatilde bật lecircn) trong caacutec đoạn đatilde truyền

Transport Layer 3-19

Viacute dụ Checksum Lưu yacute

Khi cộng caacutec số một bit nhớ ở phiacutea cao nhất coacute thể sẽ phải thecircm vagraveo kết quả

Viacute dụ cộng hai số nguyecircn 16-bit

1 1 1 1 0 0 1 1 0 0 1 1 0 0 1 1 01 1 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1

1 1 0 1 1 1 0 1 1 1 0 1 1 1 0 1 1

1 1 0 1 1 1 0 1 1 1 0 1 1 1 1 0 01 0 1 0 0 0 1 0 0 0 1 0 0 0 0 1 1

bit dư

tổngchecksum

Transport Layer 3-20

Chương 3 Nội dung trigravenh bagravey

31 Caacutec dịch vụ lớp Transport

32 Multiplexing vagrave demultiplexing

33 Vận chuyển khocircng kết nối UDP

34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy

35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối

36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn

37 Điều khiển tắc nghẽn TCP

Transport Layer 3-21

Caacutec nguyecircn lyacute truyền dữ liệu tin cậy quan trọng trong caacutec lớp application transport link lagrave danh saacutech 10 vấn đề quan trọng nhất của mạng

caacutec đặc thugrave của kecircnh truyền khocircng tin cậy sẽ xaacutec định sự phức tạp của giao thức truyền dữ liệu data transfer protocol (rdt)

Transport Layer 3-22

Caacutec nguyecircn lyacute truyền dữ liệu tin cậy quan trọng trong caacutec lớp application transport link lagrave danh saacutech 10 vấn đề quan trọng nhất của mạng

caacutec đặc thugrave của kecircnh truyền khocircng tin cậy sẽ xaacutec định sự phức tạp của giao thức truyền dữ liệu data transfer protocol (rdt)

Transport Layer 3-23

Caacutec nguyecircn lyacute truyền dữ liệu tin cậy quan trọng trong caacutec lớp application transport link lagrave danh saacutech 10 vấn đề quan trọng nhất của mạng

caacutec đặc thugrave của kecircnh truyền khocircng tin cậy sẽ xaacutec định sự phức tạp của giao thức truyền dữ liệu data transfer protocol (rdt)

Transport Layer 3-24

Truyền dữ liệu tin cậy

sendside

receiveside

rdt_send() được gọi bởi lớp app Chuyển dữ liệu cần truyền

đến lớp cao hơn becircn nhận

udt_send() được gọi bởi rdt để truyền caacutec goacutei trecircn kecircnh khocircng tin cậy đến nơi

nhận

rdt_rcv() được gọi khi goacutei đến kecircnh becircn nhận

deliver_data() được gọi bởi rdt để truyền dữ liệu

đến lớp cao hơn

Transport Layer 3-25

Truyền dữ liệu tin cậy

Sẽ chỉ xem xeacutet truyền dữ liệu theo 1 hướng duy

nhất nhưng điều khiển luồng thocircng tin sẽ theo cả 2

chiều

dugraveng maacutey trạng thaacutei hữu hạn (finite state machines-FSM) để xaacutec định người gửi người nhận

trthaacutei1

trthaacutei2

sự kiện gacircy ra trạng thaacutei truyềncaacutec hagravenh động xảy ra khi truyền

trạng thaacutei khi ở ldquotrạng thaacuteirdquo nagravey thigrave

trạng thaacutei kế tiếp duy nhất được xaacutec định bởi sự kiện kế

tiếp

sự kiệncaacutec hagravenh động

Transport Layer 3-26

Rdt10 truyền dữ liệu tin cậy trecircn 1 kecircnh truyền tin cậy

kecircnh ưu tiecircn tin cậy hoagraven toagraven khocircng coacute caacutec lỗi khocircng mất maacutet caacutec goacutei

caacutec FSM phacircn biệt cho người gửi người nhận người gửi gửi dữ liệu vagraveo kecircnh ưu tiecircn người nhận nhận dữ liệu từ kecircnh ưu tiecircn

chờ gọi từ lớp trecircn packet = make_pkt(data)

udt_send(packet)

rdt_send(data)

extract (packetdata)deliver_data(data)

chờ gọi từ lớp dưới

rdt_rcv(packet)

người gửi người nhận

Transport Layer 3-27

Rdt20 kecircnh với caacutec lỗi

kecircnh ưu tiecircn coacute thể bật lecircn một số bit trong goacutei checksum để kiểm tra caacutec lỗi

Hỏi lagravem sao khocirci phục caacutec lỗi acknowledgements (ACKs) becircn nhận rotilde ragraveng thocircng

baacuteo cho becircn gửi rằng quaacute trigravenh nhận goacutei tốt negative acknowledgements (NAKs) becircn nhận rotilde ragraveng

thocircng baacuteo cho becircn gửi rằng quaacute trigravenh nhận goacutei coacute lỗi người gửi gửi lại goacutei nagraveo được xaacutec nhận lagrave NAK

caacutec cơ chế mới trong rdt20 (sau rdt10) kiểm tra lỗi nhận phản hồi caacutec thocircng điệp điều khiển (ACKNAK)

becircn nhận becircn gửi

Transport Layer 3-28

rdt20 đặc tả FSM

chờ gọi từ lớp trecircn

snkpkt = make_pkt(data checksum)udt_send(sndpkt)

extract(rcvpktdata)deliver_data(data)udt_send(ACK)

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)

rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp isNAK(rcvpkt)

udt_send(NAK)

rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)

chờ ACK hoặc NAK

chờ gọi từ lớp dưới

người gửi

người nhậnrdt_send(data)

Transport Layer 3-29

rdt20 hoạt động khi khocircng lỗi

chờ gọi từ lớp dưới

snkpkt = make_pkt(data checksum)udt_send(sndpkt)

extract(rcvpktdata)deliver_data(data)udt_send(ACK)

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)

rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp isNAK(rcvpkt)

udt_send(NAK)

rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)

chờ ACK hoặc NAK

chờ gọi từ lớp dưới

rdt_send(data)

Transport Layer 3-30

rdt20 hoạt động khi coacute lỗi

chờ gọi từ lớp dưới

snkpkt = make_pkt(data checksum)udt_send(sndpkt)

extract(rcvpktdata)deliver_data(data)udt_send(ACK)

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)

rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp isNAK(rcvpkt)

udt_send(NAK)

rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)

chờ ACK hoặc NAK

chờ gọi từ lớp dưới

rdt_send(data)

Transport Layer 3-31

rdt20 coacute lỗ hổng nghiecircm trọngĐiều gigrave xảy ra nếu

ACKNAK bị hỏng người gửi khocircng biết điều

gigrave đatilde xảy ra tại becircn nhận

khocircng thể đơn phương truyền lại khả năng trugraveng lặp

Quản lyacute trugraveng lặp người gửi truyền lại goacutei

hiện tại nếu ACKNAK bị hỏng

người gửi thecircm số thứ tự vagraveo mỗi goacutei

người nhận hủy (khocircng nhận) goacutei trugraveng lặp

Người gửi gửi 1 goacutei sau đoacute dừng lại chờ phản hồitừ người nhận

dừng vagrave chờ

Transport Layer 3-32

rdt21 người gửi quản lyacute caacutec ACKNAK bị hỏng

chờ gọi 0 từ lớp trecircn

sndpkt = make_pkt(0 data checksum)udt_send(sndpkt)

rdt_send(data)

chờ ACK hoặc NAK

0 udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) ||isNAK(rcvpkt) )

sndpkt = make_pkt(1 data checksum)udt_send(sndpkt)

rdt_send(data)

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) ||isNAK(rcvpkt) )

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt)

chờ gọi 1 từ lớp trecircn

chờ ACK hoặc NAK

1

Transport Layer 3-33

rdt21 người gửi quản lyacute caacutec ACKNAK bị hỏng

chờ 0 từ dưới

sndpkt = make_pkt(NAK chksum)udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp not corrupt(rcvpkt) ampamp has_seq0(rcvpkt)

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp has_seq1(rcvpkt)

extract(rcvpktdata)deliver_data(data)sndpkt = make_pkt(ACK chksum)udt_send(sndpkt)

chờ 1 từ dưới

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp has_seq0(rcvpkt)

extract(rcvpktdata)deliver_data(data)sndpkt = make_pkt(ACK chksum)udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp (corrupt(rcvpkt)

sndpkt = make_pkt(ACK chksum)udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp not corrupt(rcvpkt) ampamp has_seq1(rcvpkt)

rdt_rcv(rcvpkt) ampamp (corrupt(rcvpkt)

sndpkt = make_pkt(ACK chksum)udt_send(sndpkt)

sndpkt = make_pkt(NAK chksum)udt_send(sndpkt)

Transport Layer 3-34

rdt21 thảo luận

người gửi số thứ tự thecircm vagraveo

goacutei chỉ cần hai số thứ tự

(01) lagrave đủ Tại sao phải kiểm tra nếu việc

nhận ACKNAK bị hỏng

số trạng thaacutei tăng lecircn 2 lần trạng thaacutei phải ldquonhớrdquo

goacutei ldquohiện tạirdquo coacute số thứ tự lagrave 0 hay 1

người nhận phải kiểm tra coacute

nhận trugraveng goacutei khocircng trạng thaacutei chỉ rotilde coacute

hay khocircng mong chờ số thứ tự 0 hoặc 1

chuacute yacute người nhận khocircng biết ACKNAK vừa rồi của noacute coacute được người gửi nhận tốt hay khocircng

Transport Layer 3-35

rdt22 một giao thức khocircng cần NAK

chức năng giống như rdt21 chỉ dugraveng caacutec ACK thay cho NAK người nhận gửi ACK cho goacutei vừa

rồi đatilde nhận tốt người nhận phải rotilde ragraveng chegraven số thứ tự của goacutei vừa ACK

trugraveng ACK tại người gửi hậu quả giống như hagravenh động của NAK truyền lại goacutei vừa rồi

Transport Layer 3-36

rdt22 gửi nhận caacutec mảnh

Chờ cho gọi 0 từ

trecircn

sndpkt = make_pkt(0 data checksum)udt_send(sndpkt)

rdt_send(data)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) || isACK(rcvpkt1) )

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt0)

Chờ cho ACK

0

gửi phacircn mảnhFSM

Chờ cho gọi

0 từ dưới

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp has_seq1(rcvpkt)

extract(rcvpktdata)deliver_data(data)sndpkt = make_pkt(ACK1 chksum)udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp (corrupt(rcvpkt) || has_seq1(rcvpkt))

udt_send(sndpkt)

nhận phacircn mảnhFSM

Transport Layer 3-37

rdt30 caacutec kecircnh với lỗi vagrave mất maacutet

Giả định mới kecircnh ưu tiecircn cũng coacute thể lagravem mất caacutec goacutei (dữ liệu hoặc caacutec ACK) checksum số thứ tự

caacutec ACK caacutec việc truyền lại sẽ hỗ trợ nhưng khocircng đủ

Caacutech tiếp cận người gửi chờ ACK trong khoảng thời gian ldquochấp nhận đượcrdquo

truyền lại nếu khocircng nhận ACK trong khoảng thời gian nagravey

nếu goacutei (hoặc ACK) chỉ trễ (khocircng mất) truyền lại sẽ gacircy trugraveng

nhưng dugraveng số thứ tự sẽ giải quyết được

người nhận phải xaacutec định số thứ tự của goacutei vừa gửi ACK

cần bộ định thigrave đếm lugravei

Transport Layer 3-38

rdt30 gửi

sndpkt = make_pkt(0 data checksum)udt_send(sndpkt)start_timer

rdt_send(data)

Chờ cho

ACK 0

rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) ||isACK(rcvpkt1) )

Chờ cho gọi 1 từ trecircn

sndpkt = make_pkt(1 data checksum)udt_send(sndpkt)start_timer

rdt_send(data)

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt0)

rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) ||isACK(rcvpkt0) )

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt1)

stop_timerstop_timer

udt_send(sndpkt)start_timer

timeout

udt_send(sndpkt)start_timer

timeout

rdt_rcv(rcvpkt)

Chờ cho gọi 0 từ trecircn

Chờ cho

ACK 1

rdt_rcv(rcvpkt)

Transport Layer 3-39

hagravenh động của rdt30

Transport Layer 3-40

hagravenh động của rdt30

Transport Layer 3-41

Hiệu suất của rdt30

rdt30 lagravem việc được nhưng đaacutenh giaacute hiệu suất hơi rắc rối viacute dụ liecircn kết 1 Gbps trễ lan truyền giữa hai đầu cuối lagrave 15

ms goacutei 1KB

T truyền = 8kbpkt109 bsec

= 8 microsec

U sender độ khả dụng ndash

U sender

= 008

30008 = 000027

microseconds

L R

RTT + L R =

L (độ dagravei goacutei tiacutenh bằng bits)R (tốc độ truyền bps)

=

goacutei 1KB mỗi 30 msec -gt 33kBs trecircn đường truyền 1 Gbps giao thức network hạn chế việc dugraveng caacutec tagravei nguyecircn vật

lyacute

Transport Layer 3-42

rdt30 hoạt động dừng-vagrave-chờ

goacutei đầu tiecircn đatilde truyền t = 0

gửi nhận

RTT

goacutei cuối cugraveng đatilde truyền t = L R

goacutei đầu tiecircn đatilde đếngoacutei cuối cugraveng đatilde đến gửi ACK

ACK đến gửi goacutei kế tiếp t = RTT + L R

U sender

= 008

30008 = 000027

microseconds

L R

RTT + L R =

Transport Layer 3-43

Caacutec giao thức Pipelined

Pipelining người gửi cho pheacutep gửi nhiều goacutei đồng thời khocircng cần chờ baacuteo nhận được nhoacutem caacutec số thứ tự phải tăng dần phải coacute bộ nhớ đệm tại nơi gửi vagravehoặc nơi nhận

hai dạng phổ biến của caacutec giao thức pipelined go-Back-N Lặp coacute lựa chọn

Transport Layer 3-44

Pipelining độ khả dụng tăng

goacutei đầu tiecircn đatilde truyền t = 0

sender receiver

RTT

goacutei cuối cugraveng đatilde truyền t = L R

goacutei đầu tiecircn đatilde đếngoacutei cuối cugraveng đatilde đến gửi ACK

ACK đến gửi goacuteikế tiếp t = RTT + L R

bit cuối của goacutei thứ 2 đến gửi ACKbit cuối của goacutei thứ 3 đến gửi ACK

U sender

= 024

30008 = 00008

microseconds

3 L R

RTT + L R =

Độ khả dụng tăng lecircngấp 3 lần

Transport Layer 3-45

Go-Back-NBecircn gửi k-bit số thứ tự trong header của goacutei ldquocửa sổrdquo tăng lecircn đến N cho pheacutep gửi caacutec goacutei liecircn tục khocircng cần ACK

ACK(n) ACKs tất cả caacutec goacutei đến chứa số thứ tự n ndash ldquoACK tiacutech lũyrdquo coacute thể nhận caacutec ACK trugraveng lặp (xem becircn nhận)

định thigrave cho mỗi goacutei trecircn đường truyền timeout(n) gửi lại goacutei n vagrave tất cả caacutec goacutei coacute số thứ tự cao

hơn trong cửa sổ

Transport Layer 3-46

GBN becircn gửi mở rộng FSM

chờ start_timerudt_send(sndpkt[base])udt_send(sndpkt[base+1])hellipudt_send(sndpkt[nextseqnum-1])

timeout

rdt_send(data)

if (nextseqnum lt base+N) sndpkt[nextseqnum] = make_pkt(nextseqnumdatachksum) udt_send(sndpkt[nextseqnum]) if (base == nextseqnum) start_timer nextseqnum++ else refuse_data(data)

base = getacknum(rcvpkt)+1If (base == nextseqnum) stop_timer else start_timer

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)

base=1nextseqnum=1

rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)

Transport Layer 3-47

GBN becircn nhận mở rộng FSM

ACK-duy nhất luocircn luocircn gửi ACK cho goacutei đatilde nhận đuacuteng với số thứ tự xếp hạng cao nhất coacute thể sinh ra caacutec ACK trugraveng nhau chỉ cần nhớ expectedseqnum

goacutei khocircng theo thứ tự hủy -gt khocircng nhận vagraveo bộ đệm gửi lại ACK với số thứ tự xếp hạng cao nhất

chờ

udt_send(sndpkt)

default

rdt_rcv(rcvpkt) ampamp notcurrupt(rcvpkt) ampamp hasseqnum(rcvpktexpectedseqnum)

extract(rcvpktdata)deliver_data(data)sndpkt = make_pkt(expectedseqnumACKchksum)udt_send(sndpkt)expectedseqnum++

expectedseqnum=1sndpkt = make_pkt(expectedseqnumACKchksum)

Transport Layer 3-48

GBN hoạt động

Transport Layer 3-49

Lặp coacute lựa chọn

becircn nhận thocircng baacuteo đatilde nhận đuacuteng tất cả từng goacutei một đệm (buffer) caacutec goacutei nếu cần thiết

becircn gửi chỉ gửi lại caacutec goacutei nagraveo khocircng nhận được ACK becircn gửi định thigrave đối với mỗi goacutei khocircng gửi ACK

cửa sổ becircn gửi N số thứ tự liecircn tục hạn chế số thứ tự caacutec goacutei khocircng gửi ACK

Transport Layer 3-50

Lặp coacute lựa chọn caacutec cửa sổ gửi nhận

Transport Layer 3-51

Lặp coacute lựa chọn

dữ liệu từ lớp trecircn nếu số thứ tự kế tiếp sẵn

sagraveng trong cửa sổ gửi goacutei

timeout(n) gửi lại goacutei n taacutei khởi tạo

bộ định thigrave

ACK(n) trong [sendbasesendbase+N]

đaacutenh dấu goacutei n lagrave đatilde nhận nếu goacutei khocircng ACK coacute n

nhỏ nhất dịch chuyển cửa sổ base đến số thứ tự khocircng ACK kế tiếp

Gửigoacutei n trong [rcvbase

rcvbase+N-1]

gửi ACK(n) khocircng thứ tự đệm

(buffer) coacute thứ tự truyền (cũng

truyền caacutec goacutei đatilde đệm coacute thứ tự) dịch chuyển cửa sổ đến goacutei chưa nhận kế tiếp

goacutei n trong [rcvbase-Nrcvbase-1]

ACK(n)

ngược lại lờ đi

Nhận

Transport Layer 3-52

Hoạt động của lặp coacute lựa chọn

Transport Layer 3-53

Lặp coacute lựa chọntigravenh trạng khoacute giải quyếtViacute dụ Số thứ tự 0 1 2 3 Kiacutech thước cửa sổ = 3

becircn nhận khocircng thấy sự khaacutec nhau trong 2 tigravenh huống

chuyển khocircng chiacutenh xaacutec dữ liệu trugraveng lặp như dữ liệu mới trong (a)

Hỏi quan hệ giữa datildey số thứ tự vagrave kiacutech thước cửa sổ

Transport Layer 3-54

Chương 3 Nội dung trigravenh bagravey

31 Caacutec dịch vụ lớp Transport

32 Multiplexing vagrave demultiplexing

33 Vận chuyển khocircng kết nối UDP

34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy

35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối

36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn

37 Điều khiển tắc nghẽn TCP

Transport Layer 3-55

TCP Tổng quan RFCs 793 1122 1323 2018 2581

dữ liệu full duplex luồng dữ liệu đi 2 chiều

trong cugraveng một kết nối MSS maximum

segment size ndash kiacutech thước đoạn tối đa

hướng kết nối bắt tay (trao đổi caacutec

thocircng điệp điều khiển) trạng thaacutei becircn gửi becircn nhận trước khi trao đổi dữ liệu

điều khiển luồng becircn gửi sẽ khocircng lấn aacutet

becircn nhận

point-to-point một becircn gửi một becircn

nhận tin cậy dograveng byte coacute

thứ tự khocircng ldquoranh giới thocircng

điệprdquo kecircnh liecircn lạc

TCP điều khiển luồng vagrave tắc nghẽn thiết lập kiacutech thước cửa sổ

caacutec bộ đệm gửi amp nhận

socketdoor

T C Psend buffer

T C Preceive buffer

socketdoor

segm ent

applicationwrites data

applicationreads data

Transport Layer 3-56

TCP cấu truacutec đoạn

port nguồn port điacutech

32 bits

dữ liệu ứng dụng(độ dagravei thay đổi)

số thứ tự

số ACKcửa sổ nhận

con trỏ URGchecksum

FSRPAUheadlen

notused

Tugravey chọn (độ dagravei thay đổi)

URG dữ liệu khẩn cấp(thường khocircng dugraveng)

ACK ACK hợp lệ

PSH push data now(thường khocircng dugraveng)

RST SYN FINthiết lập kết nối

(caacutec lệnh thiết lậpchia nhỏ)

số byte becircn nhận sẵn sagraveng chấp nhận

đếm bởi số bytecủa dữ liệu

Internetchecksum

(giống UDP)

Transport Layer 3-57

Caacutec số thứ tự TCP vagrave ACKCaacutec số thứ tự

dograveng byte ldquođaacutenh sốrdquo byte đầu tiecircn trong dữ liệu của đoạn

caacutec ACK số thứ tự của byte

kế tiếp được chờ đợi từ phiacutea becircn kia

ACK tiacutech lũyHỏi lagravem thế nagraveo becircn

nhận quản lyacute caacutec đoạn khocircng thứ tự Trả lời TCP khocircng

đề cập tugravey thuộc người hiện thực

Host A Host B

Seq=42 ACK=79 data = lsquoCrsquo

Seq=79 ACK=43 data = lsquoCrsquo

Seq=43 ACK=80

UsernhậplsquoCrsquo

host ACKsnhận phản hồi

lsquoCrsquo

host ACKsbaacuteo nhận

lsquoCrsquo phản hồingược lại lsquoCrsquo

timetigravenh huống telnet đơn giản

Transport Layer 3-58

TCP Round Trip Time vagraveTimeout

Hỏi Lagravem thế nagraveo để thiết lập giaacute trị TCP timeout

dagravei hơn RTT khaacutec với RTT

quaacute ngắn timeout sớm truyền lại khocircng

cần thiết quaacute dagravei phản ứng

chậm đối với việc mất maacutet goacutei

Hỏi Lagravem thế nagraveo để thiết lập RTT

SampleRTT thời gian được đo từ khi truyền đoạn đến khi baacuteo nhận ACK lờ đi việc truyền lại

SampleRTT sẽ thay đổi muốn ước lượng RTT ldquomượt hơnrdquo tiacutenh trung bigravenh một số giaacute

trị đo được gần đoacute khocircng chỉ SampleRTT hiện tại

Transport Layer 3-59

TCP Round Trip Time vagrave Timeout

EstimatedRTT = (1- )EstimatedRTT + SampleRTT

giaacute trị đặc trưng = 0125

Transport Layer 3-60

Viacute dụ đaacutenh giaacute RTTRTT gaiacsumassedu to fantasiaeurecomfr

100

150

200

250

300

350

1 8 15 22 29 36 43 50 57 64 71 78 85 92 99 106

time (seconnds)

RTT

(mill

isec

onds

)

SampleRTT Estimated RTT

Transport Layer 3-61

TCP Round Trip Time vagrave Timeout

Thiết lập timeout EstimtedRTT cộng ldquohệ số dự trữ an toagravenrdquo

sự biến thiecircn lớn trong EstimatedRTT -gt hệ số dự trữ an toagraven lớn hơn ước lượng đầu tiecircn về sự biến thiecircn của SampleRTT từ EstimatedRTT

TimeoutInterval = EstimatedRTT + 4DevRTT

DevRTT = (1-)DevRTT + |SampleRTT-EstimatedRTT|

(tiecircu biểu = 025)

Sau đoacute thiết lập timeout interval

Transport Layer 3-62

TCP truyền dữ liệu tin cậy

TCP tạo dịch vụ rdt trecircn dịch vụ khocircng tin cậy IP

caacutec đoạn Pipelined caacutec ACK tiacutech lũy TCP dugraveng bộ định thigrave

truyền lại đơn

Truyền lại được kiacutech hoạt bởi caacutec sự kiện timeout caacutec ack trugraveng lặp

luacutec đầu khảo saacutet caacutec becircn gửi TCP đơn giản lờ đi caacutec ack trugraveng lặp lờ đi điều khiển luồng

điều khiển tắc nghẽn

Transport Layer 3-63

TCP caacutec sự kiệndữ liệu đatilde nhận từ ứng

dụng tạo đoạn với số thứ

tự của noacute số thứ tự lagrave số theo

byte dữ liệu đầu tiecircn khởi động bộ định thigrave

nếu chưa chạy khoảng thời gian hết

hạn TimeOutInterval

timeout gửi lại đoạn nagraveo gacircy

ra timeout khởi động lại bộ định

thigrave Ack đatilde nhận

cập nhật caacutei gigrave sẽ được ACK

khởi động bộ định thigrave nếu coacute caacutec đoạn cograven chờ

Transport Layer 3-64

TCP becircn gửi(đơn giản)

NextSeqNum = InitialSeqNum SendBase = InitialSeqNum

loop (forever) switch(event)

event data received from application above create TCP segment with sequence number NextSeqNum if (timer currently not running) start timer pass segment to IP NextSeqNum = NextSeqNum + length(data)

event timer timeout retransmit not-yet-acknowledged segment with smallest sequence number start timer

event ACK received with ACK field value of y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer

end of loop forever

Chuacute thiacutechbull SendBase-1 byte vừa được ACK tiacutech lũy Viacute dụbull SendBase-1 = 71y= 73 vigrave thế becircn nhận muốn 73+ y gt SendBase vigrave thế dữ liệu mới được chấp nhận

Transport Layer 3-65

TCP caacutec tigravenh huống truyền lại

Host A

Seq=100 20 bytes data

ACK=100

timetimeout sớm

Host B

Seq=92 8 bytes data

ACK=120

Seq=92 8 bytes data

Seq=

92

tim

eout

ACK=120

Host A

Seq=92 8 bytes data

ACK=100

loss

tim

eout

tigravenh huống mất ACK

Host B

X

Seq=92 8 bytes data

ACK=100

time

Seq=

92

tim

eout

SendBase= 100

SendBase= 120

SendBase= 120

Sendbase= 100

Transport Layer 3-66

TCP caacutec tigravenh huống truyền lại (tt)Host A

Seq=92 8 bytes data

ACK=100

loss

tim

eout

Cumulative ACK scenario

Host B

X

Seq=100 20 bytes data

ACK=120

time

SendBase= 120

Transport Layer 3-67

TCP sinh ra ACK [RFC 1122 RFC 2581]

Sự kiện tại becircn nhận

Đoạn đến với đuacuteng số thứ tự mong muốn Tất cả dữ liệu đếnđatilde được ACK

Đoạn đến với đuacuteng số thứ tự mong muốn Một đoạn khaacutec đangchờ ACK

Caacutec đoạn đến khocircng thứ tựlớn hơn số thứ tự đoạn mong muốnCoacute khoảng trống

Đoạn đếnlấp đầy từng phần hoặc toagraven bộkhoảng trống

TCP becircn nhận hagravenh động

ACK trễ Chờ đến 500mscho đoạn kế tiếp Nếu khocircng coacute đoạnkế tiếp gửi ACK

Gửi ngay một ACK tiacutech lũy chấp nhậncho cả caacutec đoạn theo thứ tự

Gửi ngay ACK trugraveng lặp chỉ thị số thứ tựđoạn của byte kế tiếp đang mong chờ

Gửi ngay ACK với điều kiện lagrave đoạnbắt đầu ngay điểm coacute khoảng trống

Transport Layer 3-68

Truyền lại nhanh

Chu kỳ Time-out thường tương đối dagravei độ trễ dagravei trước khi gửi

lại goacutei đatilde mất

Xaacutec nhận caacutec đoạn đatilde mất bằng caacutec ACK trugraveng lặp becircn gửi thường gửi

nhiều đoạn song song Nếu đoạn bị mất sẽ

xảy ra tigravenh trạng giống như nhiều ACK trugraveng nhau

Nếu becircn gửi nhận 3 ACK của cugraveng một dữ liệu noacute cho lagrave đoạn sau dữ liệu đatilde ACK bị mất Truyền lại nhanh gửi

lại đoạn trước khi bộ định thigrave hết hạn

Transport Layer 3-69

sự kiện ACK đatilde nhận với trường lagrave y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer else increment count of dup ACKs received for y if (count of dup ACKs received for y = 3) resend segment with sequence number y

Giải thuật truyền lại nhanh

một ACK trugraveng lặp cho đoạn đatilde được ACK

Truyền lại nhanh

Transport Layer 3-70

Chương 3 Nội dung trigravenh bagravey

31 Caacutec dịch vụ lớp Transport

32 Multiplexing vagrave demultiplexing

33 Vận chuyển khocircng kết nối UDP

34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy

35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối

36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn

37 Điều khiển tắc nghẽn TCP

Transport Layer 3-71

TCP điều khiển luồng

becircn nhận của kết nối TCP coacute một bộ đệm nhận

dịch vụ so trugraveng tốc độ so trugraveng tốc độ gửi với tốc độ nhận của ứng dụng

tiến trigravenh ứng dụng coacute thể chậm tại luacutec đọc bộ đệm

becircn gửi sẽ khocircng lagravem tragraven bộ đệm vigrave truyền quaacute nhiều vagrave

quaacute nhanh

điều khiển luồng

Transport Layer 3-72

TCP điều khiển luồng caacutech lagravem

(Giả sử becircn nhận TCP loại bỏ caacutec đoạn khocircng coacute thứ tự)

dự phograveng trong bộ đệm= RcvWindow

= RcvBuffer-[LastByteRcvd - LastByteRead]

Becircn nhận thocircng baacuteo khoảng dự trữ nhờ giaacute trị RcvWindow trong caacutec đoạn

Becircn gửi hạn chế dữ liệu khocircng được ACK vagraveo RcvWindow bảo đảm bộ đệm nhận

khocircng tragraven

Transport Layer 3-73

Chương 3 Nội dung trigravenh bagravey

31 Caacutec dịch vụ lớp Transport

32 Multiplexing vagrave demultiplexing

33 Vận chuyển khocircng kết nối UDP

34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy

35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối

36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn

37 Điều khiển tắc nghẽn TCP

Transport Layer 3-74

TCP quản lyacute kết nối

Chuacute yacute Becircn gửi vagrave becircn nhận TCP thiết lập ldquokết nốirdquo trước khi trao đổi dữ liệu

khởi tạo caacutec biến TCP caacutec số thứ tự đoạn thocircng tin caacutec bộ đệm điều

khiển luồng (như RcvWindow)

client người khởi xướng kết nối

Socket clientSocket = new Socket(hostnameport

number) server được tiếp xuacutec bởi

client Socket connectionSocket =

welcomeSocketaccept()

3 phương phaacutep bắt tay

Bước 1 client host gửi đoạnTCP SYN đến server xaacutec định số thứ tự khởi đầu khocircng phải dữ liệu

Bước 2 server host nhận SYN trả lời với đoạn SYNACK

server cấp phaacutet caacutec bộ đệm

xaacutec định số thứ tự khởi đầuBước 3 client nhận SYNACK trả

lời với đoạn ACK (coacute thể chứa dữ liệu)

Transport Layer 3-75

TCP quản lyacute kết nối (tt)

Đoacuteng một kết nối

client đoacuteng socket clientSocketclose()

Bước 1 client gửi đoạn điều khiển TCP FIN đến server

Bước 2 server nhận FIN trả lời với ACK Đoacuteng kết nối gửi FIN

client

FIN

server

ACK

ACK

FIN

đoacuteng

đoacuteng

đatilde đoacutengthời g

ian c

hờ

Transport Layer 3-76

TCP quản lyacute kết nối (tt)

Bước 3 client nhận FIN trả lời với ACK

Trong khoảng ldquothời gian chờrdquo ndash sẽ phản hồi với ACK để nhận caacutec FIN

Bước 4 server nhận ACK Kết nối đatilde đoacuteng

Chuacute yacute với một sửa đổi nhỏ coacute thể quản lyacute nhiều FIN đồng thời

client

FIN

server

ACK

ACK

FIN

đang đoacuteng

đang đoacuteng

đatilde đoacuteng

thời g

ian c

hờ

đatilde đoacuteng

Transport Layer 3-77

TCP quản lyacute kết nối (tt)

chu kỳ sống củaTCP client

chu kỳ sống củaTCP server

Transport Layer 3-78

Chương 3 Nội dung trigravenh bagravey

31 Caacutec dịch vụ lớp Transport

32 Multiplexing vagrave demultiplexing

33 Vận chuyển khocircng kết nối UDP

34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy

35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối

36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn

37 Điều khiển tắc nghẽn TCP

Transport Layer 3-79

Caacutec nguyecircn lyacute điều khiển tắc nghẽn

Tắc nghẽn ldquoquaacute nhiều nguồn gửi quaacute nhanh vagrave quaacute nhiều

dữ liệu đến mạngrdquo khaacutec với điều khiển luồng caacutec biểu hiện

caacutec goacutei bị mất (tragraven bộ đệm tại caacutec router) caacutec độ trễ quaacute dagravei (xếp hagraveng trong bộ đệm

của router) lagrave 1 trong 10 vấn đề nan giải nhất

Transport Layer 3-80

Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 1

2 gửi 2 nhận 1 router caacutec bộ

đệm khocircng giới hạn

khocircng coacute truyền lại

caacutec độ trễ lớn hơn khi tắc nghẽn

năng suất coacute thể đạt tối đa

unlimited shared output link buffers

Host Ain original data

Host B

out

Transport Layer 3-81

Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 2

1 router caacutec bộ đệm coacute giới hạn becircn gửi truyền lại caacutec goacutei đatilde mất

chia sẻ vocirc hạncaacutec bộ đệm ouput

Host A in dữ liệu gốc

Host B

out

in dữ liệu gốc cugraveng với dữ liệu truyền lại

Transport Layer 3-82

Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 2 luocircn luocircn

truyền lại ldquohoagraven toagravenrdquo chỉ khi mất maacutet

truyền lại vigrave trễ (khocircng mất) lagravem cho lớn hơn với cugraveng

in

out

=

in

out

gt

in

out

ldquocaacutec chi phiacuterdquo của tắc nghẽn nhiều việc (truyền lại) caacutec truyền lại khocircng cần thiết liecircn kết nhiều bản sao của

goacutei

R2

R2in

ou

t

b

R2

R2in

ou

t

a

R2

R2in

ou

t

c

R4

R3

Transport Layer 3-83

Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 3 4 người gửi caacutec đường qua nhiều hop timeouttruyền lại

in

Hỏi điều gigrave xảy ra nếu vagrave tăng lecircn

in

chia sẻ vocirc hạncaacutec bộ đệm ouput

Host Ain dữ liệu gốc

Host B

out

in dữ liệu gốc cugraveng với dữ liệu truyền lại

Transport Layer 3-84

Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 3

ldquochi phiacuterdquo khaacutec của tắc nghẽn khi caacutec goacutei bị bỏ bất kỳ ldquokhả năng truyền

upstream dugraveng cho goacutei đoacute sẽ bị latildeng phiacuterdquo

Host A

Host B

o

u

t

Transport Layer 3-85

Caacutec caacutech tiếp cận đối với điều khiển tắc nghẽn

điều khiển tắc nghẽn end-end

khocircng coacute phản hồi rotilde ragraveng từ mạng

tắc nghẽn được suy ra từ việc quan saacutet caacutec hệ thống đầu cuối coacute mất maacutet trễ

tiếp cận được quản lyacute bởi TCP

điều khiển tắc nghẽn coacute sự hỗ trợ của mạng

caacutec router cung cấp phản hồi về caacutec hệ thống đầu cuối 1 bit duy nhất chỉ thị

tắc nghẽn (SNA DECbit TCPIP ECN ATM)

tốc độ sẽ gửi được xaacutec định rotilde ragraveng

2 caacutech

Transport Layer 3-86

Viacute dụ điều khiển tắc nghẽn ATM ABR

ABR tốc độ bit sẵn sagraveng

ldquodịch vụ mềm dẻordquo nếu đường gửi ldquochưa

hếtrdquo becircn gửi sẽ dugraveng

băng thocircng sẵn sagraveng nếu đường gửi tắc

nghẽn becircn gửi điều tiết với

tốc độ tối thiểu

RM (resource management)

gửi bởi becircn gửi rải raacutec với caacutec ocirc dữ liệu

caacutec bit trong ocirc thiết lập bởi caacutec switch bit NI khocircng tăng tốc độ

(tắc nghẽn nhẹ) bit CI tắc nghẽn rotilde rệt

Caacutec ocirc RM được trả về becircn gửi từ becircn nhận với nguyecircn vẹn caacutec bit

Transport Layer 3-87

Viacute dụ điều khiển tắc nghẽn ATM ABR

trường 2-byte ER trong ocirc RM switch đatilde tắc nghẽn coacute thể coacute giaacute trị ER thấp hơn trong ocirc tốc độ gửi do đoacute coacute thể được hỗ trợ tối đa trecircn đường

EFCI bit trong caacutec ocirc dữ liệu được cagravei giaacute trị 1 trong switch đatilde tắc nghẽn nếu ocirc dữ liệu đứng trước ocirc RM coacute cagravei EFCI becircn gửi sẽ cagravei

bit CI trong ocirc RM trả về

Transport Layer 3-88

Chương 3 Nội dung trigravenh bagravey

31 Caacutec dịch vụ lớp Transport

32 Multiplexing vagrave demultiplexing

33 Vận chuyển khocircng kết nối UDP

34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy

35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối

36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn

37 Điều khiển tắc nghẽn TCP

Transport Layer 3-89

TCP điều khiển tắc nghẽn additive tăng lecircn multiplicative giảm xuống

8 Kbytes

16 Kbytes

24 Kbytes

time

congestionwindow

Caacutech tiếp cận tăng tốc độ truyền (kiacutech thước cửa sổ) tigravem khả năng băng thocircng coacute thể cho đến khi coacute mất maacutet xảy ra additive tăng lecircn tăng CongWin bởi 1 MSS

mỗi RTT cho đến khi coacute mất maacutet xảy ra multiplicative giảm xuống bỏ CongWin trong

nửa giai đoạn sau khi mất maacutet

timekiacutech

thư

ớc

cửa

sổ

tắc

nghẽ

n

Tigravem kiếm băng thocircng

Transport Layer 3-90

TCP điều khiển tắc nghẽn chi tiết

becircn gửi hạn chế việc truyền LastByteSent-LastByteAcked

CongWin Cocircng thức

CongWin thay đổi chức năng lagrave nhận biết tắc nghẽn trecircn mạng

Lagravem thế nagraveo becircn gửi nhận biết tắc nghẽn

mất maacutet xảy ra = timeout hoặc 3 ack trugraveng lặp

becircn gửi giảm tốc độ (CongWin) sau khi mất maacutet xảy ra

3 cơ chế AIMD khởi động chậm thận trọng sau khi coacute

caacutec sự kiện timeout

tốc độ = CongWin

RTT Bytess

Transport Layer 3-91

TCP khởi động chậm

Khi kết nối bắt đầu CongWin = 1 MSS Viacute dụ MSS = 500 bytes

amp RTT = 200 ms tốc độ khởi tạo = 20

kbps

băng thocircng sẵn sagraveng coacute thể gtgt MSSRTT mong muốn nhanh

choacuteng tăng tốc lecircn tốc độ coacute thể đaacutep ứng

Khi kết nối bắt đầu tăng tốc lecircn rất nhanh cho đến khi sự cố mất maacutet xảy ra đầu tiecircn

Transport Layer 3-92

TCP khởi động chậm (tt)

Khi kết nối bắt đầu tăng tốc lecircn rất nhanh cho đến khi sự cố mất maacutet xảy ra đầu tiecircn nhacircn đocirci CongWin mỗi

RTT hoagraven thagravenh nhờ tăng CongWin ứng với mỗi ACK đatilde nhận

Tổng kết tốc độ khởi đầu lagrave chậm nhưng sau đoacute tăng tốc rất nhanh

Host A

1 đoạn

RTT

Host B

thời gian

2 đoạn

4 đoạn

Transport Layer 3-93

Tinh chếHỏi Khi nagraveo việc tăng

tốc trở thagravenh tuyến tiacutenh

Trả lời Khi CongWin đạt đến 12 giaacute trị của noacute trước khi timeout

Hiện thực Ngưỡng thay đổi Tại thời điểm coacute sự cố

mất maacutet ngưỡng được cagravei giaacute trị bằng frac12 của CongWin ngay trước đoacute

Transport Layer 3-94

Tinh chế nhận biết mất maacutet

Sau 3 ACK trugraveng lặp CongWin sẽ giảm 12 kiacutech thước cửa sổ

tăng tuyến tiacutenh nhưng sau sự cố

timeout CongWin thay giaacute trị

bằng 1 MSS kiacutech thước cửa sổ

tăng cấp lũy thừa khi đến một ngưỡng

thigrave tăng tuyến tiacutenh

3 ACK trugraveng nhau chỉ ra khả năng truyền của mạng timeout chỉ thị ldquonhiều cảnh baacuteordquo về tigravenh huống tắc nghẽn

Nguyecircn lyacute

Transport Layer 3-95

Tổng kết TCP điều khiển tắc nghẽn

Khi CongWin dưới Threshold becircn gửi đang trong giai đoạn khởi động chậm kiacutech thước cửa sổ tăng nhanh theo cấp lũy thừa

Khi CongWin trecircn Threshold becircn gửi đang trong giai đoạn traacutenh tắc nghẽn kiacutech thước cửa sổ tăng nhanh theo cấp tuyến tiacutenh

Khi coacute 3 ACK trugraveng lặp xảy ra Threshold = CongWin2 vagrave CongWin = Threshold

Khi timeout xảy ra Threshold = CongWin2 vagrave CongWin = 1 MSS

Transport Layer 3-96

TCP điều khiển tắc nghẽn becircn gửi

Trạng thaacutei Sự kiện TCP becircn gửi hagravenh động Diễn giải

Slow Start (SS)-Khởi động chậm

ACK baacuteo nhận cho dữ liệu chưa ACK trước đoacute

CongWin = CongWin + MSS If (CongWin gt Threshold) cagravei đặt trạng thaacutei ldquoTraacutenh tắc nghẽnrdquo

Hậu quả lagravem tăng gấp đocirci CongWin mỗi RTT

CongestionAvoidance (CA) ndashTraacutenh tắc nghẽn

ACK baacuteo nhận cho dữ liệu chưa ACK trước đoacute

CongWin = CongWin+MSS (MSSCongWin)

Additive tăng lecircn lagravem tăng CongWin lecircn 1 MSS mỗi RTT

SS hoặc CA Sự cố mất maacutet xảy ra khi thấy coacute 3 ACK trugraveng lặp

Threshold = CongWin2 CongWin = Thresholdcagravei đặt trạng thaacutei ldquoTraacutenh tắc nghẽnrdquo

Khocirci phục nhanh hiện thực giảm xuống multiplicative CongWin sẽ khocircng giảm xuống dưới 1 MSS

SS hoặc CA Timeout Threshold = CongWin2 CongWin = 1 MSScagravei đặt trạng thaacutei ldquoKhởi động chậmrdquo

Vagraveo chế độ ldquoKhởi động chậmrdquo

SS hoặc CA ACK trugraveng lặp

Đếm ACK tăng lecircn cho đoạn vừa được ACK

CongWin vagrave Threshold khocircng thay đổi

Transport Layer 3-97

TCP throughput

Throughout trung bigravenh của TCP biểu diễn qua kiacutech thước của sổ vagrave RTT Bỏ qua trạng thaacutei ldquoKhởi động chậmrdquo

Cho W lagrave kiacutech thước cửa sổ khi coacute mất maacutet xảy ra

Khi kiacutech thước cửa sổ = W lưu lượng = WRTT

Chỉ ngay sau khi mất maacutet cửa sổ giảm xuống = W2 lưu lượng = W2RTT

throughout trung bigravenh 075 WRTT

Transport Layer 3-98

TCP tương lai

Viacute dụ caacutec đoạn dagravei 1500 byte RTT 100ms lưu lượng 10 Gbps

Kiacutech thước cửa sổ yecircu cầu W = 83333 đoạn trecircn đường truyền

Lưu lượng trong caacutec trường hợp mất maacutet

L = 210-10

Phiecircn bản mới của TCP dagravenh cho nhu cầu tốc độ cao

LRTT

MSS221

Transport Layer 3-99

Mục tiecircu nếu K phiecircn lagravem việc TCP chia sẻ kết nối cổ chai của băng thocircng lagrave R mỗi phiecircn coacute tốc độ trung bigravenh lagrave RK

TCP kết nối 1

router cổ chaikhả năng R

TCP kết nối 2

TCP tiacutenh cocircng bằng

Transport Layer 3-100

Tại sao phải TCP cocircng bằng

2 phiecircn lagravem việc cạnh tranh nhau Additive tăng lưu lượng tăng multiplicative giảm lưu lượng tương xứng

R

R

chia sẻ băng thocircng bằng nhau

Connection 1 throughputConnect

ion 2

th

roughput

traacutenh tắc nghẽn additive tăng lecircnmất maacutet giảm cửa sổ bằng 12

traacutenh tắc nghẽn additive tăng lecircnmất maacutet giảm cửa sổ bằng 12

Transport Layer 3-101

TCP tiacutenh cocircng bằng (tt)

Tiacutenh cocircng bằng amp UDP nhiều ứng dụng

thường khocircng dugraveng TCP khocircng muốn tốc độ bị

điều tiết do điều khiển tắc nghẽn

Thay bằng dugraveng UDP truyền audiovideo với

tốc độ ổn định chịu được mất maacutet

Nghiecircn cứu giao thức thacircn thiện với TCP

Tiacutenh cocircng bằng amp caacutec kết nối TCP song song

khocircng coacute gigrave ngăn cản việc ứng dụng mở caacutec kết nối song song giữa 2 host

Trigravenh duyệt Web lagravem giống như thế

Viacute dụ tốc độ R hỗ trợ 9 kết nối ứng dụng mới yecircu cầu 1

TCP coacute tốc độ R10 ứng dụng mới yecircu cầu 11

TCP coacute tốc độ R2

Transport Layer 3-102

Mocirc higravenh trễ

Hỏi Mất bao lacircu để nhận 1 đối tượng từ Web server sau khi gửi yecircu cầu

Bỏ qua tắc nghẽn trễ bị ảnh hưởng bởi

thiết lập kết nối TCP trễ truyền dữ liệu khởi động chậm

Notation caacutec giả định Giả sử một kết nối giữa

client vagrave server coacute tốc độ R

S MSS (bits) O kiacutech thước đối tượng

(bits) khocircng truyền lại (khocircng

mất maacutet khocircng hỏng)

Kiacutech thước cửa sổ Giả định 1 cửa sổ tắc

nghẽn cố định coacute W đoạn Sau đoacute cửa sổ thay đổi

mocirc higravenh khởi động chậm

Transport Layer 3-103

Cửa sổ tắc nghẽn cố định (1)

Trường hợp đầu tiecircnWSR gt RTT + SR cho

đoạn đầu tiecircn trong cửa sổ trả về trước khi cửa sổ dữ liệu gửi ACK

trễ = 2RTT + OR

Transport Layer 3-104

Cửa sổ tắc nghẽn cố định (2)

Trường hợp thứ hai WSR lt RTT + SR sent

chờ cho ACK sau khi gửi dữ liệu

trễ = 2RTT + OR+ (K-1)[SR + RTT - WSR]

Transport Layer 3-105

TCP Mocirc higravenh trễ Khởi động chậm (1)

Bacircy giờ giả sử kiacutech thước cửa sổ tăng lecircn tugravey theo quaacute trigravenh khởi động chậm

Độ trễ của một đối tượng sẽ lagrave

R

S

R

SRTTP

R

ORTTLatency P )12(2

trong đoacute P lagrave số lần TCP rảnh ở tại server

1min KQP

- trong đoacute Q lagrave số lần server rảnh nếu đối tượng đatilde khởi tạo kiacutech thước

- vagrave K lagrave số lượng cửa sổ bao trugravem đối tượng

Transport Layer 3-106

TCP Mocirc higravenh trễ Khởi động chậm (2)

RTT

initia te TCPconnection

requestobject

first w indow= S R

second w indow= 2S R

third w indow= 4S R

fourth w indow= 8S R

com pletetransm issionobject

delivered

tim e atc lient

tim e atserver

Viacute dụbull OS = 15 đoạnbull K = 4 cửa sổbull Q = 2bull P = minK-1Q = 2

Server rảnh P=2 lần

Caacutec thagravenh phần trễbull 2 RTT dagravenh cho thiết lập kết nối vagrave yecircu cầubull OR để truyền đối tượngbullthời gian server rảnh bởi vigrave khởi động chậm

Server rảnh P = minK-1Q lần

Transport Layer 3-107

TCP Mocirc higravenh trễ(3)

R

S

R

SRTTPRTT

R

O

R

SRTT

R

SRTT

R

O

idleTimeRTTR

O

P

kP

k

P

pp

)12(][2

]2[2

2delay

1

1

1

th window after the timeidle 2 1 kR

SRTT

R

S k

ementacknowledg receivesserver until

segment send tostartsserver when from time RTTR

S

window kth the transmit totime2 1

R

Sk

RTT

initia te TCPconnection

requestobject

first w indow= S R

second w indow= 2S R

third w indow= 4S R

fourth w indow= 8S R

com pletetransm issionobject

delivered

tim e atc lient

tim e atserver

Transport Layer 3-108

TCP Mocirc higravenh trễ (4)

)1(log

)1(logmin

12min

222min

222min

2

2

110

110

S

OS

Okk

S

Ok

SOk

OSSSkK

k

k

k

caacutech tiacutenh toaacuten Q tương tự (xem HW)

K = số lượng cửa sổ bao trugravem đối tượngLagravem thế nagraveo tiacutenh được K

Transport Layer 3-109

HTTP Mocirc higravenh Giả sử trang Web chứa

1 trang HTML (kiacutech thước O bits) M higravenh ảnh (mỗi caacutei kiacutech thướcO bits)

HTTP khocircng bền vững M+1 TCP kết nối Thời gian đaacutep ứng = (M+1)OR + (M+1)2RTT + tổng số thời

gian rảnh HTTP bền vững

2 RTT để yecircu cầu vagrave nhận file HTML 1 RTT để yecircu cầu vagrave nhận M higravenh ảnh Thời gian đaacutep ứng = (M+1)OR + 3RTT + tổng số thời gian

rảnh HTTP khocircng bền vững với X kết nối song song

Giả sử MX lagrave số nguyecircn 1 TCP kết nối cho file MX thiết lập caacutec kết nối song song cho caacutec higravenh ảnh Thời gian đaacutep ứng = (M+1)OR + (MX + 1)2RTT + tổng số

thời gian rảnh

Transport Layer 3-110

02468

101214161820

28Kbps

100Kbps

1Mbps

10Mbps

non-persistent

persistent

parallel non-persistent

HTTP thời gian đaacutep ứng (giacircy)RTT = 100 msec O = 5 Kbytes M=10 vagrave X=5

Với băng thocircng thấp thời gian kết nối amp đaacutep ứng trội hơn thời gian truyền

Caacutec kết nối bền vững chỉ cho sự cải thiện khocircng đaacuteng kể trecircn caacutec kết nối song song

Transport Layer 3-111

0

10

20

30

40

50

60

70

28Kbps

100Kbps

1Mbps

10Mbps

non-persistent

persistent

parallel non-persistent

HTTP thời gian đaacutep ứng (giacircy)

RTT =1 sec O = 5 Kbytes M=10 and X=5

Với RTT lớn hơn thời gian đaacutep ứng trội hơn thời gian trễ chờ thiết lập kết nốiTCP amp khởi động chậm Caacutec kết nối bền vững bacircy giờ cho thấy cải thiện rotilde rệt đặc biệtvới caacutec mạng băng thocircng cao

Transport Layer 3-112

Chương 3 Tổng kết caacutec nguyecircn lyacute của caacutec

dịch vụ lớp transport multiplexing

demultiplexing truyền dữ liệu tin cậy điều khiển luồng điều khiển tắc nghẽn

khởi tạo vagrave hiện thực trong Internet UDP TCP

Tiếp theo nghiecircn cứu xong

caacutec vấn đề ldquongoagravei biecircnrdquo (caacutec lớp application transport)

chuẩn bị vagraveo phần ldquolotildeirdquo của mạng

  • Slide 1
  • Chương 3 Lớp Transport
  • Chương 3 Nội dung trigravenh bagravey
  • Caacutec dịch vụ vagrave giao thức Transport
  • Lớp Transport với lớp network
  • Caacutec giao thức lớp transport trecircn Internet
  • Slide 7
  • Multiplexingdemultiplexing
  • Demultiplexing lagravem việc như thế nagraveo
  • Demultiplexing khocircng kết nối
  • Demultiplexing khocircng kết nối (tiếp)
  • Demultiplexing hướng kết nối
  • Demultiplexing hướng kết nối (tiếp)
  • Demultiplexing hướng kết nối Threaded Web Server
  • Slide 15
  • UDP User Datagram Protocol [RFC 768]
  • UDP (tt)
  • UDP checksum
  • Viacute dụ Checksum
  • Slide 20
  • Caacutec nguyecircn lyacute truyền dữ liệu tin cậy
  • Slide 22
  • Slide 23
  • Truyền dữ liệu tin cậy
  • Slide 25
  • Rdt10 truyền dữ liệu tin cậy trecircn 1 kecircnh truyền tin cậy
  • Rdt20 kecircnh với caacutec lỗi
  • rdt20 đặc tả FSM
  • rdt20 hoạt động khi khocircng lỗi
  • rdt20 hoạt động khi coacute lỗi
  • rdt20 coacute lỗ hổng nghiecircm trọng
  • rdt21 người gửi quản lyacute caacutec ACKNAK bị hỏng
  • Slide 33
  • rdt21 thảo luận
  • rdt22 một giao thức khocircng cần NAK
  • rdt22 gửi nhận caacutec mảnh
  • rdt30 caacutec kecircnh với lỗi vagrave mất maacutet
  • rdt30 gửi
  • hagravenh động của rdt30
  • Slide 40
  • Hiệu suất của rdt30
  • rdt30 hoạt động dừng-vagrave-chờ
  • Caacutec giao thức Pipelined
  • Pipelining độ khả dụng tăng
  • Go-Back-N
  • GBN becircn gửi mở rộng FSM
  • GBN becircn nhận mở rộng FSM
  • GBN hoạt động
  • Lặp coacute lựa chọn
  • Lặp coacute lựa chọn caacutec cửa sổ gửi nhận
  • Slide 51
  • Hoạt động của lặp coacute lựa chọn
  • Lặp coacute lựa chọn tigravenh trạng khoacute giải quyết
  • Slide 54
  • TCP Tổng quan RFCs 793 1122 1323 2018 2581
  • TCP cấu truacutec đoạn
  • Caacutec số thứ tự TCP vagrave ACK
  • TCP Round Trip Time vagraveTimeout
  • TCP Round Trip Time vagrave Timeout
  • Viacute dụ đaacutenh giaacute RTT
  • Slide 61
  • TCP truyền dữ liệu tin cậy
  • TCP caacutec sự kiện
  • TCP becircn gửi (đơn giản)
  • TCP caacutec tigravenh huống truyền lại
  • TCP caacutec tigravenh huống truyền lại (tt)
  • TCP sinh ra ACK [RFC 1122 RFC 2581]
  • Truyền lại nhanh
  • Giải thuật truyền lại nhanh
  • Slide 70
  • TCP điều khiển luồng
  • TCP điều khiển luồng caacutech lagravem
  • Slide 73
  • TCP quản lyacute kết nối
  • TCP quản lyacute kết nối (tt)
  • Slide 76
  • Slide 77
  • Slide 78
  • Caacutec nguyecircn lyacute điều khiển tắc nghẽn
  • Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 1
  • Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 2
  • Slide 82
  • Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 3
  • Slide 84
  • Caacutec caacutech tiếp cận đối với điều khiển tắc nghẽn
  • Viacute dụ điều khiển tắc nghẽn ATM ABR
  • Slide 87
  • Slide 88
  • TCP điều khiển tắc nghẽn additive tăng lecircn multiplicative giảm xuống
  • TCP điều khiển tắc nghẽn chi tiết
  • TCP khởi động chậm
  • TCP khởi động chậm (tt)
  • Tinh chế
  • Tinh chế nhận biết mất maacutet
  • Tổng kết TCP điều khiển tắc nghẽn
  • TCP điều khiển tắc nghẽn becircn gửi
  • TCP throughput
  • TCP tương lai
  • TCP tiacutenh cocircng bằng
  • Tại sao phải TCP cocircng bằng
  • TCP tiacutenh cocircng bằng (tt)
  • Mocirc higravenh trễ
  • Cửa sổ tắc nghẽn cố định (1)
  • Cửa sổ tắc nghẽn cố định (2)
  • TCP Mocirc higravenh trễ Khởi động chậm (1)
  • TCP Mocirc higravenh trễ Khởi động chậm (2)
  • TCP Mocirc higravenh trễ(3)
  • TCP Mocirc higravenh trễ (4)
  • HTTP Mocirc higravenh
  • Slide 110
  • Slide 111
  • Chương 3 Tổng kết

Transport Layer 3-17

UDP (tt)

thường dugraveng cho caacutec ứng dụng streaming multimedia chịu mất maacutet cảm nhận tốc độ

ngoagravei ra UDP dugraveng DNS SNMP

truyền tin cậy trecircn UDP thecircm khả năng nagravey tại lớp application sửa lỗi

source port dest port

32 bits

dữ liệu ứng dụng

(thocircng điệp)

dạng thức đoạn UDP

length checksumĐộ dagravei

đoạn UDPbao gồm cả

header

Transport Layer 3-18

UDP checksum

Người gửi đối xử caacutec nội dung

đoạn như một chuỗi caacutec số nguyecircn 16-bit

checksum bổ sung(tổng bugrave 1) của caacutec nội dung đoạn

đặt giaacute trị checksum vagraveo trường UDP checksum

Người nhận tiacutenh toaacuten checksum của

đoạn đatilde nhận kiểm tra giaacute trị trecircn coacute bằng

với giaacute trị trong trường checksum NO ndash coacute lỗi xảy ra YES ndash khocircng coacute lỗi Nhưng coacute thể cograven lỗi

khaacutec nữa Xem tiếp phần sau hellip

Mục tiecircu kiểm tra caacutec ldquolỗirdquo (caacutec bit cờ đatilde bật lecircn) trong caacutec đoạn đatilde truyền

Transport Layer 3-19

Viacute dụ Checksum Lưu yacute

Khi cộng caacutec số một bit nhớ ở phiacutea cao nhất coacute thể sẽ phải thecircm vagraveo kết quả

Viacute dụ cộng hai số nguyecircn 16-bit

1 1 1 1 0 0 1 1 0 0 1 1 0 0 1 1 01 1 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1

1 1 0 1 1 1 0 1 1 1 0 1 1 1 0 1 1

1 1 0 1 1 1 0 1 1 1 0 1 1 1 1 0 01 0 1 0 0 0 1 0 0 0 1 0 0 0 0 1 1

bit dư

tổngchecksum

Transport Layer 3-20

Chương 3 Nội dung trigravenh bagravey

31 Caacutec dịch vụ lớp Transport

32 Multiplexing vagrave demultiplexing

33 Vận chuyển khocircng kết nối UDP

34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy

35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối

36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn

37 Điều khiển tắc nghẽn TCP

Transport Layer 3-21

Caacutec nguyecircn lyacute truyền dữ liệu tin cậy quan trọng trong caacutec lớp application transport link lagrave danh saacutech 10 vấn đề quan trọng nhất của mạng

caacutec đặc thugrave của kecircnh truyền khocircng tin cậy sẽ xaacutec định sự phức tạp của giao thức truyền dữ liệu data transfer protocol (rdt)

Transport Layer 3-22

Caacutec nguyecircn lyacute truyền dữ liệu tin cậy quan trọng trong caacutec lớp application transport link lagrave danh saacutech 10 vấn đề quan trọng nhất của mạng

caacutec đặc thugrave của kecircnh truyền khocircng tin cậy sẽ xaacutec định sự phức tạp của giao thức truyền dữ liệu data transfer protocol (rdt)

Transport Layer 3-23

Caacutec nguyecircn lyacute truyền dữ liệu tin cậy quan trọng trong caacutec lớp application transport link lagrave danh saacutech 10 vấn đề quan trọng nhất của mạng

caacutec đặc thugrave của kecircnh truyền khocircng tin cậy sẽ xaacutec định sự phức tạp của giao thức truyền dữ liệu data transfer protocol (rdt)

Transport Layer 3-24

Truyền dữ liệu tin cậy

sendside

receiveside

rdt_send() được gọi bởi lớp app Chuyển dữ liệu cần truyền

đến lớp cao hơn becircn nhận

udt_send() được gọi bởi rdt để truyền caacutec goacutei trecircn kecircnh khocircng tin cậy đến nơi

nhận

rdt_rcv() được gọi khi goacutei đến kecircnh becircn nhận

deliver_data() được gọi bởi rdt để truyền dữ liệu

đến lớp cao hơn

Transport Layer 3-25

Truyền dữ liệu tin cậy

Sẽ chỉ xem xeacutet truyền dữ liệu theo 1 hướng duy

nhất nhưng điều khiển luồng thocircng tin sẽ theo cả 2

chiều

dugraveng maacutey trạng thaacutei hữu hạn (finite state machines-FSM) để xaacutec định người gửi người nhận

trthaacutei1

trthaacutei2

sự kiện gacircy ra trạng thaacutei truyềncaacutec hagravenh động xảy ra khi truyền

trạng thaacutei khi ở ldquotrạng thaacuteirdquo nagravey thigrave

trạng thaacutei kế tiếp duy nhất được xaacutec định bởi sự kiện kế

tiếp

sự kiệncaacutec hagravenh động

Transport Layer 3-26

Rdt10 truyền dữ liệu tin cậy trecircn 1 kecircnh truyền tin cậy

kecircnh ưu tiecircn tin cậy hoagraven toagraven khocircng coacute caacutec lỗi khocircng mất maacutet caacutec goacutei

caacutec FSM phacircn biệt cho người gửi người nhận người gửi gửi dữ liệu vagraveo kecircnh ưu tiecircn người nhận nhận dữ liệu từ kecircnh ưu tiecircn

chờ gọi từ lớp trecircn packet = make_pkt(data)

udt_send(packet)

rdt_send(data)

extract (packetdata)deliver_data(data)

chờ gọi từ lớp dưới

rdt_rcv(packet)

người gửi người nhận

Transport Layer 3-27

Rdt20 kecircnh với caacutec lỗi

kecircnh ưu tiecircn coacute thể bật lecircn một số bit trong goacutei checksum để kiểm tra caacutec lỗi

Hỏi lagravem sao khocirci phục caacutec lỗi acknowledgements (ACKs) becircn nhận rotilde ragraveng thocircng

baacuteo cho becircn gửi rằng quaacute trigravenh nhận goacutei tốt negative acknowledgements (NAKs) becircn nhận rotilde ragraveng

thocircng baacuteo cho becircn gửi rằng quaacute trigravenh nhận goacutei coacute lỗi người gửi gửi lại goacutei nagraveo được xaacutec nhận lagrave NAK

caacutec cơ chế mới trong rdt20 (sau rdt10) kiểm tra lỗi nhận phản hồi caacutec thocircng điệp điều khiển (ACKNAK)

becircn nhận becircn gửi

Transport Layer 3-28

rdt20 đặc tả FSM

chờ gọi từ lớp trecircn

snkpkt = make_pkt(data checksum)udt_send(sndpkt)

extract(rcvpktdata)deliver_data(data)udt_send(ACK)

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)

rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp isNAK(rcvpkt)

udt_send(NAK)

rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)

chờ ACK hoặc NAK

chờ gọi từ lớp dưới

người gửi

người nhậnrdt_send(data)

Transport Layer 3-29

rdt20 hoạt động khi khocircng lỗi

chờ gọi từ lớp dưới

snkpkt = make_pkt(data checksum)udt_send(sndpkt)

extract(rcvpktdata)deliver_data(data)udt_send(ACK)

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)

rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp isNAK(rcvpkt)

udt_send(NAK)

rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)

chờ ACK hoặc NAK

chờ gọi từ lớp dưới

rdt_send(data)

Transport Layer 3-30

rdt20 hoạt động khi coacute lỗi

chờ gọi từ lớp dưới

snkpkt = make_pkt(data checksum)udt_send(sndpkt)

extract(rcvpktdata)deliver_data(data)udt_send(ACK)

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)

rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp isNAK(rcvpkt)

udt_send(NAK)

rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)

chờ ACK hoặc NAK

chờ gọi từ lớp dưới

rdt_send(data)

Transport Layer 3-31

rdt20 coacute lỗ hổng nghiecircm trọngĐiều gigrave xảy ra nếu

ACKNAK bị hỏng người gửi khocircng biết điều

gigrave đatilde xảy ra tại becircn nhận

khocircng thể đơn phương truyền lại khả năng trugraveng lặp

Quản lyacute trugraveng lặp người gửi truyền lại goacutei

hiện tại nếu ACKNAK bị hỏng

người gửi thecircm số thứ tự vagraveo mỗi goacutei

người nhận hủy (khocircng nhận) goacutei trugraveng lặp

Người gửi gửi 1 goacutei sau đoacute dừng lại chờ phản hồitừ người nhận

dừng vagrave chờ

Transport Layer 3-32

rdt21 người gửi quản lyacute caacutec ACKNAK bị hỏng

chờ gọi 0 từ lớp trecircn

sndpkt = make_pkt(0 data checksum)udt_send(sndpkt)

rdt_send(data)

chờ ACK hoặc NAK

0 udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) ||isNAK(rcvpkt) )

sndpkt = make_pkt(1 data checksum)udt_send(sndpkt)

rdt_send(data)

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) ||isNAK(rcvpkt) )

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt)

chờ gọi 1 từ lớp trecircn

chờ ACK hoặc NAK

1

Transport Layer 3-33

rdt21 người gửi quản lyacute caacutec ACKNAK bị hỏng

chờ 0 từ dưới

sndpkt = make_pkt(NAK chksum)udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp not corrupt(rcvpkt) ampamp has_seq0(rcvpkt)

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp has_seq1(rcvpkt)

extract(rcvpktdata)deliver_data(data)sndpkt = make_pkt(ACK chksum)udt_send(sndpkt)

chờ 1 từ dưới

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp has_seq0(rcvpkt)

extract(rcvpktdata)deliver_data(data)sndpkt = make_pkt(ACK chksum)udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp (corrupt(rcvpkt)

sndpkt = make_pkt(ACK chksum)udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp not corrupt(rcvpkt) ampamp has_seq1(rcvpkt)

rdt_rcv(rcvpkt) ampamp (corrupt(rcvpkt)

sndpkt = make_pkt(ACK chksum)udt_send(sndpkt)

sndpkt = make_pkt(NAK chksum)udt_send(sndpkt)

Transport Layer 3-34

rdt21 thảo luận

người gửi số thứ tự thecircm vagraveo

goacutei chỉ cần hai số thứ tự

(01) lagrave đủ Tại sao phải kiểm tra nếu việc

nhận ACKNAK bị hỏng

số trạng thaacutei tăng lecircn 2 lần trạng thaacutei phải ldquonhớrdquo

goacutei ldquohiện tạirdquo coacute số thứ tự lagrave 0 hay 1

người nhận phải kiểm tra coacute

nhận trugraveng goacutei khocircng trạng thaacutei chỉ rotilde coacute

hay khocircng mong chờ số thứ tự 0 hoặc 1

chuacute yacute người nhận khocircng biết ACKNAK vừa rồi của noacute coacute được người gửi nhận tốt hay khocircng

Transport Layer 3-35

rdt22 một giao thức khocircng cần NAK

chức năng giống như rdt21 chỉ dugraveng caacutec ACK thay cho NAK người nhận gửi ACK cho goacutei vừa

rồi đatilde nhận tốt người nhận phải rotilde ragraveng chegraven số thứ tự của goacutei vừa ACK

trugraveng ACK tại người gửi hậu quả giống như hagravenh động của NAK truyền lại goacutei vừa rồi

Transport Layer 3-36

rdt22 gửi nhận caacutec mảnh

Chờ cho gọi 0 từ

trecircn

sndpkt = make_pkt(0 data checksum)udt_send(sndpkt)

rdt_send(data)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) || isACK(rcvpkt1) )

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt0)

Chờ cho ACK

0

gửi phacircn mảnhFSM

Chờ cho gọi

0 từ dưới

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp has_seq1(rcvpkt)

extract(rcvpktdata)deliver_data(data)sndpkt = make_pkt(ACK1 chksum)udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp (corrupt(rcvpkt) || has_seq1(rcvpkt))

udt_send(sndpkt)

nhận phacircn mảnhFSM

Transport Layer 3-37

rdt30 caacutec kecircnh với lỗi vagrave mất maacutet

Giả định mới kecircnh ưu tiecircn cũng coacute thể lagravem mất caacutec goacutei (dữ liệu hoặc caacutec ACK) checksum số thứ tự

caacutec ACK caacutec việc truyền lại sẽ hỗ trợ nhưng khocircng đủ

Caacutech tiếp cận người gửi chờ ACK trong khoảng thời gian ldquochấp nhận đượcrdquo

truyền lại nếu khocircng nhận ACK trong khoảng thời gian nagravey

nếu goacutei (hoặc ACK) chỉ trễ (khocircng mất) truyền lại sẽ gacircy trugraveng

nhưng dugraveng số thứ tự sẽ giải quyết được

người nhận phải xaacutec định số thứ tự của goacutei vừa gửi ACK

cần bộ định thigrave đếm lugravei

Transport Layer 3-38

rdt30 gửi

sndpkt = make_pkt(0 data checksum)udt_send(sndpkt)start_timer

rdt_send(data)

Chờ cho

ACK 0

rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) ||isACK(rcvpkt1) )

Chờ cho gọi 1 từ trecircn

sndpkt = make_pkt(1 data checksum)udt_send(sndpkt)start_timer

rdt_send(data)

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt0)

rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) ||isACK(rcvpkt0) )

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt1)

stop_timerstop_timer

udt_send(sndpkt)start_timer

timeout

udt_send(sndpkt)start_timer

timeout

rdt_rcv(rcvpkt)

Chờ cho gọi 0 từ trecircn

Chờ cho

ACK 1

rdt_rcv(rcvpkt)

Transport Layer 3-39

hagravenh động của rdt30

Transport Layer 3-40

hagravenh động của rdt30

Transport Layer 3-41

Hiệu suất của rdt30

rdt30 lagravem việc được nhưng đaacutenh giaacute hiệu suất hơi rắc rối viacute dụ liecircn kết 1 Gbps trễ lan truyền giữa hai đầu cuối lagrave 15

ms goacutei 1KB

T truyền = 8kbpkt109 bsec

= 8 microsec

U sender độ khả dụng ndash

U sender

= 008

30008 = 000027

microseconds

L R

RTT + L R =

L (độ dagravei goacutei tiacutenh bằng bits)R (tốc độ truyền bps)

=

goacutei 1KB mỗi 30 msec -gt 33kBs trecircn đường truyền 1 Gbps giao thức network hạn chế việc dugraveng caacutec tagravei nguyecircn vật

lyacute

Transport Layer 3-42

rdt30 hoạt động dừng-vagrave-chờ

goacutei đầu tiecircn đatilde truyền t = 0

gửi nhận

RTT

goacutei cuối cugraveng đatilde truyền t = L R

goacutei đầu tiecircn đatilde đếngoacutei cuối cugraveng đatilde đến gửi ACK

ACK đến gửi goacutei kế tiếp t = RTT + L R

U sender

= 008

30008 = 000027

microseconds

L R

RTT + L R =

Transport Layer 3-43

Caacutec giao thức Pipelined

Pipelining người gửi cho pheacutep gửi nhiều goacutei đồng thời khocircng cần chờ baacuteo nhận được nhoacutem caacutec số thứ tự phải tăng dần phải coacute bộ nhớ đệm tại nơi gửi vagravehoặc nơi nhận

hai dạng phổ biến của caacutec giao thức pipelined go-Back-N Lặp coacute lựa chọn

Transport Layer 3-44

Pipelining độ khả dụng tăng

goacutei đầu tiecircn đatilde truyền t = 0

sender receiver

RTT

goacutei cuối cugraveng đatilde truyền t = L R

goacutei đầu tiecircn đatilde đếngoacutei cuối cugraveng đatilde đến gửi ACK

ACK đến gửi goacuteikế tiếp t = RTT + L R

bit cuối của goacutei thứ 2 đến gửi ACKbit cuối của goacutei thứ 3 đến gửi ACK

U sender

= 024

30008 = 00008

microseconds

3 L R

RTT + L R =

Độ khả dụng tăng lecircngấp 3 lần

Transport Layer 3-45

Go-Back-NBecircn gửi k-bit số thứ tự trong header của goacutei ldquocửa sổrdquo tăng lecircn đến N cho pheacutep gửi caacutec goacutei liecircn tục khocircng cần ACK

ACK(n) ACKs tất cả caacutec goacutei đến chứa số thứ tự n ndash ldquoACK tiacutech lũyrdquo coacute thể nhận caacutec ACK trugraveng lặp (xem becircn nhận)

định thigrave cho mỗi goacutei trecircn đường truyền timeout(n) gửi lại goacutei n vagrave tất cả caacutec goacutei coacute số thứ tự cao

hơn trong cửa sổ

Transport Layer 3-46

GBN becircn gửi mở rộng FSM

chờ start_timerudt_send(sndpkt[base])udt_send(sndpkt[base+1])hellipudt_send(sndpkt[nextseqnum-1])

timeout

rdt_send(data)

if (nextseqnum lt base+N) sndpkt[nextseqnum] = make_pkt(nextseqnumdatachksum) udt_send(sndpkt[nextseqnum]) if (base == nextseqnum) start_timer nextseqnum++ else refuse_data(data)

base = getacknum(rcvpkt)+1If (base == nextseqnum) stop_timer else start_timer

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)

base=1nextseqnum=1

rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)

Transport Layer 3-47

GBN becircn nhận mở rộng FSM

ACK-duy nhất luocircn luocircn gửi ACK cho goacutei đatilde nhận đuacuteng với số thứ tự xếp hạng cao nhất coacute thể sinh ra caacutec ACK trugraveng nhau chỉ cần nhớ expectedseqnum

goacutei khocircng theo thứ tự hủy -gt khocircng nhận vagraveo bộ đệm gửi lại ACK với số thứ tự xếp hạng cao nhất

chờ

udt_send(sndpkt)

default

rdt_rcv(rcvpkt) ampamp notcurrupt(rcvpkt) ampamp hasseqnum(rcvpktexpectedseqnum)

extract(rcvpktdata)deliver_data(data)sndpkt = make_pkt(expectedseqnumACKchksum)udt_send(sndpkt)expectedseqnum++

expectedseqnum=1sndpkt = make_pkt(expectedseqnumACKchksum)

Transport Layer 3-48

GBN hoạt động

Transport Layer 3-49

Lặp coacute lựa chọn

becircn nhận thocircng baacuteo đatilde nhận đuacuteng tất cả từng goacutei một đệm (buffer) caacutec goacutei nếu cần thiết

becircn gửi chỉ gửi lại caacutec goacutei nagraveo khocircng nhận được ACK becircn gửi định thigrave đối với mỗi goacutei khocircng gửi ACK

cửa sổ becircn gửi N số thứ tự liecircn tục hạn chế số thứ tự caacutec goacutei khocircng gửi ACK

Transport Layer 3-50

Lặp coacute lựa chọn caacutec cửa sổ gửi nhận

Transport Layer 3-51

Lặp coacute lựa chọn

dữ liệu từ lớp trecircn nếu số thứ tự kế tiếp sẵn

sagraveng trong cửa sổ gửi goacutei

timeout(n) gửi lại goacutei n taacutei khởi tạo

bộ định thigrave

ACK(n) trong [sendbasesendbase+N]

đaacutenh dấu goacutei n lagrave đatilde nhận nếu goacutei khocircng ACK coacute n

nhỏ nhất dịch chuyển cửa sổ base đến số thứ tự khocircng ACK kế tiếp

Gửigoacutei n trong [rcvbase

rcvbase+N-1]

gửi ACK(n) khocircng thứ tự đệm

(buffer) coacute thứ tự truyền (cũng

truyền caacutec goacutei đatilde đệm coacute thứ tự) dịch chuyển cửa sổ đến goacutei chưa nhận kế tiếp

goacutei n trong [rcvbase-Nrcvbase-1]

ACK(n)

ngược lại lờ đi

Nhận

Transport Layer 3-52

Hoạt động của lặp coacute lựa chọn

Transport Layer 3-53

Lặp coacute lựa chọntigravenh trạng khoacute giải quyếtViacute dụ Số thứ tự 0 1 2 3 Kiacutech thước cửa sổ = 3

becircn nhận khocircng thấy sự khaacutec nhau trong 2 tigravenh huống

chuyển khocircng chiacutenh xaacutec dữ liệu trugraveng lặp như dữ liệu mới trong (a)

Hỏi quan hệ giữa datildey số thứ tự vagrave kiacutech thước cửa sổ

Transport Layer 3-54

Chương 3 Nội dung trigravenh bagravey

31 Caacutec dịch vụ lớp Transport

32 Multiplexing vagrave demultiplexing

33 Vận chuyển khocircng kết nối UDP

34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy

35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối

36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn

37 Điều khiển tắc nghẽn TCP

Transport Layer 3-55

TCP Tổng quan RFCs 793 1122 1323 2018 2581

dữ liệu full duplex luồng dữ liệu đi 2 chiều

trong cugraveng một kết nối MSS maximum

segment size ndash kiacutech thước đoạn tối đa

hướng kết nối bắt tay (trao đổi caacutec

thocircng điệp điều khiển) trạng thaacutei becircn gửi becircn nhận trước khi trao đổi dữ liệu

điều khiển luồng becircn gửi sẽ khocircng lấn aacutet

becircn nhận

point-to-point một becircn gửi một becircn

nhận tin cậy dograveng byte coacute

thứ tự khocircng ldquoranh giới thocircng

điệprdquo kecircnh liecircn lạc

TCP điều khiển luồng vagrave tắc nghẽn thiết lập kiacutech thước cửa sổ

caacutec bộ đệm gửi amp nhận

socketdoor

T C Psend buffer

T C Preceive buffer

socketdoor

segm ent

applicationwrites data

applicationreads data

Transport Layer 3-56

TCP cấu truacutec đoạn

port nguồn port điacutech

32 bits

dữ liệu ứng dụng(độ dagravei thay đổi)

số thứ tự

số ACKcửa sổ nhận

con trỏ URGchecksum

FSRPAUheadlen

notused

Tugravey chọn (độ dagravei thay đổi)

URG dữ liệu khẩn cấp(thường khocircng dugraveng)

ACK ACK hợp lệ

PSH push data now(thường khocircng dugraveng)

RST SYN FINthiết lập kết nối

(caacutec lệnh thiết lậpchia nhỏ)

số byte becircn nhận sẵn sagraveng chấp nhận

đếm bởi số bytecủa dữ liệu

Internetchecksum

(giống UDP)

Transport Layer 3-57

Caacutec số thứ tự TCP vagrave ACKCaacutec số thứ tự

dograveng byte ldquođaacutenh sốrdquo byte đầu tiecircn trong dữ liệu của đoạn

caacutec ACK số thứ tự của byte

kế tiếp được chờ đợi từ phiacutea becircn kia

ACK tiacutech lũyHỏi lagravem thế nagraveo becircn

nhận quản lyacute caacutec đoạn khocircng thứ tự Trả lời TCP khocircng

đề cập tugravey thuộc người hiện thực

Host A Host B

Seq=42 ACK=79 data = lsquoCrsquo

Seq=79 ACK=43 data = lsquoCrsquo

Seq=43 ACK=80

UsernhậplsquoCrsquo

host ACKsnhận phản hồi

lsquoCrsquo

host ACKsbaacuteo nhận

lsquoCrsquo phản hồingược lại lsquoCrsquo

timetigravenh huống telnet đơn giản

Transport Layer 3-58

TCP Round Trip Time vagraveTimeout

Hỏi Lagravem thế nagraveo để thiết lập giaacute trị TCP timeout

dagravei hơn RTT khaacutec với RTT

quaacute ngắn timeout sớm truyền lại khocircng

cần thiết quaacute dagravei phản ứng

chậm đối với việc mất maacutet goacutei

Hỏi Lagravem thế nagraveo để thiết lập RTT

SampleRTT thời gian được đo từ khi truyền đoạn đến khi baacuteo nhận ACK lờ đi việc truyền lại

SampleRTT sẽ thay đổi muốn ước lượng RTT ldquomượt hơnrdquo tiacutenh trung bigravenh một số giaacute

trị đo được gần đoacute khocircng chỉ SampleRTT hiện tại

Transport Layer 3-59

TCP Round Trip Time vagrave Timeout

EstimatedRTT = (1- )EstimatedRTT + SampleRTT

giaacute trị đặc trưng = 0125

Transport Layer 3-60

Viacute dụ đaacutenh giaacute RTTRTT gaiacsumassedu to fantasiaeurecomfr

100

150

200

250

300

350

1 8 15 22 29 36 43 50 57 64 71 78 85 92 99 106

time (seconnds)

RTT

(mill

isec

onds

)

SampleRTT Estimated RTT

Transport Layer 3-61

TCP Round Trip Time vagrave Timeout

Thiết lập timeout EstimtedRTT cộng ldquohệ số dự trữ an toagravenrdquo

sự biến thiecircn lớn trong EstimatedRTT -gt hệ số dự trữ an toagraven lớn hơn ước lượng đầu tiecircn về sự biến thiecircn của SampleRTT từ EstimatedRTT

TimeoutInterval = EstimatedRTT + 4DevRTT

DevRTT = (1-)DevRTT + |SampleRTT-EstimatedRTT|

(tiecircu biểu = 025)

Sau đoacute thiết lập timeout interval

Transport Layer 3-62

TCP truyền dữ liệu tin cậy

TCP tạo dịch vụ rdt trecircn dịch vụ khocircng tin cậy IP

caacutec đoạn Pipelined caacutec ACK tiacutech lũy TCP dugraveng bộ định thigrave

truyền lại đơn

Truyền lại được kiacutech hoạt bởi caacutec sự kiện timeout caacutec ack trugraveng lặp

luacutec đầu khảo saacutet caacutec becircn gửi TCP đơn giản lờ đi caacutec ack trugraveng lặp lờ đi điều khiển luồng

điều khiển tắc nghẽn

Transport Layer 3-63

TCP caacutec sự kiệndữ liệu đatilde nhận từ ứng

dụng tạo đoạn với số thứ

tự của noacute số thứ tự lagrave số theo

byte dữ liệu đầu tiecircn khởi động bộ định thigrave

nếu chưa chạy khoảng thời gian hết

hạn TimeOutInterval

timeout gửi lại đoạn nagraveo gacircy

ra timeout khởi động lại bộ định

thigrave Ack đatilde nhận

cập nhật caacutei gigrave sẽ được ACK

khởi động bộ định thigrave nếu coacute caacutec đoạn cograven chờ

Transport Layer 3-64

TCP becircn gửi(đơn giản)

NextSeqNum = InitialSeqNum SendBase = InitialSeqNum

loop (forever) switch(event)

event data received from application above create TCP segment with sequence number NextSeqNum if (timer currently not running) start timer pass segment to IP NextSeqNum = NextSeqNum + length(data)

event timer timeout retransmit not-yet-acknowledged segment with smallest sequence number start timer

event ACK received with ACK field value of y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer

end of loop forever

Chuacute thiacutechbull SendBase-1 byte vừa được ACK tiacutech lũy Viacute dụbull SendBase-1 = 71y= 73 vigrave thế becircn nhận muốn 73+ y gt SendBase vigrave thế dữ liệu mới được chấp nhận

Transport Layer 3-65

TCP caacutec tigravenh huống truyền lại

Host A

Seq=100 20 bytes data

ACK=100

timetimeout sớm

Host B

Seq=92 8 bytes data

ACK=120

Seq=92 8 bytes data

Seq=

92

tim

eout

ACK=120

Host A

Seq=92 8 bytes data

ACK=100

loss

tim

eout

tigravenh huống mất ACK

Host B

X

Seq=92 8 bytes data

ACK=100

time

Seq=

92

tim

eout

SendBase= 100

SendBase= 120

SendBase= 120

Sendbase= 100

Transport Layer 3-66

TCP caacutec tigravenh huống truyền lại (tt)Host A

Seq=92 8 bytes data

ACK=100

loss

tim

eout

Cumulative ACK scenario

Host B

X

Seq=100 20 bytes data

ACK=120

time

SendBase= 120

Transport Layer 3-67

TCP sinh ra ACK [RFC 1122 RFC 2581]

Sự kiện tại becircn nhận

Đoạn đến với đuacuteng số thứ tự mong muốn Tất cả dữ liệu đếnđatilde được ACK

Đoạn đến với đuacuteng số thứ tự mong muốn Một đoạn khaacutec đangchờ ACK

Caacutec đoạn đến khocircng thứ tựlớn hơn số thứ tự đoạn mong muốnCoacute khoảng trống

Đoạn đếnlấp đầy từng phần hoặc toagraven bộkhoảng trống

TCP becircn nhận hagravenh động

ACK trễ Chờ đến 500mscho đoạn kế tiếp Nếu khocircng coacute đoạnkế tiếp gửi ACK

Gửi ngay một ACK tiacutech lũy chấp nhậncho cả caacutec đoạn theo thứ tự

Gửi ngay ACK trugraveng lặp chỉ thị số thứ tựđoạn của byte kế tiếp đang mong chờ

Gửi ngay ACK với điều kiện lagrave đoạnbắt đầu ngay điểm coacute khoảng trống

Transport Layer 3-68

Truyền lại nhanh

Chu kỳ Time-out thường tương đối dagravei độ trễ dagravei trước khi gửi

lại goacutei đatilde mất

Xaacutec nhận caacutec đoạn đatilde mất bằng caacutec ACK trugraveng lặp becircn gửi thường gửi

nhiều đoạn song song Nếu đoạn bị mất sẽ

xảy ra tigravenh trạng giống như nhiều ACK trugraveng nhau

Nếu becircn gửi nhận 3 ACK của cugraveng một dữ liệu noacute cho lagrave đoạn sau dữ liệu đatilde ACK bị mất Truyền lại nhanh gửi

lại đoạn trước khi bộ định thigrave hết hạn

Transport Layer 3-69

sự kiện ACK đatilde nhận với trường lagrave y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer else increment count of dup ACKs received for y if (count of dup ACKs received for y = 3) resend segment with sequence number y

Giải thuật truyền lại nhanh

một ACK trugraveng lặp cho đoạn đatilde được ACK

Truyền lại nhanh

Transport Layer 3-70

Chương 3 Nội dung trigravenh bagravey

31 Caacutec dịch vụ lớp Transport

32 Multiplexing vagrave demultiplexing

33 Vận chuyển khocircng kết nối UDP

34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy

35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối

36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn

37 Điều khiển tắc nghẽn TCP

Transport Layer 3-71

TCP điều khiển luồng

becircn nhận của kết nối TCP coacute một bộ đệm nhận

dịch vụ so trugraveng tốc độ so trugraveng tốc độ gửi với tốc độ nhận của ứng dụng

tiến trigravenh ứng dụng coacute thể chậm tại luacutec đọc bộ đệm

becircn gửi sẽ khocircng lagravem tragraven bộ đệm vigrave truyền quaacute nhiều vagrave

quaacute nhanh

điều khiển luồng

Transport Layer 3-72

TCP điều khiển luồng caacutech lagravem

(Giả sử becircn nhận TCP loại bỏ caacutec đoạn khocircng coacute thứ tự)

dự phograveng trong bộ đệm= RcvWindow

= RcvBuffer-[LastByteRcvd - LastByteRead]

Becircn nhận thocircng baacuteo khoảng dự trữ nhờ giaacute trị RcvWindow trong caacutec đoạn

Becircn gửi hạn chế dữ liệu khocircng được ACK vagraveo RcvWindow bảo đảm bộ đệm nhận

khocircng tragraven

Transport Layer 3-73

Chương 3 Nội dung trigravenh bagravey

31 Caacutec dịch vụ lớp Transport

32 Multiplexing vagrave demultiplexing

33 Vận chuyển khocircng kết nối UDP

34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy

35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối

36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn

37 Điều khiển tắc nghẽn TCP

Transport Layer 3-74

TCP quản lyacute kết nối

Chuacute yacute Becircn gửi vagrave becircn nhận TCP thiết lập ldquokết nốirdquo trước khi trao đổi dữ liệu

khởi tạo caacutec biến TCP caacutec số thứ tự đoạn thocircng tin caacutec bộ đệm điều

khiển luồng (như RcvWindow)

client người khởi xướng kết nối

Socket clientSocket = new Socket(hostnameport

number) server được tiếp xuacutec bởi

client Socket connectionSocket =

welcomeSocketaccept()

3 phương phaacutep bắt tay

Bước 1 client host gửi đoạnTCP SYN đến server xaacutec định số thứ tự khởi đầu khocircng phải dữ liệu

Bước 2 server host nhận SYN trả lời với đoạn SYNACK

server cấp phaacutet caacutec bộ đệm

xaacutec định số thứ tự khởi đầuBước 3 client nhận SYNACK trả

lời với đoạn ACK (coacute thể chứa dữ liệu)

Transport Layer 3-75

TCP quản lyacute kết nối (tt)

Đoacuteng một kết nối

client đoacuteng socket clientSocketclose()

Bước 1 client gửi đoạn điều khiển TCP FIN đến server

Bước 2 server nhận FIN trả lời với ACK Đoacuteng kết nối gửi FIN

client

FIN

server

ACK

ACK

FIN

đoacuteng

đoacuteng

đatilde đoacutengthời g

ian c

hờ

Transport Layer 3-76

TCP quản lyacute kết nối (tt)

Bước 3 client nhận FIN trả lời với ACK

Trong khoảng ldquothời gian chờrdquo ndash sẽ phản hồi với ACK để nhận caacutec FIN

Bước 4 server nhận ACK Kết nối đatilde đoacuteng

Chuacute yacute với một sửa đổi nhỏ coacute thể quản lyacute nhiều FIN đồng thời

client

FIN

server

ACK

ACK

FIN

đang đoacuteng

đang đoacuteng

đatilde đoacuteng

thời g

ian c

hờ

đatilde đoacuteng

Transport Layer 3-77

TCP quản lyacute kết nối (tt)

chu kỳ sống củaTCP client

chu kỳ sống củaTCP server

Transport Layer 3-78

Chương 3 Nội dung trigravenh bagravey

31 Caacutec dịch vụ lớp Transport

32 Multiplexing vagrave demultiplexing

33 Vận chuyển khocircng kết nối UDP

34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy

35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối

36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn

37 Điều khiển tắc nghẽn TCP

Transport Layer 3-79

Caacutec nguyecircn lyacute điều khiển tắc nghẽn

Tắc nghẽn ldquoquaacute nhiều nguồn gửi quaacute nhanh vagrave quaacute nhiều

dữ liệu đến mạngrdquo khaacutec với điều khiển luồng caacutec biểu hiện

caacutec goacutei bị mất (tragraven bộ đệm tại caacutec router) caacutec độ trễ quaacute dagravei (xếp hagraveng trong bộ đệm

của router) lagrave 1 trong 10 vấn đề nan giải nhất

Transport Layer 3-80

Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 1

2 gửi 2 nhận 1 router caacutec bộ

đệm khocircng giới hạn

khocircng coacute truyền lại

caacutec độ trễ lớn hơn khi tắc nghẽn

năng suất coacute thể đạt tối đa

unlimited shared output link buffers

Host Ain original data

Host B

out

Transport Layer 3-81

Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 2

1 router caacutec bộ đệm coacute giới hạn becircn gửi truyền lại caacutec goacutei đatilde mất

chia sẻ vocirc hạncaacutec bộ đệm ouput

Host A in dữ liệu gốc

Host B

out

in dữ liệu gốc cugraveng với dữ liệu truyền lại

Transport Layer 3-82

Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 2 luocircn luocircn

truyền lại ldquohoagraven toagravenrdquo chỉ khi mất maacutet

truyền lại vigrave trễ (khocircng mất) lagravem cho lớn hơn với cugraveng

in

out

=

in

out

gt

in

out

ldquocaacutec chi phiacuterdquo của tắc nghẽn nhiều việc (truyền lại) caacutec truyền lại khocircng cần thiết liecircn kết nhiều bản sao của

goacutei

R2

R2in

ou

t

b

R2

R2in

ou

t

a

R2

R2in

ou

t

c

R4

R3

Transport Layer 3-83

Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 3 4 người gửi caacutec đường qua nhiều hop timeouttruyền lại

in

Hỏi điều gigrave xảy ra nếu vagrave tăng lecircn

in

chia sẻ vocirc hạncaacutec bộ đệm ouput

Host Ain dữ liệu gốc

Host B

out

in dữ liệu gốc cugraveng với dữ liệu truyền lại

Transport Layer 3-84

Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 3

ldquochi phiacuterdquo khaacutec của tắc nghẽn khi caacutec goacutei bị bỏ bất kỳ ldquokhả năng truyền

upstream dugraveng cho goacutei đoacute sẽ bị latildeng phiacuterdquo

Host A

Host B

o

u

t

Transport Layer 3-85

Caacutec caacutech tiếp cận đối với điều khiển tắc nghẽn

điều khiển tắc nghẽn end-end

khocircng coacute phản hồi rotilde ragraveng từ mạng

tắc nghẽn được suy ra từ việc quan saacutet caacutec hệ thống đầu cuối coacute mất maacutet trễ

tiếp cận được quản lyacute bởi TCP

điều khiển tắc nghẽn coacute sự hỗ trợ của mạng

caacutec router cung cấp phản hồi về caacutec hệ thống đầu cuối 1 bit duy nhất chỉ thị

tắc nghẽn (SNA DECbit TCPIP ECN ATM)

tốc độ sẽ gửi được xaacutec định rotilde ragraveng

2 caacutech

Transport Layer 3-86

Viacute dụ điều khiển tắc nghẽn ATM ABR

ABR tốc độ bit sẵn sagraveng

ldquodịch vụ mềm dẻordquo nếu đường gửi ldquochưa

hếtrdquo becircn gửi sẽ dugraveng

băng thocircng sẵn sagraveng nếu đường gửi tắc

nghẽn becircn gửi điều tiết với

tốc độ tối thiểu

RM (resource management)

gửi bởi becircn gửi rải raacutec với caacutec ocirc dữ liệu

caacutec bit trong ocirc thiết lập bởi caacutec switch bit NI khocircng tăng tốc độ

(tắc nghẽn nhẹ) bit CI tắc nghẽn rotilde rệt

Caacutec ocirc RM được trả về becircn gửi từ becircn nhận với nguyecircn vẹn caacutec bit

Transport Layer 3-87

Viacute dụ điều khiển tắc nghẽn ATM ABR

trường 2-byte ER trong ocirc RM switch đatilde tắc nghẽn coacute thể coacute giaacute trị ER thấp hơn trong ocirc tốc độ gửi do đoacute coacute thể được hỗ trợ tối đa trecircn đường

EFCI bit trong caacutec ocirc dữ liệu được cagravei giaacute trị 1 trong switch đatilde tắc nghẽn nếu ocirc dữ liệu đứng trước ocirc RM coacute cagravei EFCI becircn gửi sẽ cagravei

bit CI trong ocirc RM trả về

Transport Layer 3-88

Chương 3 Nội dung trigravenh bagravey

31 Caacutec dịch vụ lớp Transport

32 Multiplexing vagrave demultiplexing

33 Vận chuyển khocircng kết nối UDP

34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy

35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối

36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn

37 Điều khiển tắc nghẽn TCP

Transport Layer 3-89

TCP điều khiển tắc nghẽn additive tăng lecircn multiplicative giảm xuống

8 Kbytes

16 Kbytes

24 Kbytes

time

congestionwindow

Caacutech tiếp cận tăng tốc độ truyền (kiacutech thước cửa sổ) tigravem khả năng băng thocircng coacute thể cho đến khi coacute mất maacutet xảy ra additive tăng lecircn tăng CongWin bởi 1 MSS

mỗi RTT cho đến khi coacute mất maacutet xảy ra multiplicative giảm xuống bỏ CongWin trong

nửa giai đoạn sau khi mất maacutet

timekiacutech

thư

ớc

cửa

sổ

tắc

nghẽ

n

Tigravem kiếm băng thocircng

Transport Layer 3-90

TCP điều khiển tắc nghẽn chi tiết

becircn gửi hạn chế việc truyền LastByteSent-LastByteAcked

CongWin Cocircng thức

CongWin thay đổi chức năng lagrave nhận biết tắc nghẽn trecircn mạng

Lagravem thế nagraveo becircn gửi nhận biết tắc nghẽn

mất maacutet xảy ra = timeout hoặc 3 ack trugraveng lặp

becircn gửi giảm tốc độ (CongWin) sau khi mất maacutet xảy ra

3 cơ chế AIMD khởi động chậm thận trọng sau khi coacute

caacutec sự kiện timeout

tốc độ = CongWin

RTT Bytess

Transport Layer 3-91

TCP khởi động chậm

Khi kết nối bắt đầu CongWin = 1 MSS Viacute dụ MSS = 500 bytes

amp RTT = 200 ms tốc độ khởi tạo = 20

kbps

băng thocircng sẵn sagraveng coacute thể gtgt MSSRTT mong muốn nhanh

choacuteng tăng tốc lecircn tốc độ coacute thể đaacutep ứng

Khi kết nối bắt đầu tăng tốc lecircn rất nhanh cho đến khi sự cố mất maacutet xảy ra đầu tiecircn

Transport Layer 3-92

TCP khởi động chậm (tt)

Khi kết nối bắt đầu tăng tốc lecircn rất nhanh cho đến khi sự cố mất maacutet xảy ra đầu tiecircn nhacircn đocirci CongWin mỗi

RTT hoagraven thagravenh nhờ tăng CongWin ứng với mỗi ACK đatilde nhận

Tổng kết tốc độ khởi đầu lagrave chậm nhưng sau đoacute tăng tốc rất nhanh

Host A

1 đoạn

RTT

Host B

thời gian

2 đoạn

4 đoạn

Transport Layer 3-93

Tinh chếHỏi Khi nagraveo việc tăng

tốc trở thagravenh tuyến tiacutenh

Trả lời Khi CongWin đạt đến 12 giaacute trị của noacute trước khi timeout

Hiện thực Ngưỡng thay đổi Tại thời điểm coacute sự cố

mất maacutet ngưỡng được cagravei giaacute trị bằng frac12 của CongWin ngay trước đoacute

Transport Layer 3-94

Tinh chế nhận biết mất maacutet

Sau 3 ACK trugraveng lặp CongWin sẽ giảm 12 kiacutech thước cửa sổ

tăng tuyến tiacutenh nhưng sau sự cố

timeout CongWin thay giaacute trị

bằng 1 MSS kiacutech thước cửa sổ

tăng cấp lũy thừa khi đến một ngưỡng

thigrave tăng tuyến tiacutenh

3 ACK trugraveng nhau chỉ ra khả năng truyền của mạng timeout chỉ thị ldquonhiều cảnh baacuteordquo về tigravenh huống tắc nghẽn

Nguyecircn lyacute

Transport Layer 3-95

Tổng kết TCP điều khiển tắc nghẽn

Khi CongWin dưới Threshold becircn gửi đang trong giai đoạn khởi động chậm kiacutech thước cửa sổ tăng nhanh theo cấp lũy thừa

Khi CongWin trecircn Threshold becircn gửi đang trong giai đoạn traacutenh tắc nghẽn kiacutech thước cửa sổ tăng nhanh theo cấp tuyến tiacutenh

Khi coacute 3 ACK trugraveng lặp xảy ra Threshold = CongWin2 vagrave CongWin = Threshold

Khi timeout xảy ra Threshold = CongWin2 vagrave CongWin = 1 MSS

Transport Layer 3-96

TCP điều khiển tắc nghẽn becircn gửi

Trạng thaacutei Sự kiện TCP becircn gửi hagravenh động Diễn giải

Slow Start (SS)-Khởi động chậm

ACK baacuteo nhận cho dữ liệu chưa ACK trước đoacute

CongWin = CongWin + MSS If (CongWin gt Threshold) cagravei đặt trạng thaacutei ldquoTraacutenh tắc nghẽnrdquo

Hậu quả lagravem tăng gấp đocirci CongWin mỗi RTT

CongestionAvoidance (CA) ndashTraacutenh tắc nghẽn

ACK baacuteo nhận cho dữ liệu chưa ACK trước đoacute

CongWin = CongWin+MSS (MSSCongWin)

Additive tăng lecircn lagravem tăng CongWin lecircn 1 MSS mỗi RTT

SS hoặc CA Sự cố mất maacutet xảy ra khi thấy coacute 3 ACK trugraveng lặp

Threshold = CongWin2 CongWin = Thresholdcagravei đặt trạng thaacutei ldquoTraacutenh tắc nghẽnrdquo

Khocirci phục nhanh hiện thực giảm xuống multiplicative CongWin sẽ khocircng giảm xuống dưới 1 MSS

SS hoặc CA Timeout Threshold = CongWin2 CongWin = 1 MSScagravei đặt trạng thaacutei ldquoKhởi động chậmrdquo

Vagraveo chế độ ldquoKhởi động chậmrdquo

SS hoặc CA ACK trugraveng lặp

Đếm ACK tăng lecircn cho đoạn vừa được ACK

CongWin vagrave Threshold khocircng thay đổi

Transport Layer 3-97

TCP throughput

Throughout trung bigravenh của TCP biểu diễn qua kiacutech thước của sổ vagrave RTT Bỏ qua trạng thaacutei ldquoKhởi động chậmrdquo

Cho W lagrave kiacutech thước cửa sổ khi coacute mất maacutet xảy ra

Khi kiacutech thước cửa sổ = W lưu lượng = WRTT

Chỉ ngay sau khi mất maacutet cửa sổ giảm xuống = W2 lưu lượng = W2RTT

throughout trung bigravenh 075 WRTT

Transport Layer 3-98

TCP tương lai

Viacute dụ caacutec đoạn dagravei 1500 byte RTT 100ms lưu lượng 10 Gbps

Kiacutech thước cửa sổ yecircu cầu W = 83333 đoạn trecircn đường truyền

Lưu lượng trong caacutec trường hợp mất maacutet

L = 210-10

Phiecircn bản mới của TCP dagravenh cho nhu cầu tốc độ cao

LRTT

MSS221

Transport Layer 3-99

Mục tiecircu nếu K phiecircn lagravem việc TCP chia sẻ kết nối cổ chai của băng thocircng lagrave R mỗi phiecircn coacute tốc độ trung bigravenh lagrave RK

TCP kết nối 1

router cổ chaikhả năng R

TCP kết nối 2

TCP tiacutenh cocircng bằng

Transport Layer 3-100

Tại sao phải TCP cocircng bằng

2 phiecircn lagravem việc cạnh tranh nhau Additive tăng lưu lượng tăng multiplicative giảm lưu lượng tương xứng

R

R

chia sẻ băng thocircng bằng nhau

Connection 1 throughputConnect

ion 2

th

roughput

traacutenh tắc nghẽn additive tăng lecircnmất maacutet giảm cửa sổ bằng 12

traacutenh tắc nghẽn additive tăng lecircnmất maacutet giảm cửa sổ bằng 12

Transport Layer 3-101

TCP tiacutenh cocircng bằng (tt)

Tiacutenh cocircng bằng amp UDP nhiều ứng dụng

thường khocircng dugraveng TCP khocircng muốn tốc độ bị

điều tiết do điều khiển tắc nghẽn

Thay bằng dugraveng UDP truyền audiovideo với

tốc độ ổn định chịu được mất maacutet

Nghiecircn cứu giao thức thacircn thiện với TCP

Tiacutenh cocircng bằng amp caacutec kết nối TCP song song

khocircng coacute gigrave ngăn cản việc ứng dụng mở caacutec kết nối song song giữa 2 host

Trigravenh duyệt Web lagravem giống như thế

Viacute dụ tốc độ R hỗ trợ 9 kết nối ứng dụng mới yecircu cầu 1

TCP coacute tốc độ R10 ứng dụng mới yecircu cầu 11

TCP coacute tốc độ R2

Transport Layer 3-102

Mocirc higravenh trễ

Hỏi Mất bao lacircu để nhận 1 đối tượng từ Web server sau khi gửi yecircu cầu

Bỏ qua tắc nghẽn trễ bị ảnh hưởng bởi

thiết lập kết nối TCP trễ truyền dữ liệu khởi động chậm

Notation caacutec giả định Giả sử một kết nối giữa

client vagrave server coacute tốc độ R

S MSS (bits) O kiacutech thước đối tượng

(bits) khocircng truyền lại (khocircng

mất maacutet khocircng hỏng)

Kiacutech thước cửa sổ Giả định 1 cửa sổ tắc

nghẽn cố định coacute W đoạn Sau đoacute cửa sổ thay đổi

mocirc higravenh khởi động chậm

Transport Layer 3-103

Cửa sổ tắc nghẽn cố định (1)

Trường hợp đầu tiecircnWSR gt RTT + SR cho

đoạn đầu tiecircn trong cửa sổ trả về trước khi cửa sổ dữ liệu gửi ACK

trễ = 2RTT + OR

Transport Layer 3-104

Cửa sổ tắc nghẽn cố định (2)

Trường hợp thứ hai WSR lt RTT + SR sent

chờ cho ACK sau khi gửi dữ liệu

trễ = 2RTT + OR+ (K-1)[SR + RTT - WSR]

Transport Layer 3-105

TCP Mocirc higravenh trễ Khởi động chậm (1)

Bacircy giờ giả sử kiacutech thước cửa sổ tăng lecircn tugravey theo quaacute trigravenh khởi động chậm

Độ trễ của một đối tượng sẽ lagrave

R

S

R

SRTTP

R

ORTTLatency P )12(2

trong đoacute P lagrave số lần TCP rảnh ở tại server

1min KQP

- trong đoacute Q lagrave số lần server rảnh nếu đối tượng đatilde khởi tạo kiacutech thước

- vagrave K lagrave số lượng cửa sổ bao trugravem đối tượng

Transport Layer 3-106

TCP Mocirc higravenh trễ Khởi động chậm (2)

RTT

initia te TCPconnection

requestobject

first w indow= S R

second w indow= 2S R

third w indow= 4S R

fourth w indow= 8S R

com pletetransm issionobject

delivered

tim e atc lient

tim e atserver

Viacute dụbull OS = 15 đoạnbull K = 4 cửa sổbull Q = 2bull P = minK-1Q = 2

Server rảnh P=2 lần

Caacutec thagravenh phần trễbull 2 RTT dagravenh cho thiết lập kết nối vagrave yecircu cầubull OR để truyền đối tượngbullthời gian server rảnh bởi vigrave khởi động chậm

Server rảnh P = minK-1Q lần

Transport Layer 3-107

TCP Mocirc higravenh trễ(3)

R

S

R

SRTTPRTT

R

O

R

SRTT

R

SRTT

R

O

idleTimeRTTR

O

P

kP

k

P

pp

)12(][2

]2[2

2delay

1

1

1

th window after the timeidle 2 1 kR

SRTT

R

S k

ementacknowledg receivesserver until

segment send tostartsserver when from time RTTR

S

window kth the transmit totime2 1

R

Sk

RTT

initia te TCPconnection

requestobject

first w indow= S R

second w indow= 2S R

third w indow= 4S R

fourth w indow= 8S R

com pletetransm issionobject

delivered

tim e atc lient

tim e atserver

Transport Layer 3-108

TCP Mocirc higravenh trễ (4)

)1(log

)1(logmin

12min

222min

222min

2

2

110

110

S

OS

Okk

S

Ok

SOk

OSSSkK

k

k

k

caacutech tiacutenh toaacuten Q tương tự (xem HW)

K = số lượng cửa sổ bao trugravem đối tượngLagravem thế nagraveo tiacutenh được K

Transport Layer 3-109

HTTP Mocirc higravenh Giả sử trang Web chứa

1 trang HTML (kiacutech thước O bits) M higravenh ảnh (mỗi caacutei kiacutech thướcO bits)

HTTP khocircng bền vững M+1 TCP kết nối Thời gian đaacutep ứng = (M+1)OR + (M+1)2RTT + tổng số thời

gian rảnh HTTP bền vững

2 RTT để yecircu cầu vagrave nhận file HTML 1 RTT để yecircu cầu vagrave nhận M higravenh ảnh Thời gian đaacutep ứng = (M+1)OR + 3RTT + tổng số thời gian

rảnh HTTP khocircng bền vững với X kết nối song song

Giả sử MX lagrave số nguyecircn 1 TCP kết nối cho file MX thiết lập caacutec kết nối song song cho caacutec higravenh ảnh Thời gian đaacutep ứng = (M+1)OR + (MX + 1)2RTT + tổng số

thời gian rảnh

Transport Layer 3-110

02468

101214161820

28Kbps

100Kbps

1Mbps

10Mbps

non-persistent

persistent

parallel non-persistent

HTTP thời gian đaacutep ứng (giacircy)RTT = 100 msec O = 5 Kbytes M=10 vagrave X=5

Với băng thocircng thấp thời gian kết nối amp đaacutep ứng trội hơn thời gian truyền

Caacutec kết nối bền vững chỉ cho sự cải thiện khocircng đaacuteng kể trecircn caacutec kết nối song song

Transport Layer 3-111

0

10

20

30

40

50

60

70

28Kbps

100Kbps

1Mbps

10Mbps

non-persistent

persistent

parallel non-persistent

HTTP thời gian đaacutep ứng (giacircy)

RTT =1 sec O = 5 Kbytes M=10 and X=5

Với RTT lớn hơn thời gian đaacutep ứng trội hơn thời gian trễ chờ thiết lập kết nốiTCP amp khởi động chậm Caacutec kết nối bền vững bacircy giờ cho thấy cải thiện rotilde rệt đặc biệtvới caacutec mạng băng thocircng cao

Transport Layer 3-112

Chương 3 Tổng kết caacutec nguyecircn lyacute của caacutec

dịch vụ lớp transport multiplexing

demultiplexing truyền dữ liệu tin cậy điều khiển luồng điều khiển tắc nghẽn

khởi tạo vagrave hiện thực trong Internet UDP TCP

Tiếp theo nghiecircn cứu xong

caacutec vấn đề ldquongoagravei biecircnrdquo (caacutec lớp application transport)

chuẩn bị vagraveo phần ldquolotildeirdquo của mạng

  • Slide 1
  • Chương 3 Lớp Transport
  • Chương 3 Nội dung trigravenh bagravey
  • Caacutec dịch vụ vagrave giao thức Transport
  • Lớp Transport với lớp network
  • Caacutec giao thức lớp transport trecircn Internet
  • Slide 7
  • Multiplexingdemultiplexing
  • Demultiplexing lagravem việc như thế nagraveo
  • Demultiplexing khocircng kết nối
  • Demultiplexing khocircng kết nối (tiếp)
  • Demultiplexing hướng kết nối
  • Demultiplexing hướng kết nối (tiếp)
  • Demultiplexing hướng kết nối Threaded Web Server
  • Slide 15
  • UDP User Datagram Protocol [RFC 768]
  • UDP (tt)
  • UDP checksum
  • Viacute dụ Checksum
  • Slide 20
  • Caacutec nguyecircn lyacute truyền dữ liệu tin cậy
  • Slide 22
  • Slide 23
  • Truyền dữ liệu tin cậy
  • Slide 25
  • Rdt10 truyền dữ liệu tin cậy trecircn 1 kecircnh truyền tin cậy
  • Rdt20 kecircnh với caacutec lỗi
  • rdt20 đặc tả FSM
  • rdt20 hoạt động khi khocircng lỗi
  • rdt20 hoạt động khi coacute lỗi
  • rdt20 coacute lỗ hổng nghiecircm trọng
  • rdt21 người gửi quản lyacute caacutec ACKNAK bị hỏng
  • Slide 33
  • rdt21 thảo luận
  • rdt22 một giao thức khocircng cần NAK
  • rdt22 gửi nhận caacutec mảnh
  • rdt30 caacutec kecircnh với lỗi vagrave mất maacutet
  • rdt30 gửi
  • hagravenh động của rdt30
  • Slide 40
  • Hiệu suất của rdt30
  • rdt30 hoạt động dừng-vagrave-chờ
  • Caacutec giao thức Pipelined
  • Pipelining độ khả dụng tăng
  • Go-Back-N
  • GBN becircn gửi mở rộng FSM
  • GBN becircn nhận mở rộng FSM
  • GBN hoạt động
  • Lặp coacute lựa chọn
  • Lặp coacute lựa chọn caacutec cửa sổ gửi nhận
  • Slide 51
  • Hoạt động của lặp coacute lựa chọn
  • Lặp coacute lựa chọn tigravenh trạng khoacute giải quyết
  • Slide 54
  • TCP Tổng quan RFCs 793 1122 1323 2018 2581
  • TCP cấu truacutec đoạn
  • Caacutec số thứ tự TCP vagrave ACK
  • TCP Round Trip Time vagraveTimeout
  • TCP Round Trip Time vagrave Timeout
  • Viacute dụ đaacutenh giaacute RTT
  • Slide 61
  • TCP truyền dữ liệu tin cậy
  • TCP caacutec sự kiện
  • TCP becircn gửi (đơn giản)
  • TCP caacutec tigravenh huống truyền lại
  • TCP caacutec tigravenh huống truyền lại (tt)
  • TCP sinh ra ACK [RFC 1122 RFC 2581]
  • Truyền lại nhanh
  • Giải thuật truyền lại nhanh
  • Slide 70
  • TCP điều khiển luồng
  • TCP điều khiển luồng caacutech lagravem
  • Slide 73
  • TCP quản lyacute kết nối
  • TCP quản lyacute kết nối (tt)
  • Slide 76
  • Slide 77
  • Slide 78
  • Caacutec nguyecircn lyacute điều khiển tắc nghẽn
  • Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 1
  • Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 2
  • Slide 82
  • Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 3
  • Slide 84
  • Caacutec caacutech tiếp cận đối với điều khiển tắc nghẽn
  • Viacute dụ điều khiển tắc nghẽn ATM ABR
  • Slide 87
  • Slide 88
  • TCP điều khiển tắc nghẽn additive tăng lecircn multiplicative giảm xuống
  • TCP điều khiển tắc nghẽn chi tiết
  • TCP khởi động chậm
  • TCP khởi động chậm (tt)
  • Tinh chế
  • Tinh chế nhận biết mất maacutet
  • Tổng kết TCP điều khiển tắc nghẽn
  • TCP điều khiển tắc nghẽn becircn gửi
  • TCP throughput
  • TCP tương lai
  • TCP tiacutenh cocircng bằng
  • Tại sao phải TCP cocircng bằng
  • TCP tiacutenh cocircng bằng (tt)
  • Mocirc higravenh trễ
  • Cửa sổ tắc nghẽn cố định (1)
  • Cửa sổ tắc nghẽn cố định (2)
  • TCP Mocirc higravenh trễ Khởi động chậm (1)
  • TCP Mocirc higravenh trễ Khởi động chậm (2)
  • TCP Mocirc higravenh trễ(3)
  • TCP Mocirc higravenh trễ (4)
  • HTTP Mocirc higravenh
  • Slide 110
  • Slide 111
  • Chương 3 Tổng kết

Transport Layer 3-18

UDP checksum

Người gửi đối xử caacutec nội dung

đoạn như một chuỗi caacutec số nguyecircn 16-bit

checksum bổ sung(tổng bugrave 1) của caacutec nội dung đoạn

đặt giaacute trị checksum vagraveo trường UDP checksum

Người nhận tiacutenh toaacuten checksum của

đoạn đatilde nhận kiểm tra giaacute trị trecircn coacute bằng

với giaacute trị trong trường checksum NO ndash coacute lỗi xảy ra YES ndash khocircng coacute lỗi Nhưng coacute thể cograven lỗi

khaacutec nữa Xem tiếp phần sau hellip

Mục tiecircu kiểm tra caacutec ldquolỗirdquo (caacutec bit cờ đatilde bật lecircn) trong caacutec đoạn đatilde truyền

Transport Layer 3-19

Viacute dụ Checksum Lưu yacute

Khi cộng caacutec số một bit nhớ ở phiacutea cao nhất coacute thể sẽ phải thecircm vagraveo kết quả

Viacute dụ cộng hai số nguyecircn 16-bit

1 1 1 1 0 0 1 1 0 0 1 1 0 0 1 1 01 1 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1

1 1 0 1 1 1 0 1 1 1 0 1 1 1 0 1 1

1 1 0 1 1 1 0 1 1 1 0 1 1 1 1 0 01 0 1 0 0 0 1 0 0 0 1 0 0 0 0 1 1

bit dư

tổngchecksum

Transport Layer 3-20

Chương 3 Nội dung trigravenh bagravey

31 Caacutec dịch vụ lớp Transport

32 Multiplexing vagrave demultiplexing

33 Vận chuyển khocircng kết nối UDP

34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy

35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối

36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn

37 Điều khiển tắc nghẽn TCP

Transport Layer 3-21

Caacutec nguyecircn lyacute truyền dữ liệu tin cậy quan trọng trong caacutec lớp application transport link lagrave danh saacutech 10 vấn đề quan trọng nhất của mạng

caacutec đặc thugrave của kecircnh truyền khocircng tin cậy sẽ xaacutec định sự phức tạp của giao thức truyền dữ liệu data transfer protocol (rdt)

Transport Layer 3-22

Caacutec nguyecircn lyacute truyền dữ liệu tin cậy quan trọng trong caacutec lớp application transport link lagrave danh saacutech 10 vấn đề quan trọng nhất của mạng

caacutec đặc thugrave của kecircnh truyền khocircng tin cậy sẽ xaacutec định sự phức tạp của giao thức truyền dữ liệu data transfer protocol (rdt)

Transport Layer 3-23

Caacutec nguyecircn lyacute truyền dữ liệu tin cậy quan trọng trong caacutec lớp application transport link lagrave danh saacutech 10 vấn đề quan trọng nhất của mạng

caacutec đặc thugrave của kecircnh truyền khocircng tin cậy sẽ xaacutec định sự phức tạp của giao thức truyền dữ liệu data transfer protocol (rdt)

Transport Layer 3-24

Truyền dữ liệu tin cậy

sendside

receiveside

rdt_send() được gọi bởi lớp app Chuyển dữ liệu cần truyền

đến lớp cao hơn becircn nhận

udt_send() được gọi bởi rdt để truyền caacutec goacutei trecircn kecircnh khocircng tin cậy đến nơi

nhận

rdt_rcv() được gọi khi goacutei đến kecircnh becircn nhận

deliver_data() được gọi bởi rdt để truyền dữ liệu

đến lớp cao hơn

Transport Layer 3-25

Truyền dữ liệu tin cậy

Sẽ chỉ xem xeacutet truyền dữ liệu theo 1 hướng duy

nhất nhưng điều khiển luồng thocircng tin sẽ theo cả 2

chiều

dugraveng maacutey trạng thaacutei hữu hạn (finite state machines-FSM) để xaacutec định người gửi người nhận

trthaacutei1

trthaacutei2

sự kiện gacircy ra trạng thaacutei truyềncaacutec hagravenh động xảy ra khi truyền

trạng thaacutei khi ở ldquotrạng thaacuteirdquo nagravey thigrave

trạng thaacutei kế tiếp duy nhất được xaacutec định bởi sự kiện kế

tiếp

sự kiệncaacutec hagravenh động

Transport Layer 3-26

Rdt10 truyền dữ liệu tin cậy trecircn 1 kecircnh truyền tin cậy

kecircnh ưu tiecircn tin cậy hoagraven toagraven khocircng coacute caacutec lỗi khocircng mất maacutet caacutec goacutei

caacutec FSM phacircn biệt cho người gửi người nhận người gửi gửi dữ liệu vagraveo kecircnh ưu tiecircn người nhận nhận dữ liệu từ kecircnh ưu tiecircn

chờ gọi từ lớp trecircn packet = make_pkt(data)

udt_send(packet)

rdt_send(data)

extract (packetdata)deliver_data(data)

chờ gọi từ lớp dưới

rdt_rcv(packet)

người gửi người nhận

Transport Layer 3-27

Rdt20 kecircnh với caacutec lỗi

kecircnh ưu tiecircn coacute thể bật lecircn một số bit trong goacutei checksum để kiểm tra caacutec lỗi

Hỏi lagravem sao khocirci phục caacutec lỗi acknowledgements (ACKs) becircn nhận rotilde ragraveng thocircng

baacuteo cho becircn gửi rằng quaacute trigravenh nhận goacutei tốt negative acknowledgements (NAKs) becircn nhận rotilde ragraveng

thocircng baacuteo cho becircn gửi rằng quaacute trigravenh nhận goacutei coacute lỗi người gửi gửi lại goacutei nagraveo được xaacutec nhận lagrave NAK

caacutec cơ chế mới trong rdt20 (sau rdt10) kiểm tra lỗi nhận phản hồi caacutec thocircng điệp điều khiển (ACKNAK)

becircn nhận becircn gửi

Transport Layer 3-28

rdt20 đặc tả FSM

chờ gọi từ lớp trecircn

snkpkt = make_pkt(data checksum)udt_send(sndpkt)

extract(rcvpktdata)deliver_data(data)udt_send(ACK)

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)

rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp isNAK(rcvpkt)

udt_send(NAK)

rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)

chờ ACK hoặc NAK

chờ gọi từ lớp dưới

người gửi

người nhậnrdt_send(data)

Transport Layer 3-29

rdt20 hoạt động khi khocircng lỗi

chờ gọi từ lớp dưới

snkpkt = make_pkt(data checksum)udt_send(sndpkt)

extract(rcvpktdata)deliver_data(data)udt_send(ACK)

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)

rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp isNAK(rcvpkt)

udt_send(NAK)

rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)

chờ ACK hoặc NAK

chờ gọi từ lớp dưới

rdt_send(data)

Transport Layer 3-30

rdt20 hoạt động khi coacute lỗi

chờ gọi từ lớp dưới

snkpkt = make_pkt(data checksum)udt_send(sndpkt)

extract(rcvpktdata)deliver_data(data)udt_send(ACK)

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)

rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp isNAK(rcvpkt)

udt_send(NAK)

rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)

chờ ACK hoặc NAK

chờ gọi từ lớp dưới

rdt_send(data)

Transport Layer 3-31

rdt20 coacute lỗ hổng nghiecircm trọngĐiều gigrave xảy ra nếu

ACKNAK bị hỏng người gửi khocircng biết điều

gigrave đatilde xảy ra tại becircn nhận

khocircng thể đơn phương truyền lại khả năng trugraveng lặp

Quản lyacute trugraveng lặp người gửi truyền lại goacutei

hiện tại nếu ACKNAK bị hỏng

người gửi thecircm số thứ tự vagraveo mỗi goacutei

người nhận hủy (khocircng nhận) goacutei trugraveng lặp

Người gửi gửi 1 goacutei sau đoacute dừng lại chờ phản hồitừ người nhận

dừng vagrave chờ

Transport Layer 3-32

rdt21 người gửi quản lyacute caacutec ACKNAK bị hỏng

chờ gọi 0 từ lớp trecircn

sndpkt = make_pkt(0 data checksum)udt_send(sndpkt)

rdt_send(data)

chờ ACK hoặc NAK

0 udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) ||isNAK(rcvpkt) )

sndpkt = make_pkt(1 data checksum)udt_send(sndpkt)

rdt_send(data)

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) ||isNAK(rcvpkt) )

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt)

chờ gọi 1 từ lớp trecircn

chờ ACK hoặc NAK

1

Transport Layer 3-33

rdt21 người gửi quản lyacute caacutec ACKNAK bị hỏng

chờ 0 từ dưới

sndpkt = make_pkt(NAK chksum)udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp not corrupt(rcvpkt) ampamp has_seq0(rcvpkt)

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp has_seq1(rcvpkt)

extract(rcvpktdata)deliver_data(data)sndpkt = make_pkt(ACK chksum)udt_send(sndpkt)

chờ 1 từ dưới

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp has_seq0(rcvpkt)

extract(rcvpktdata)deliver_data(data)sndpkt = make_pkt(ACK chksum)udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp (corrupt(rcvpkt)

sndpkt = make_pkt(ACK chksum)udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp not corrupt(rcvpkt) ampamp has_seq1(rcvpkt)

rdt_rcv(rcvpkt) ampamp (corrupt(rcvpkt)

sndpkt = make_pkt(ACK chksum)udt_send(sndpkt)

sndpkt = make_pkt(NAK chksum)udt_send(sndpkt)

Transport Layer 3-34

rdt21 thảo luận

người gửi số thứ tự thecircm vagraveo

goacutei chỉ cần hai số thứ tự

(01) lagrave đủ Tại sao phải kiểm tra nếu việc

nhận ACKNAK bị hỏng

số trạng thaacutei tăng lecircn 2 lần trạng thaacutei phải ldquonhớrdquo

goacutei ldquohiện tạirdquo coacute số thứ tự lagrave 0 hay 1

người nhận phải kiểm tra coacute

nhận trugraveng goacutei khocircng trạng thaacutei chỉ rotilde coacute

hay khocircng mong chờ số thứ tự 0 hoặc 1

chuacute yacute người nhận khocircng biết ACKNAK vừa rồi của noacute coacute được người gửi nhận tốt hay khocircng

Transport Layer 3-35

rdt22 một giao thức khocircng cần NAK

chức năng giống như rdt21 chỉ dugraveng caacutec ACK thay cho NAK người nhận gửi ACK cho goacutei vừa

rồi đatilde nhận tốt người nhận phải rotilde ragraveng chegraven số thứ tự của goacutei vừa ACK

trugraveng ACK tại người gửi hậu quả giống như hagravenh động của NAK truyền lại goacutei vừa rồi

Transport Layer 3-36

rdt22 gửi nhận caacutec mảnh

Chờ cho gọi 0 từ

trecircn

sndpkt = make_pkt(0 data checksum)udt_send(sndpkt)

rdt_send(data)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) || isACK(rcvpkt1) )

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt0)

Chờ cho ACK

0

gửi phacircn mảnhFSM

Chờ cho gọi

0 từ dưới

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp has_seq1(rcvpkt)

extract(rcvpktdata)deliver_data(data)sndpkt = make_pkt(ACK1 chksum)udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp (corrupt(rcvpkt) || has_seq1(rcvpkt))

udt_send(sndpkt)

nhận phacircn mảnhFSM

Transport Layer 3-37

rdt30 caacutec kecircnh với lỗi vagrave mất maacutet

Giả định mới kecircnh ưu tiecircn cũng coacute thể lagravem mất caacutec goacutei (dữ liệu hoặc caacutec ACK) checksum số thứ tự

caacutec ACK caacutec việc truyền lại sẽ hỗ trợ nhưng khocircng đủ

Caacutech tiếp cận người gửi chờ ACK trong khoảng thời gian ldquochấp nhận đượcrdquo

truyền lại nếu khocircng nhận ACK trong khoảng thời gian nagravey

nếu goacutei (hoặc ACK) chỉ trễ (khocircng mất) truyền lại sẽ gacircy trugraveng

nhưng dugraveng số thứ tự sẽ giải quyết được

người nhận phải xaacutec định số thứ tự của goacutei vừa gửi ACK

cần bộ định thigrave đếm lugravei

Transport Layer 3-38

rdt30 gửi

sndpkt = make_pkt(0 data checksum)udt_send(sndpkt)start_timer

rdt_send(data)

Chờ cho

ACK 0

rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) ||isACK(rcvpkt1) )

Chờ cho gọi 1 từ trecircn

sndpkt = make_pkt(1 data checksum)udt_send(sndpkt)start_timer

rdt_send(data)

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt0)

rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) ||isACK(rcvpkt0) )

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt1)

stop_timerstop_timer

udt_send(sndpkt)start_timer

timeout

udt_send(sndpkt)start_timer

timeout

rdt_rcv(rcvpkt)

Chờ cho gọi 0 từ trecircn

Chờ cho

ACK 1

rdt_rcv(rcvpkt)

Transport Layer 3-39

hagravenh động của rdt30

Transport Layer 3-40

hagravenh động của rdt30

Transport Layer 3-41

Hiệu suất của rdt30

rdt30 lagravem việc được nhưng đaacutenh giaacute hiệu suất hơi rắc rối viacute dụ liecircn kết 1 Gbps trễ lan truyền giữa hai đầu cuối lagrave 15

ms goacutei 1KB

T truyền = 8kbpkt109 bsec

= 8 microsec

U sender độ khả dụng ndash

U sender

= 008

30008 = 000027

microseconds

L R

RTT + L R =

L (độ dagravei goacutei tiacutenh bằng bits)R (tốc độ truyền bps)

=

goacutei 1KB mỗi 30 msec -gt 33kBs trecircn đường truyền 1 Gbps giao thức network hạn chế việc dugraveng caacutec tagravei nguyecircn vật

lyacute

Transport Layer 3-42

rdt30 hoạt động dừng-vagrave-chờ

goacutei đầu tiecircn đatilde truyền t = 0

gửi nhận

RTT

goacutei cuối cugraveng đatilde truyền t = L R

goacutei đầu tiecircn đatilde đếngoacutei cuối cugraveng đatilde đến gửi ACK

ACK đến gửi goacutei kế tiếp t = RTT + L R

U sender

= 008

30008 = 000027

microseconds

L R

RTT + L R =

Transport Layer 3-43

Caacutec giao thức Pipelined

Pipelining người gửi cho pheacutep gửi nhiều goacutei đồng thời khocircng cần chờ baacuteo nhận được nhoacutem caacutec số thứ tự phải tăng dần phải coacute bộ nhớ đệm tại nơi gửi vagravehoặc nơi nhận

hai dạng phổ biến của caacutec giao thức pipelined go-Back-N Lặp coacute lựa chọn

Transport Layer 3-44

Pipelining độ khả dụng tăng

goacutei đầu tiecircn đatilde truyền t = 0

sender receiver

RTT

goacutei cuối cugraveng đatilde truyền t = L R

goacutei đầu tiecircn đatilde đếngoacutei cuối cugraveng đatilde đến gửi ACK

ACK đến gửi goacuteikế tiếp t = RTT + L R

bit cuối của goacutei thứ 2 đến gửi ACKbit cuối của goacutei thứ 3 đến gửi ACK

U sender

= 024

30008 = 00008

microseconds

3 L R

RTT + L R =

Độ khả dụng tăng lecircngấp 3 lần

Transport Layer 3-45

Go-Back-NBecircn gửi k-bit số thứ tự trong header của goacutei ldquocửa sổrdquo tăng lecircn đến N cho pheacutep gửi caacutec goacutei liecircn tục khocircng cần ACK

ACK(n) ACKs tất cả caacutec goacutei đến chứa số thứ tự n ndash ldquoACK tiacutech lũyrdquo coacute thể nhận caacutec ACK trugraveng lặp (xem becircn nhận)

định thigrave cho mỗi goacutei trecircn đường truyền timeout(n) gửi lại goacutei n vagrave tất cả caacutec goacutei coacute số thứ tự cao

hơn trong cửa sổ

Transport Layer 3-46

GBN becircn gửi mở rộng FSM

chờ start_timerudt_send(sndpkt[base])udt_send(sndpkt[base+1])hellipudt_send(sndpkt[nextseqnum-1])

timeout

rdt_send(data)

if (nextseqnum lt base+N) sndpkt[nextseqnum] = make_pkt(nextseqnumdatachksum) udt_send(sndpkt[nextseqnum]) if (base == nextseqnum) start_timer nextseqnum++ else refuse_data(data)

base = getacknum(rcvpkt)+1If (base == nextseqnum) stop_timer else start_timer

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)

base=1nextseqnum=1

rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)

Transport Layer 3-47

GBN becircn nhận mở rộng FSM

ACK-duy nhất luocircn luocircn gửi ACK cho goacutei đatilde nhận đuacuteng với số thứ tự xếp hạng cao nhất coacute thể sinh ra caacutec ACK trugraveng nhau chỉ cần nhớ expectedseqnum

goacutei khocircng theo thứ tự hủy -gt khocircng nhận vagraveo bộ đệm gửi lại ACK với số thứ tự xếp hạng cao nhất

chờ

udt_send(sndpkt)

default

rdt_rcv(rcvpkt) ampamp notcurrupt(rcvpkt) ampamp hasseqnum(rcvpktexpectedseqnum)

extract(rcvpktdata)deliver_data(data)sndpkt = make_pkt(expectedseqnumACKchksum)udt_send(sndpkt)expectedseqnum++

expectedseqnum=1sndpkt = make_pkt(expectedseqnumACKchksum)

Transport Layer 3-48

GBN hoạt động

Transport Layer 3-49

Lặp coacute lựa chọn

becircn nhận thocircng baacuteo đatilde nhận đuacuteng tất cả từng goacutei một đệm (buffer) caacutec goacutei nếu cần thiết

becircn gửi chỉ gửi lại caacutec goacutei nagraveo khocircng nhận được ACK becircn gửi định thigrave đối với mỗi goacutei khocircng gửi ACK

cửa sổ becircn gửi N số thứ tự liecircn tục hạn chế số thứ tự caacutec goacutei khocircng gửi ACK

Transport Layer 3-50

Lặp coacute lựa chọn caacutec cửa sổ gửi nhận

Transport Layer 3-51

Lặp coacute lựa chọn

dữ liệu từ lớp trecircn nếu số thứ tự kế tiếp sẵn

sagraveng trong cửa sổ gửi goacutei

timeout(n) gửi lại goacutei n taacutei khởi tạo

bộ định thigrave

ACK(n) trong [sendbasesendbase+N]

đaacutenh dấu goacutei n lagrave đatilde nhận nếu goacutei khocircng ACK coacute n

nhỏ nhất dịch chuyển cửa sổ base đến số thứ tự khocircng ACK kế tiếp

Gửigoacutei n trong [rcvbase

rcvbase+N-1]

gửi ACK(n) khocircng thứ tự đệm

(buffer) coacute thứ tự truyền (cũng

truyền caacutec goacutei đatilde đệm coacute thứ tự) dịch chuyển cửa sổ đến goacutei chưa nhận kế tiếp

goacutei n trong [rcvbase-Nrcvbase-1]

ACK(n)

ngược lại lờ đi

Nhận

Transport Layer 3-52

Hoạt động của lặp coacute lựa chọn

Transport Layer 3-53

Lặp coacute lựa chọntigravenh trạng khoacute giải quyếtViacute dụ Số thứ tự 0 1 2 3 Kiacutech thước cửa sổ = 3

becircn nhận khocircng thấy sự khaacutec nhau trong 2 tigravenh huống

chuyển khocircng chiacutenh xaacutec dữ liệu trugraveng lặp như dữ liệu mới trong (a)

Hỏi quan hệ giữa datildey số thứ tự vagrave kiacutech thước cửa sổ

Transport Layer 3-54

Chương 3 Nội dung trigravenh bagravey

31 Caacutec dịch vụ lớp Transport

32 Multiplexing vagrave demultiplexing

33 Vận chuyển khocircng kết nối UDP

34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy

35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối

36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn

37 Điều khiển tắc nghẽn TCP

Transport Layer 3-55

TCP Tổng quan RFCs 793 1122 1323 2018 2581

dữ liệu full duplex luồng dữ liệu đi 2 chiều

trong cugraveng một kết nối MSS maximum

segment size ndash kiacutech thước đoạn tối đa

hướng kết nối bắt tay (trao đổi caacutec

thocircng điệp điều khiển) trạng thaacutei becircn gửi becircn nhận trước khi trao đổi dữ liệu

điều khiển luồng becircn gửi sẽ khocircng lấn aacutet

becircn nhận

point-to-point một becircn gửi một becircn

nhận tin cậy dograveng byte coacute

thứ tự khocircng ldquoranh giới thocircng

điệprdquo kecircnh liecircn lạc

TCP điều khiển luồng vagrave tắc nghẽn thiết lập kiacutech thước cửa sổ

caacutec bộ đệm gửi amp nhận

socketdoor

T C Psend buffer

T C Preceive buffer

socketdoor

segm ent

applicationwrites data

applicationreads data

Transport Layer 3-56

TCP cấu truacutec đoạn

port nguồn port điacutech

32 bits

dữ liệu ứng dụng(độ dagravei thay đổi)

số thứ tự

số ACKcửa sổ nhận

con trỏ URGchecksum

FSRPAUheadlen

notused

Tugravey chọn (độ dagravei thay đổi)

URG dữ liệu khẩn cấp(thường khocircng dugraveng)

ACK ACK hợp lệ

PSH push data now(thường khocircng dugraveng)

RST SYN FINthiết lập kết nối

(caacutec lệnh thiết lậpchia nhỏ)

số byte becircn nhận sẵn sagraveng chấp nhận

đếm bởi số bytecủa dữ liệu

Internetchecksum

(giống UDP)

Transport Layer 3-57

Caacutec số thứ tự TCP vagrave ACKCaacutec số thứ tự

dograveng byte ldquođaacutenh sốrdquo byte đầu tiecircn trong dữ liệu của đoạn

caacutec ACK số thứ tự của byte

kế tiếp được chờ đợi từ phiacutea becircn kia

ACK tiacutech lũyHỏi lagravem thế nagraveo becircn

nhận quản lyacute caacutec đoạn khocircng thứ tự Trả lời TCP khocircng

đề cập tugravey thuộc người hiện thực

Host A Host B

Seq=42 ACK=79 data = lsquoCrsquo

Seq=79 ACK=43 data = lsquoCrsquo

Seq=43 ACK=80

UsernhậplsquoCrsquo

host ACKsnhận phản hồi

lsquoCrsquo

host ACKsbaacuteo nhận

lsquoCrsquo phản hồingược lại lsquoCrsquo

timetigravenh huống telnet đơn giản

Transport Layer 3-58

TCP Round Trip Time vagraveTimeout

Hỏi Lagravem thế nagraveo để thiết lập giaacute trị TCP timeout

dagravei hơn RTT khaacutec với RTT

quaacute ngắn timeout sớm truyền lại khocircng

cần thiết quaacute dagravei phản ứng

chậm đối với việc mất maacutet goacutei

Hỏi Lagravem thế nagraveo để thiết lập RTT

SampleRTT thời gian được đo từ khi truyền đoạn đến khi baacuteo nhận ACK lờ đi việc truyền lại

SampleRTT sẽ thay đổi muốn ước lượng RTT ldquomượt hơnrdquo tiacutenh trung bigravenh một số giaacute

trị đo được gần đoacute khocircng chỉ SampleRTT hiện tại

Transport Layer 3-59

TCP Round Trip Time vagrave Timeout

EstimatedRTT = (1- )EstimatedRTT + SampleRTT

giaacute trị đặc trưng = 0125

Transport Layer 3-60

Viacute dụ đaacutenh giaacute RTTRTT gaiacsumassedu to fantasiaeurecomfr

100

150

200

250

300

350

1 8 15 22 29 36 43 50 57 64 71 78 85 92 99 106

time (seconnds)

RTT

(mill

isec

onds

)

SampleRTT Estimated RTT

Transport Layer 3-61

TCP Round Trip Time vagrave Timeout

Thiết lập timeout EstimtedRTT cộng ldquohệ số dự trữ an toagravenrdquo

sự biến thiecircn lớn trong EstimatedRTT -gt hệ số dự trữ an toagraven lớn hơn ước lượng đầu tiecircn về sự biến thiecircn của SampleRTT từ EstimatedRTT

TimeoutInterval = EstimatedRTT + 4DevRTT

DevRTT = (1-)DevRTT + |SampleRTT-EstimatedRTT|

(tiecircu biểu = 025)

Sau đoacute thiết lập timeout interval

Transport Layer 3-62

TCP truyền dữ liệu tin cậy

TCP tạo dịch vụ rdt trecircn dịch vụ khocircng tin cậy IP

caacutec đoạn Pipelined caacutec ACK tiacutech lũy TCP dugraveng bộ định thigrave

truyền lại đơn

Truyền lại được kiacutech hoạt bởi caacutec sự kiện timeout caacutec ack trugraveng lặp

luacutec đầu khảo saacutet caacutec becircn gửi TCP đơn giản lờ đi caacutec ack trugraveng lặp lờ đi điều khiển luồng

điều khiển tắc nghẽn

Transport Layer 3-63

TCP caacutec sự kiệndữ liệu đatilde nhận từ ứng

dụng tạo đoạn với số thứ

tự của noacute số thứ tự lagrave số theo

byte dữ liệu đầu tiecircn khởi động bộ định thigrave

nếu chưa chạy khoảng thời gian hết

hạn TimeOutInterval

timeout gửi lại đoạn nagraveo gacircy

ra timeout khởi động lại bộ định

thigrave Ack đatilde nhận

cập nhật caacutei gigrave sẽ được ACK

khởi động bộ định thigrave nếu coacute caacutec đoạn cograven chờ

Transport Layer 3-64

TCP becircn gửi(đơn giản)

NextSeqNum = InitialSeqNum SendBase = InitialSeqNum

loop (forever) switch(event)

event data received from application above create TCP segment with sequence number NextSeqNum if (timer currently not running) start timer pass segment to IP NextSeqNum = NextSeqNum + length(data)

event timer timeout retransmit not-yet-acknowledged segment with smallest sequence number start timer

event ACK received with ACK field value of y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer

end of loop forever

Chuacute thiacutechbull SendBase-1 byte vừa được ACK tiacutech lũy Viacute dụbull SendBase-1 = 71y= 73 vigrave thế becircn nhận muốn 73+ y gt SendBase vigrave thế dữ liệu mới được chấp nhận

Transport Layer 3-65

TCP caacutec tigravenh huống truyền lại

Host A

Seq=100 20 bytes data

ACK=100

timetimeout sớm

Host B

Seq=92 8 bytes data

ACK=120

Seq=92 8 bytes data

Seq=

92

tim

eout

ACK=120

Host A

Seq=92 8 bytes data

ACK=100

loss

tim

eout

tigravenh huống mất ACK

Host B

X

Seq=92 8 bytes data

ACK=100

time

Seq=

92

tim

eout

SendBase= 100

SendBase= 120

SendBase= 120

Sendbase= 100

Transport Layer 3-66

TCP caacutec tigravenh huống truyền lại (tt)Host A

Seq=92 8 bytes data

ACK=100

loss

tim

eout

Cumulative ACK scenario

Host B

X

Seq=100 20 bytes data

ACK=120

time

SendBase= 120

Transport Layer 3-67

TCP sinh ra ACK [RFC 1122 RFC 2581]

Sự kiện tại becircn nhận

Đoạn đến với đuacuteng số thứ tự mong muốn Tất cả dữ liệu đếnđatilde được ACK

Đoạn đến với đuacuteng số thứ tự mong muốn Một đoạn khaacutec đangchờ ACK

Caacutec đoạn đến khocircng thứ tựlớn hơn số thứ tự đoạn mong muốnCoacute khoảng trống

Đoạn đếnlấp đầy từng phần hoặc toagraven bộkhoảng trống

TCP becircn nhận hagravenh động

ACK trễ Chờ đến 500mscho đoạn kế tiếp Nếu khocircng coacute đoạnkế tiếp gửi ACK

Gửi ngay một ACK tiacutech lũy chấp nhậncho cả caacutec đoạn theo thứ tự

Gửi ngay ACK trugraveng lặp chỉ thị số thứ tựđoạn của byte kế tiếp đang mong chờ

Gửi ngay ACK với điều kiện lagrave đoạnbắt đầu ngay điểm coacute khoảng trống

Transport Layer 3-68

Truyền lại nhanh

Chu kỳ Time-out thường tương đối dagravei độ trễ dagravei trước khi gửi

lại goacutei đatilde mất

Xaacutec nhận caacutec đoạn đatilde mất bằng caacutec ACK trugraveng lặp becircn gửi thường gửi

nhiều đoạn song song Nếu đoạn bị mất sẽ

xảy ra tigravenh trạng giống như nhiều ACK trugraveng nhau

Nếu becircn gửi nhận 3 ACK của cugraveng một dữ liệu noacute cho lagrave đoạn sau dữ liệu đatilde ACK bị mất Truyền lại nhanh gửi

lại đoạn trước khi bộ định thigrave hết hạn

Transport Layer 3-69

sự kiện ACK đatilde nhận với trường lagrave y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer else increment count of dup ACKs received for y if (count of dup ACKs received for y = 3) resend segment with sequence number y

Giải thuật truyền lại nhanh

một ACK trugraveng lặp cho đoạn đatilde được ACK

Truyền lại nhanh

Transport Layer 3-70

Chương 3 Nội dung trigravenh bagravey

31 Caacutec dịch vụ lớp Transport

32 Multiplexing vagrave demultiplexing

33 Vận chuyển khocircng kết nối UDP

34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy

35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối

36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn

37 Điều khiển tắc nghẽn TCP

Transport Layer 3-71

TCP điều khiển luồng

becircn nhận của kết nối TCP coacute một bộ đệm nhận

dịch vụ so trugraveng tốc độ so trugraveng tốc độ gửi với tốc độ nhận của ứng dụng

tiến trigravenh ứng dụng coacute thể chậm tại luacutec đọc bộ đệm

becircn gửi sẽ khocircng lagravem tragraven bộ đệm vigrave truyền quaacute nhiều vagrave

quaacute nhanh

điều khiển luồng

Transport Layer 3-72

TCP điều khiển luồng caacutech lagravem

(Giả sử becircn nhận TCP loại bỏ caacutec đoạn khocircng coacute thứ tự)

dự phograveng trong bộ đệm= RcvWindow

= RcvBuffer-[LastByteRcvd - LastByteRead]

Becircn nhận thocircng baacuteo khoảng dự trữ nhờ giaacute trị RcvWindow trong caacutec đoạn

Becircn gửi hạn chế dữ liệu khocircng được ACK vagraveo RcvWindow bảo đảm bộ đệm nhận

khocircng tragraven

Transport Layer 3-73

Chương 3 Nội dung trigravenh bagravey

31 Caacutec dịch vụ lớp Transport

32 Multiplexing vagrave demultiplexing

33 Vận chuyển khocircng kết nối UDP

34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy

35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối

36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn

37 Điều khiển tắc nghẽn TCP

Transport Layer 3-74

TCP quản lyacute kết nối

Chuacute yacute Becircn gửi vagrave becircn nhận TCP thiết lập ldquokết nốirdquo trước khi trao đổi dữ liệu

khởi tạo caacutec biến TCP caacutec số thứ tự đoạn thocircng tin caacutec bộ đệm điều

khiển luồng (như RcvWindow)

client người khởi xướng kết nối

Socket clientSocket = new Socket(hostnameport

number) server được tiếp xuacutec bởi

client Socket connectionSocket =

welcomeSocketaccept()

3 phương phaacutep bắt tay

Bước 1 client host gửi đoạnTCP SYN đến server xaacutec định số thứ tự khởi đầu khocircng phải dữ liệu

Bước 2 server host nhận SYN trả lời với đoạn SYNACK

server cấp phaacutet caacutec bộ đệm

xaacutec định số thứ tự khởi đầuBước 3 client nhận SYNACK trả

lời với đoạn ACK (coacute thể chứa dữ liệu)

Transport Layer 3-75

TCP quản lyacute kết nối (tt)

Đoacuteng một kết nối

client đoacuteng socket clientSocketclose()

Bước 1 client gửi đoạn điều khiển TCP FIN đến server

Bước 2 server nhận FIN trả lời với ACK Đoacuteng kết nối gửi FIN

client

FIN

server

ACK

ACK

FIN

đoacuteng

đoacuteng

đatilde đoacutengthời g

ian c

hờ

Transport Layer 3-76

TCP quản lyacute kết nối (tt)

Bước 3 client nhận FIN trả lời với ACK

Trong khoảng ldquothời gian chờrdquo ndash sẽ phản hồi với ACK để nhận caacutec FIN

Bước 4 server nhận ACK Kết nối đatilde đoacuteng

Chuacute yacute với một sửa đổi nhỏ coacute thể quản lyacute nhiều FIN đồng thời

client

FIN

server

ACK

ACK

FIN

đang đoacuteng

đang đoacuteng

đatilde đoacuteng

thời g

ian c

hờ

đatilde đoacuteng

Transport Layer 3-77

TCP quản lyacute kết nối (tt)

chu kỳ sống củaTCP client

chu kỳ sống củaTCP server

Transport Layer 3-78

Chương 3 Nội dung trigravenh bagravey

31 Caacutec dịch vụ lớp Transport

32 Multiplexing vagrave demultiplexing

33 Vận chuyển khocircng kết nối UDP

34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy

35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối

36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn

37 Điều khiển tắc nghẽn TCP

Transport Layer 3-79

Caacutec nguyecircn lyacute điều khiển tắc nghẽn

Tắc nghẽn ldquoquaacute nhiều nguồn gửi quaacute nhanh vagrave quaacute nhiều

dữ liệu đến mạngrdquo khaacutec với điều khiển luồng caacutec biểu hiện

caacutec goacutei bị mất (tragraven bộ đệm tại caacutec router) caacutec độ trễ quaacute dagravei (xếp hagraveng trong bộ đệm

của router) lagrave 1 trong 10 vấn đề nan giải nhất

Transport Layer 3-80

Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 1

2 gửi 2 nhận 1 router caacutec bộ

đệm khocircng giới hạn

khocircng coacute truyền lại

caacutec độ trễ lớn hơn khi tắc nghẽn

năng suất coacute thể đạt tối đa

unlimited shared output link buffers

Host Ain original data

Host B

out

Transport Layer 3-81

Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 2

1 router caacutec bộ đệm coacute giới hạn becircn gửi truyền lại caacutec goacutei đatilde mất

chia sẻ vocirc hạncaacutec bộ đệm ouput

Host A in dữ liệu gốc

Host B

out

in dữ liệu gốc cugraveng với dữ liệu truyền lại

Transport Layer 3-82

Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 2 luocircn luocircn

truyền lại ldquohoagraven toagravenrdquo chỉ khi mất maacutet

truyền lại vigrave trễ (khocircng mất) lagravem cho lớn hơn với cugraveng

in

out

=

in

out

gt

in

out

ldquocaacutec chi phiacuterdquo của tắc nghẽn nhiều việc (truyền lại) caacutec truyền lại khocircng cần thiết liecircn kết nhiều bản sao của

goacutei

R2

R2in

ou

t

b

R2

R2in

ou

t

a

R2

R2in

ou

t

c

R4

R3

Transport Layer 3-83

Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 3 4 người gửi caacutec đường qua nhiều hop timeouttruyền lại

in

Hỏi điều gigrave xảy ra nếu vagrave tăng lecircn

in

chia sẻ vocirc hạncaacutec bộ đệm ouput

Host Ain dữ liệu gốc

Host B

out

in dữ liệu gốc cugraveng với dữ liệu truyền lại

Transport Layer 3-84

Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 3

ldquochi phiacuterdquo khaacutec của tắc nghẽn khi caacutec goacutei bị bỏ bất kỳ ldquokhả năng truyền

upstream dugraveng cho goacutei đoacute sẽ bị latildeng phiacuterdquo

Host A

Host B

o

u

t

Transport Layer 3-85

Caacutec caacutech tiếp cận đối với điều khiển tắc nghẽn

điều khiển tắc nghẽn end-end

khocircng coacute phản hồi rotilde ragraveng từ mạng

tắc nghẽn được suy ra từ việc quan saacutet caacutec hệ thống đầu cuối coacute mất maacutet trễ

tiếp cận được quản lyacute bởi TCP

điều khiển tắc nghẽn coacute sự hỗ trợ của mạng

caacutec router cung cấp phản hồi về caacutec hệ thống đầu cuối 1 bit duy nhất chỉ thị

tắc nghẽn (SNA DECbit TCPIP ECN ATM)

tốc độ sẽ gửi được xaacutec định rotilde ragraveng

2 caacutech

Transport Layer 3-86

Viacute dụ điều khiển tắc nghẽn ATM ABR

ABR tốc độ bit sẵn sagraveng

ldquodịch vụ mềm dẻordquo nếu đường gửi ldquochưa

hếtrdquo becircn gửi sẽ dugraveng

băng thocircng sẵn sagraveng nếu đường gửi tắc

nghẽn becircn gửi điều tiết với

tốc độ tối thiểu

RM (resource management)

gửi bởi becircn gửi rải raacutec với caacutec ocirc dữ liệu

caacutec bit trong ocirc thiết lập bởi caacutec switch bit NI khocircng tăng tốc độ

(tắc nghẽn nhẹ) bit CI tắc nghẽn rotilde rệt

Caacutec ocirc RM được trả về becircn gửi từ becircn nhận với nguyecircn vẹn caacutec bit

Transport Layer 3-87

Viacute dụ điều khiển tắc nghẽn ATM ABR

trường 2-byte ER trong ocirc RM switch đatilde tắc nghẽn coacute thể coacute giaacute trị ER thấp hơn trong ocirc tốc độ gửi do đoacute coacute thể được hỗ trợ tối đa trecircn đường

EFCI bit trong caacutec ocirc dữ liệu được cagravei giaacute trị 1 trong switch đatilde tắc nghẽn nếu ocirc dữ liệu đứng trước ocirc RM coacute cagravei EFCI becircn gửi sẽ cagravei

bit CI trong ocirc RM trả về

Transport Layer 3-88

Chương 3 Nội dung trigravenh bagravey

31 Caacutec dịch vụ lớp Transport

32 Multiplexing vagrave demultiplexing

33 Vận chuyển khocircng kết nối UDP

34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy

35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối

36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn

37 Điều khiển tắc nghẽn TCP

Transport Layer 3-89

TCP điều khiển tắc nghẽn additive tăng lecircn multiplicative giảm xuống

8 Kbytes

16 Kbytes

24 Kbytes

time

congestionwindow

Caacutech tiếp cận tăng tốc độ truyền (kiacutech thước cửa sổ) tigravem khả năng băng thocircng coacute thể cho đến khi coacute mất maacutet xảy ra additive tăng lecircn tăng CongWin bởi 1 MSS

mỗi RTT cho đến khi coacute mất maacutet xảy ra multiplicative giảm xuống bỏ CongWin trong

nửa giai đoạn sau khi mất maacutet

timekiacutech

thư

ớc

cửa

sổ

tắc

nghẽ

n

Tigravem kiếm băng thocircng

Transport Layer 3-90

TCP điều khiển tắc nghẽn chi tiết

becircn gửi hạn chế việc truyền LastByteSent-LastByteAcked

CongWin Cocircng thức

CongWin thay đổi chức năng lagrave nhận biết tắc nghẽn trecircn mạng

Lagravem thế nagraveo becircn gửi nhận biết tắc nghẽn

mất maacutet xảy ra = timeout hoặc 3 ack trugraveng lặp

becircn gửi giảm tốc độ (CongWin) sau khi mất maacutet xảy ra

3 cơ chế AIMD khởi động chậm thận trọng sau khi coacute

caacutec sự kiện timeout

tốc độ = CongWin

RTT Bytess

Transport Layer 3-91

TCP khởi động chậm

Khi kết nối bắt đầu CongWin = 1 MSS Viacute dụ MSS = 500 bytes

amp RTT = 200 ms tốc độ khởi tạo = 20

kbps

băng thocircng sẵn sagraveng coacute thể gtgt MSSRTT mong muốn nhanh

choacuteng tăng tốc lecircn tốc độ coacute thể đaacutep ứng

Khi kết nối bắt đầu tăng tốc lecircn rất nhanh cho đến khi sự cố mất maacutet xảy ra đầu tiecircn

Transport Layer 3-92

TCP khởi động chậm (tt)

Khi kết nối bắt đầu tăng tốc lecircn rất nhanh cho đến khi sự cố mất maacutet xảy ra đầu tiecircn nhacircn đocirci CongWin mỗi

RTT hoagraven thagravenh nhờ tăng CongWin ứng với mỗi ACK đatilde nhận

Tổng kết tốc độ khởi đầu lagrave chậm nhưng sau đoacute tăng tốc rất nhanh

Host A

1 đoạn

RTT

Host B

thời gian

2 đoạn

4 đoạn

Transport Layer 3-93

Tinh chếHỏi Khi nagraveo việc tăng

tốc trở thagravenh tuyến tiacutenh

Trả lời Khi CongWin đạt đến 12 giaacute trị của noacute trước khi timeout

Hiện thực Ngưỡng thay đổi Tại thời điểm coacute sự cố

mất maacutet ngưỡng được cagravei giaacute trị bằng frac12 của CongWin ngay trước đoacute

Transport Layer 3-94

Tinh chế nhận biết mất maacutet

Sau 3 ACK trugraveng lặp CongWin sẽ giảm 12 kiacutech thước cửa sổ

tăng tuyến tiacutenh nhưng sau sự cố

timeout CongWin thay giaacute trị

bằng 1 MSS kiacutech thước cửa sổ

tăng cấp lũy thừa khi đến một ngưỡng

thigrave tăng tuyến tiacutenh

3 ACK trugraveng nhau chỉ ra khả năng truyền của mạng timeout chỉ thị ldquonhiều cảnh baacuteordquo về tigravenh huống tắc nghẽn

Nguyecircn lyacute

Transport Layer 3-95

Tổng kết TCP điều khiển tắc nghẽn

Khi CongWin dưới Threshold becircn gửi đang trong giai đoạn khởi động chậm kiacutech thước cửa sổ tăng nhanh theo cấp lũy thừa

Khi CongWin trecircn Threshold becircn gửi đang trong giai đoạn traacutenh tắc nghẽn kiacutech thước cửa sổ tăng nhanh theo cấp tuyến tiacutenh

Khi coacute 3 ACK trugraveng lặp xảy ra Threshold = CongWin2 vagrave CongWin = Threshold

Khi timeout xảy ra Threshold = CongWin2 vagrave CongWin = 1 MSS

Transport Layer 3-96

TCP điều khiển tắc nghẽn becircn gửi

Trạng thaacutei Sự kiện TCP becircn gửi hagravenh động Diễn giải

Slow Start (SS)-Khởi động chậm

ACK baacuteo nhận cho dữ liệu chưa ACK trước đoacute

CongWin = CongWin + MSS If (CongWin gt Threshold) cagravei đặt trạng thaacutei ldquoTraacutenh tắc nghẽnrdquo

Hậu quả lagravem tăng gấp đocirci CongWin mỗi RTT

CongestionAvoidance (CA) ndashTraacutenh tắc nghẽn

ACK baacuteo nhận cho dữ liệu chưa ACK trước đoacute

CongWin = CongWin+MSS (MSSCongWin)

Additive tăng lecircn lagravem tăng CongWin lecircn 1 MSS mỗi RTT

SS hoặc CA Sự cố mất maacutet xảy ra khi thấy coacute 3 ACK trugraveng lặp

Threshold = CongWin2 CongWin = Thresholdcagravei đặt trạng thaacutei ldquoTraacutenh tắc nghẽnrdquo

Khocirci phục nhanh hiện thực giảm xuống multiplicative CongWin sẽ khocircng giảm xuống dưới 1 MSS

SS hoặc CA Timeout Threshold = CongWin2 CongWin = 1 MSScagravei đặt trạng thaacutei ldquoKhởi động chậmrdquo

Vagraveo chế độ ldquoKhởi động chậmrdquo

SS hoặc CA ACK trugraveng lặp

Đếm ACK tăng lecircn cho đoạn vừa được ACK

CongWin vagrave Threshold khocircng thay đổi

Transport Layer 3-97

TCP throughput

Throughout trung bigravenh của TCP biểu diễn qua kiacutech thước của sổ vagrave RTT Bỏ qua trạng thaacutei ldquoKhởi động chậmrdquo

Cho W lagrave kiacutech thước cửa sổ khi coacute mất maacutet xảy ra

Khi kiacutech thước cửa sổ = W lưu lượng = WRTT

Chỉ ngay sau khi mất maacutet cửa sổ giảm xuống = W2 lưu lượng = W2RTT

throughout trung bigravenh 075 WRTT

Transport Layer 3-98

TCP tương lai

Viacute dụ caacutec đoạn dagravei 1500 byte RTT 100ms lưu lượng 10 Gbps

Kiacutech thước cửa sổ yecircu cầu W = 83333 đoạn trecircn đường truyền

Lưu lượng trong caacutec trường hợp mất maacutet

L = 210-10

Phiecircn bản mới của TCP dagravenh cho nhu cầu tốc độ cao

LRTT

MSS221

Transport Layer 3-99

Mục tiecircu nếu K phiecircn lagravem việc TCP chia sẻ kết nối cổ chai của băng thocircng lagrave R mỗi phiecircn coacute tốc độ trung bigravenh lagrave RK

TCP kết nối 1

router cổ chaikhả năng R

TCP kết nối 2

TCP tiacutenh cocircng bằng

Transport Layer 3-100

Tại sao phải TCP cocircng bằng

2 phiecircn lagravem việc cạnh tranh nhau Additive tăng lưu lượng tăng multiplicative giảm lưu lượng tương xứng

R

R

chia sẻ băng thocircng bằng nhau

Connection 1 throughputConnect

ion 2

th

roughput

traacutenh tắc nghẽn additive tăng lecircnmất maacutet giảm cửa sổ bằng 12

traacutenh tắc nghẽn additive tăng lecircnmất maacutet giảm cửa sổ bằng 12

Transport Layer 3-101

TCP tiacutenh cocircng bằng (tt)

Tiacutenh cocircng bằng amp UDP nhiều ứng dụng

thường khocircng dugraveng TCP khocircng muốn tốc độ bị

điều tiết do điều khiển tắc nghẽn

Thay bằng dugraveng UDP truyền audiovideo với

tốc độ ổn định chịu được mất maacutet

Nghiecircn cứu giao thức thacircn thiện với TCP

Tiacutenh cocircng bằng amp caacutec kết nối TCP song song

khocircng coacute gigrave ngăn cản việc ứng dụng mở caacutec kết nối song song giữa 2 host

Trigravenh duyệt Web lagravem giống như thế

Viacute dụ tốc độ R hỗ trợ 9 kết nối ứng dụng mới yecircu cầu 1

TCP coacute tốc độ R10 ứng dụng mới yecircu cầu 11

TCP coacute tốc độ R2

Transport Layer 3-102

Mocirc higravenh trễ

Hỏi Mất bao lacircu để nhận 1 đối tượng từ Web server sau khi gửi yecircu cầu

Bỏ qua tắc nghẽn trễ bị ảnh hưởng bởi

thiết lập kết nối TCP trễ truyền dữ liệu khởi động chậm

Notation caacutec giả định Giả sử một kết nối giữa

client vagrave server coacute tốc độ R

S MSS (bits) O kiacutech thước đối tượng

(bits) khocircng truyền lại (khocircng

mất maacutet khocircng hỏng)

Kiacutech thước cửa sổ Giả định 1 cửa sổ tắc

nghẽn cố định coacute W đoạn Sau đoacute cửa sổ thay đổi

mocirc higravenh khởi động chậm

Transport Layer 3-103

Cửa sổ tắc nghẽn cố định (1)

Trường hợp đầu tiecircnWSR gt RTT + SR cho

đoạn đầu tiecircn trong cửa sổ trả về trước khi cửa sổ dữ liệu gửi ACK

trễ = 2RTT + OR

Transport Layer 3-104

Cửa sổ tắc nghẽn cố định (2)

Trường hợp thứ hai WSR lt RTT + SR sent

chờ cho ACK sau khi gửi dữ liệu

trễ = 2RTT + OR+ (K-1)[SR + RTT - WSR]

Transport Layer 3-105

TCP Mocirc higravenh trễ Khởi động chậm (1)

Bacircy giờ giả sử kiacutech thước cửa sổ tăng lecircn tugravey theo quaacute trigravenh khởi động chậm

Độ trễ của một đối tượng sẽ lagrave

R

S

R

SRTTP

R

ORTTLatency P )12(2

trong đoacute P lagrave số lần TCP rảnh ở tại server

1min KQP

- trong đoacute Q lagrave số lần server rảnh nếu đối tượng đatilde khởi tạo kiacutech thước

- vagrave K lagrave số lượng cửa sổ bao trugravem đối tượng

Transport Layer 3-106

TCP Mocirc higravenh trễ Khởi động chậm (2)

RTT

initia te TCPconnection

requestobject

first w indow= S R

second w indow= 2S R

third w indow= 4S R

fourth w indow= 8S R

com pletetransm issionobject

delivered

tim e atc lient

tim e atserver

Viacute dụbull OS = 15 đoạnbull K = 4 cửa sổbull Q = 2bull P = minK-1Q = 2

Server rảnh P=2 lần

Caacutec thagravenh phần trễbull 2 RTT dagravenh cho thiết lập kết nối vagrave yecircu cầubull OR để truyền đối tượngbullthời gian server rảnh bởi vigrave khởi động chậm

Server rảnh P = minK-1Q lần

Transport Layer 3-107

TCP Mocirc higravenh trễ(3)

R

S

R

SRTTPRTT

R

O

R

SRTT

R

SRTT

R

O

idleTimeRTTR

O

P

kP

k

P

pp

)12(][2

]2[2

2delay

1

1

1

th window after the timeidle 2 1 kR

SRTT

R

S k

ementacknowledg receivesserver until

segment send tostartsserver when from time RTTR

S

window kth the transmit totime2 1

R

Sk

RTT

initia te TCPconnection

requestobject

first w indow= S R

second w indow= 2S R

third w indow= 4S R

fourth w indow= 8S R

com pletetransm issionobject

delivered

tim e atc lient

tim e atserver

Transport Layer 3-108

TCP Mocirc higravenh trễ (4)

)1(log

)1(logmin

12min

222min

222min

2

2

110

110

S

OS

Okk

S

Ok

SOk

OSSSkK

k

k

k

caacutech tiacutenh toaacuten Q tương tự (xem HW)

K = số lượng cửa sổ bao trugravem đối tượngLagravem thế nagraveo tiacutenh được K

Transport Layer 3-109

HTTP Mocirc higravenh Giả sử trang Web chứa

1 trang HTML (kiacutech thước O bits) M higravenh ảnh (mỗi caacutei kiacutech thướcO bits)

HTTP khocircng bền vững M+1 TCP kết nối Thời gian đaacutep ứng = (M+1)OR + (M+1)2RTT + tổng số thời

gian rảnh HTTP bền vững

2 RTT để yecircu cầu vagrave nhận file HTML 1 RTT để yecircu cầu vagrave nhận M higravenh ảnh Thời gian đaacutep ứng = (M+1)OR + 3RTT + tổng số thời gian

rảnh HTTP khocircng bền vững với X kết nối song song

Giả sử MX lagrave số nguyecircn 1 TCP kết nối cho file MX thiết lập caacutec kết nối song song cho caacutec higravenh ảnh Thời gian đaacutep ứng = (M+1)OR + (MX + 1)2RTT + tổng số

thời gian rảnh

Transport Layer 3-110

02468

101214161820

28Kbps

100Kbps

1Mbps

10Mbps

non-persistent

persistent

parallel non-persistent

HTTP thời gian đaacutep ứng (giacircy)RTT = 100 msec O = 5 Kbytes M=10 vagrave X=5

Với băng thocircng thấp thời gian kết nối amp đaacutep ứng trội hơn thời gian truyền

Caacutec kết nối bền vững chỉ cho sự cải thiện khocircng đaacuteng kể trecircn caacutec kết nối song song

Transport Layer 3-111

0

10

20

30

40

50

60

70

28Kbps

100Kbps

1Mbps

10Mbps

non-persistent

persistent

parallel non-persistent

HTTP thời gian đaacutep ứng (giacircy)

RTT =1 sec O = 5 Kbytes M=10 and X=5

Với RTT lớn hơn thời gian đaacutep ứng trội hơn thời gian trễ chờ thiết lập kết nốiTCP amp khởi động chậm Caacutec kết nối bền vững bacircy giờ cho thấy cải thiện rotilde rệt đặc biệtvới caacutec mạng băng thocircng cao

Transport Layer 3-112

Chương 3 Tổng kết caacutec nguyecircn lyacute của caacutec

dịch vụ lớp transport multiplexing

demultiplexing truyền dữ liệu tin cậy điều khiển luồng điều khiển tắc nghẽn

khởi tạo vagrave hiện thực trong Internet UDP TCP

Tiếp theo nghiecircn cứu xong

caacutec vấn đề ldquongoagravei biecircnrdquo (caacutec lớp application transport)

chuẩn bị vagraveo phần ldquolotildeirdquo của mạng

  • Slide 1
  • Chương 3 Lớp Transport
  • Chương 3 Nội dung trigravenh bagravey
  • Caacutec dịch vụ vagrave giao thức Transport
  • Lớp Transport với lớp network
  • Caacutec giao thức lớp transport trecircn Internet
  • Slide 7
  • Multiplexingdemultiplexing
  • Demultiplexing lagravem việc như thế nagraveo
  • Demultiplexing khocircng kết nối
  • Demultiplexing khocircng kết nối (tiếp)
  • Demultiplexing hướng kết nối
  • Demultiplexing hướng kết nối (tiếp)
  • Demultiplexing hướng kết nối Threaded Web Server
  • Slide 15
  • UDP User Datagram Protocol [RFC 768]
  • UDP (tt)
  • UDP checksum
  • Viacute dụ Checksum
  • Slide 20
  • Caacutec nguyecircn lyacute truyền dữ liệu tin cậy
  • Slide 22
  • Slide 23
  • Truyền dữ liệu tin cậy
  • Slide 25
  • Rdt10 truyền dữ liệu tin cậy trecircn 1 kecircnh truyền tin cậy
  • Rdt20 kecircnh với caacutec lỗi
  • rdt20 đặc tả FSM
  • rdt20 hoạt động khi khocircng lỗi
  • rdt20 hoạt động khi coacute lỗi
  • rdt20 coacute lỗ hổng nghiecircm trọng
  • rdt21 người gửi quản lyacute caacutec ACKNAK bị hỏng
  • Slide 33
  • rdt21 thảo luận
  • rdt22 một giao thức khocircng cần NAK
  • rdt22 gửi nhận caacutec mảnh
  • rdt30 caacutec kecircnh với lỗi vagrave mất maacutet
  • rdt30 gửi
  • hagravenh động của rdt30
  • Slide 40
  • Hiệu suất của rdt30
  • rdt30 hoạt động dừng-vagrave-chờ
  • Caacutec giao thức Pipelined
  • Pipelining độ khả dụng tăng
  • Go-Back-N
  • GBN becircn gửi mở rộng FSM
  • GBN becircn nhận mở rộng FSM
  • GBN hoạt động
  • Lặp coacute lựa chọn
  • Lặp coacute lựa chọn caacutec cửa sổ gửi nhận
  • Slide 51
  • Hoạt động của lặp coacute lựa chọn
  • Lặp coacute lựa chọn tigravenh trạng khoacute giải quyết
  • Slide 54
  • TCP Tổng quan RFCs 793 1122 1323 2018 2581
  • TCP cấu truacutec đoạn
  • Caacutec số thứ tự TCP vagrave ACK
  • TCP Round Trip Time vagraveTimeout
  • TCP Round Trip Time vagrave Timeout
  • Viacute dụ đaacutenh giaacute RTT
  • Slide 61
  • TCP truyền dữ liệu tin cậy
  • TCP caacutec sự kiện
  • TCP becircn gửi (đơn giản)
  • TCP caacutec tigravenh huống truyền lại
  • TCP caacutec tigravenh huống truyền lại (tt)
  • TCP sinh ra ACK [RFC 1122 RFC 2581]
  • Truyền lại nhanh
  • Giải thuật truyền lại nhanh
  • Slide 70
  • TCP điều khiển luồng
  • TCP điều khiển luồng caacutech lagravem
  • Slide 73
  • TCP quản lyacute kết nối
  • TCP quản lyacute kết nối (tt)
  • Slide 76
  • Slide 77
  • Slide 78
  • Caacutec nguyecircn lyacute điều khiển tắc nghẽn
  • Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 1
  • Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 2
  • Slide 82
  • Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 3
  • Slide 84
  • Caacutec caacutech tiếp cận đối với điều khiển tắc nghẽn
  • Viacute dụ điều khiển tắc nghẽn ATM ABR
  • Slide 87
  • Slide 88
  • TCP điều khiển tắc nghẽn additive tăng lecircn multiplicative giảm xuống
  • TCP điều khiển tắc nghẽn chi tiết
  • TCP khởi động chậm
  • TCP khởi động chậm (tt)
  • Tinh chế
  • Tinh chế nhận biết mất maacutet
  • Tổng kết TCP điều khiển tắc nghẽn
  • TCP điều khiển tắc nghẽn becircn gửi
  • TCP throughput
  • TCP tương lai
  • TCP tiacutenh cocircng bằng
  • Tại sao phải TCP cocircng bằng
  • TCP tiacutenh cocircng bằng (tt)
  • Mocirc higravenh trễ
  • Cửa sổ tắc nghẽn cố định (1)
  • Cửa sổ tắc nghẽn cố định (2)
  • TCP Mocirc higravenh trễ Khởi động chậm (1)
  • TCP Mocirc higravenh trễ Khởi động chậm (2)
  • TCP Mocirc higravenh trễ(3)
  • TCP Mocirc higravenh trễ (4)
  • HTTP Mocirc higravenh
  • Slide 110
  • Slide 111
  • Chương 3 Tổng kết

Transport Layer 3-19

Viacute dụ Checksum Lưu yacute

Khi cộng caacutec số một bit nhớ ở phiacutea cao nhất coacute thể sẽ phải thecircm vagraveo kết quả

Viacute dụ cộng hai số nguyecircn 16-bit

1 1 1 1 0 0 1 1 0 0 1 1 0 0 1 1 01 1 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1

1 1 0 1 1 1 0 1 1 1 0 1 1 1 0 1 1

1 1 0 1 1 1 0 1 1 1 0 1 1 1 1 0 01 0 1 0 0 0 1 0 0 0 1 0 0 0 0 1 1

bit dư

tổngchecksum

Transport Layer 3-20

Chương 3 Nội dung trigravenh bagravey

31 Caacutec dịch vụ lớp Transport

32 Multiplexing vagrave demultiplexing

33 Vận chuyển khocircng kết nối UDP

34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy

35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối

36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn

37 Điều khiển tắc nghẽn TCP

Transport Layer 3-21

Caacutec nguyecircn lyacute truyền dữ liệu tin cậy quan trọng trong caacutec lớp application transport link lagrave danh saacutech 10 vấn đề quan trọng nhất của mạng

caacutec đặc thugrave của kecircnh truyền khocircng tin cậy sẽ xaacutec định sự phức tạp của giao thức truyền dữ liệu data transfer protocol (rdt)

Transport Layer 3-22

Caacutec nguyecircn lyacute truyền dữ liệu tin cậy quan trọng trong caacutec lớp application transport link lagrave danh saacutech 10 vấn đề quan trọng nhất của mạng

caacutec đặc thugrave của kecircnh truyền khocircng tin cậy sẽ xaacutec định sự phức tạp của giao thức truyền dữ liệu data transfer protocol (rdt)

Transport Layer 3-23

Caacutec nguyecircn lyacute truyền dữ liệu tin cậy quan trọng trong caacutec lớp application transport link lagrave danh saacutech 10 vấn đề quan trọng nhất của mạng

caacutec đặc thugrave của kecircnh truyền khocircng tin cậy sẽ xaacutec định sự phức tạp của giao thức truyền dữ liệu data transfer protocol (rdt)

Transport Layer 3-24

Truyền dữ liệu tin cậy

sendside

receiveside

rdt_send() được gọi bởi lớp app Chuyển dữ liệu cần truyền

đến lớp cao hơn becircn nhận

udt_send() được gọi bởi rdt để truyền caacutec goacutei trecircn kecircnh khocircng tin cậy đến nơi

nhận

rdt_rcv() được gọi khi goacutei đến kecircnh becircn nhận

deliver_data() được gọi bởi rdt để truyền dữ liệu

đến lớp cao hơn

Transport Layer 3-25

Truyền dữ liệu tin cậy

Sẽ chỉ xem xeacutet truyền dữ liệu theo 1 hướng duy

nhất nhưng điều khiển luồng thocircng tin sẽ theo cả 2

chiều

dugraveng maacutey trạng thaacutei hữu hạn (finite state machines-FSM) để xaacutec định người gửi người nhận

trthaacutei1

trthaacutei2

sự kiện gacircy ra trạng thaacutei truyềncaacutec hagravenh động xảy ra khi truyền

trạng thaacutei khi ở ldquotrạng thaacuteirdquo nagravey thigrave

trạng thaacutei kế tiếp duy nhất được xaacutec định bởi sự kiện kế

tiếp

sự kiệncaacutec hagravenh động

Transport Layer 3-26

Rdt10 truyền dữ liệu tin cậy trecircn 1 kecircnh truyền tin cậy

kecircnh ưu tiecircn tin cậy hoagraven toagraven khocircng coacute caacutec lỗi khocircng mất maacutet caacutec goacutei

caacutec FSM phacircn biệt cho người gửi người nhận người gửi gửi dữ liệu vagraveo kecircnh ưu tiecircn người nhận nhận dữ liệu từ kecircnh ưu tiecircn

chờ gọi từ lớp trecircn packet = make_pkt(data)

udt_send(packet)

rdt_send(data)

extract (packetdata)deliver_data(data)

chờ gọi từ lớp dưới

rdt_rcv(packet)

người gửi người nhận

Transport Layer 3-27

Rdt20 kecircnh với caacutec lỗi

kecircnh ưu tiecircn coacute thể bật lecircn một số bit trong goacutei checksum để kiểm tra caacutec lỗi

Hỏi lagravem sao khocirci phục caacutec lỗi acknowledgements (ACKs) becircn nhận rotilde ragraveng thocircng

baacuteo cho becircn gửi rằng quaacute trigravenh nhận goacutei tốt negative acknowledgements (NAKs) becircn nhận rotilde ragraveng

thocircng baacuteo cho becircn gửi rằng quaacute trigravenh nhận goacutei coacute lỗi người gửi gửi lại goacutei nagraveo được xaacutec nhận lagrave NAK

caacutec cơ chế mới trong rdt20 (sau rdt10) kiểm tra lỗi nhận phản hồi caacutec thocircng điệp điều khiển (ACKNAK)

becircn nhận becircn gửi

Transport Layer 3-28

rdt20 đặc tả FSM

chờ gọi từ lớp trecircn

snkpkt = make_pkt(data checksum)udt_send(sndpkt)

extract(rcvpktdata)deliver_data(data)udt_send(ACK)

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)

rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp isNAK(rcvpkt)

udt_send(NAK)

rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)

chờ ACK hoặc NAK

chờ gọi từ lớp dưới

người gửi

người nhậnrdt_send(data)

Transport Layer 3-29

rdt20 hoạt động khi khocircng lỗi

chờ gọi từ lớp dưới

snkpkt = make_pkt(data checksum)udt_send(sndpkt)

extract(rcvpktdata)deliver_data(data)udt_send(ACK)

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)

rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp isNAK(rcvpkt)

udt_send(NAK)

rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)

chờ ACK hoặc NAK

chờ gọi từ lớp dưới

rdt_send(data)

Transport Layer 3-30

rdt20 hoạt động khi coacute lỗi

chờ gọi từ lớp dưới

snkpkt = make_pkt(data checksum)udt_send(sndpkt)

extract(rcvpktdata)deliver_data(data)udt_send(ACK)

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)

rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp isNAK(rcvpkt)

udt_send(NAK)

rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)

chờ ACK hoặc NAK

chờ gọi từ lớp dưới

rdt_send(data)

Transport Layer 3-31

rdt20 coacute lỗ hổng nghiecircm trọngĐiều gigrave xảy ra nếu

ACKNAK bị hỏng người gửi khocircng biết điều

gigrave đatilde xảy ra tại becircn nhận

khocircng thể đơn phương truyền lại khả năng trugraveng lặp

Quản lyacute trugraveng lặp người gửi truyền lại goacutei

hiện tại nếu ACKNAK bị hỏng

người gửi thecircm số thứ tự vagraveo mỗi goacutei

người nhận hủy (khocircng nhận) goacutei trugraveng lặp

Người gửi gửi 1 goacutei sau đoacute dừng lại chờ phản hồitừ người nhận

dừng vagrave chờ

Transport Layer 3-32

rdt21 người gửi quản lyacute caacutec ACKNAK bị hỏng

chờ gọi 0 từ lớp trecircn

sndpkt = make_pkt(0 data checksum)udt_send(sndpkt)

rdt_send(data)

chờ ACK hoặc NAK

0 udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) ||isNAK(rcvpkt) )

sndpkt = make_pkt(1 data checksum)udt_send(sndpkt)

rdt_send(data)

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) ||isNAK(rcvpkt) )

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt)

chờ gọi 1 từ lớp trecircn

chờ ACK hoặc NAK

1

Transport Layer 3-33

rdt21 người gửi quản lyacute caacutec ACKNAK bị hỏng

chờ 0 từ dưới

sndpkt = make_pkt(NAK chksum)udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp not corrupt(rcvpkt) ampamp has_seq0(rcvpkt)

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp has_seq1(rcvpkt)

extract(rcvpktdata)deliver_data(data)sndpkt = make_pkt(ACK chksum)udt_send(sndpkt)

chờ 1 từ dưới

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp has_seq0(rcvpkt)

extract(rcvpktdata)deliver_data(data)sndpkt = make_pkt(ACK chksum)udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp (corrupt(rcvpkt)

sndpkt = make_pkt(ACK chksum)udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp not corrupt(rcvpkt) ampamp has_seq1(rcvpkt)

rdt_rcv(rcvpkt) ampamp (corrupt(rcvpkt)

sndpkt = make_pkt(ACK chksum)udt_send(sndpkt)

sndpkt = make_pkt(NAK chksum)udt_send(sndpkt)

Transport Layer 3-34

rdt21 thảo luận

người gửi số thứ tự thecircm vagraveo

goacutei chỉ cần hai số thứ tự

(01) lagrave đủ Tại sao phải kiểm tra nếu việc

nhận ACKNAK bị hỏng

số trạng thaacutei tăng lecircn 2 lần trạng thaacutei phải ldquonhớrdquo

goacutei ldquohiện tạirdquo coacute số thứ tự lagrave 0 hay 1

người nhận phải kiểm tra coacute

nhận trugraveng goacutei khocircng trạng thaacutei chỉ rotilde coacute

hay khocircng mong chờ số thứ tự 0 hoặc 1

chuacute yacute người nhận khocircng biết ACKNAK vừa rồi của noacute coacute được người gửi nhận tốt hay khocircng

Transport Layer 3-35

rdt22 một giao thức khocircng cần NAK

chức năng giống như rdt21 chỉ dugraveng caacutec ACK thay cho NAK người nhận gửi ACK cho goacutei vừa

rồi đatilde nhận tốt người nhận phải rotilde ragraveng chegraven số thứ tự của goacutei vừa ACK

trugraveng ACK tại người gửi hậu quả giống như hagravenh động của NAK truyền lại goacutei vừa rồi

Transport Layer 3-36

rdt22 gửi nhận caacutec mảnh

Chờ cho gọi 0 từ

trecircn

sndpkt = make_pkt(0 data checksum)udt_send(sndpkt)

rdt_send(data)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) || isACK(rcvpkt1) )

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt0)

Chờ cho ACK

0

gửi phacircn mảnhFSM

Chờ cho gọi

0 từ dưới

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp has_seq1(rcvpkt)

extract(rcvpktdata)deliver_data(data)sndpkt = make_pkt(ACK1 chksum)udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp (corrupt(rcvpkt) || has_seq1(rcvpkt))

udt_send(sndpkt)

nhận phacircn mảnhFSM

Transport Layer 3-37

rdt30 caacutec kecircnh với lỗi vagrave mất maacutet

Giả định mới kecircnh ưu tiecircn cũng coacute thể lagravem mất caacutec goacutei (dữ liệu hoặc caacutec ACK) checksum số thứ tự

caacutec ACK caacutec việc truyền lại sẽ hỗ trợ nhưng khocircng đủ

Caacutech tiếp cận người gửi chờ ACK trong khoảng thời gian ldquochấp nhận đượcrdquo

truyền lại nếu khocircng nhận ACK trong khoảng thời gian nagravey

nếu goacutei (hoặc ACK) chỉ trễ (khocircng mất) truyền lại sẽ gacircy trugraveng

nhưng dugraveng số thứ tự sẽ giải quyết được

người nhận phải xaacutec định số thứ tự của goacutei vừa gửi ACK

cần bộ định thigrave đếm lugravei

Transport Layer 3-38

rdt30 gửi

sndpkt = make_pkt(0 data checksum)udt_send(sndpkt)start_timer

rdt_send(data)

Chờ cho

ACK 0

rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) ||isACK(rcvpkt1) )

Chờ cho gọi 1 từ trecircn

sndpkt = make_pkt(1 data checksum)udt_send(sndpkt)start_timer

rdt_send(data)

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt0)

rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) ||isACK(rcvpkt0) )

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt1)

stop_timerstop_timer

udt_send(sndpkt)start_timer

timeout

udt_send(sndpkt)start_timer

timeout

rdt_rcv(rcvpkt)

Chờ cho gọi 0 từ trecircn

Chờ cho

ACK 1

rdt_rcv(rcvpkt)

Transport Layer 3-39

hagravenh động của rdt30

Transport Layer 3-40

hagravenh động của rdt30

Transport Layer 3-41

Hiệu suất của rdt30

rdt30 lagravem việc được nhưng đaacutenh giaacute hiệu suất hơi rắc rối viacute dụ liecircn kết 1 Gbps trễ lan truyền giữa hai đầu cuối lagrave 15

ms goacutei 1KB

T truyền = 8kbpkt109 bsec

= 8 microsec

U sender độ khả dụng ndash

U sender

= 008

30008 = 000027

microseconds

L R

RTT + L R =

L (độ dagravei goacutei tiacutenh bằng bits)R (tốc độ truyền bps)

=

goacutei 1KB mỗi 30 msec -gt 33kBs trecircn đường truyền 1 Gbps giao thức network hạn chế việc dugraveng caacutec tagravei nguyecircn vật

lyacute

Transport Layer 3-42

rdt30 hoạt động dừng-vagrave-chờ

goacutei đầu tiecircn đatilde truyền t = 0

gửi nhận

RTT

goacutei cuối cugraveng đatilde truyền t = L R

goacutei đầu tiecircn đatilde đếngoacutei cuối cugraveng đatilde đến gửi ACK

ACK đến gửi goacutei kế tiếp t = RTT + L R

U sender

= 008

30008 = 000027

microseconds

L R

RTT + L R =

Transport Layer 3-43

Caacutec giao thức Pipelined

Pipelining người gửi cho pheacutep gửi nhiều goacutei đồng thời khocircng cần chờ baacuteo nhận được nhoacutem caacutec số thứ tự phải tăng dần phải coacute bộ nhớ đệm tại nơi gửi vagravehoặc nơi nhận

hai dạng phổ biến của caacutec giao thức pipelined go-Back-N Lặp coacute lựa chọn

Transport Layer 3-44

Pipelining độ khả dụng tăng

goacutei đầu tiecircn đatilde truyền t = 0

sender receiver

RTT

goacutei cuối cugraveng đatilde truyền t = L R

goacutei đầu tiecircn đatilde đếngoacutei cuối cugraveng đatilde đến gửi ACK

ACK đến gửi goacuteikế tiếp t = RTT + L R

bit cuối của goacutei thứ 2 đến gửi ACKbit cuối của goacutei thứ 3 đến gửi ACK

U sender

= 024

30008 = 00008

microseconds

3 L R

RTT + L R =

Độ khả dụng tăng lecircngấp 3 lần

Transport Layer 3-45

Go-Back-NBecircn gửi k-bit số thứ tự trong header của goacutei ldquocửa sổrdquo tăng lecircn đến N cho pheacutep gửi caacutec goacutei liecircn tục khocircng cần ACK

ACK(n) ACKs tất cả caacutec goacutei đến chứa số thứ tự n ndash ldquoACK tiacutech lũyrdquo coacute thể nhận caacutec ACK trugraveng lặp (xem becircn nhận)

định thigrave cho mỗi goacutei trecircn đường truyền timeout(n) gửi lại goacutei n vagrave tất cả caacutec goacutei coacute số thứ tự cao

hơn trong cửa sổ

Transport Layer 3-46

GBN becircn gửi mở rộng FSM

chờ start_timerudt_send(sndpkt[base])udt_send(sndpkt[base+1])hellipudt_send(sndpkt[nextseqnum-1])

timeout

rdt_send(data)

if (nextseqnum lt base+N) sndpkt[nextseqnum] = make_pkt(nextseqnumdatachksum) udt_send(sndpkt[nextseqnum]) if (base == nextseqnum) start_timer nextseqnum++ else refuse_data(data)

base = getacknum(rcvpkt)+1If (base == nextseqnum) stop_timer else start_timer

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)

base=1nextseqnum=1

rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)

Transport Layer 3-47

GBN becircn nhận mở rộng FSM

ACK-duy nhất luocircn luocircn gửi ACK cho goacutei đatilde nhận đuacuteng với số thứ tự xếp hạng cao nhất coacute thể sinh ra caacutec ACK trugraveng nhau chỉ cần nhớ expectedseqnum

goacutei khocircng theo thứ tự hủy -gt khocircng nhận vagraveo bộ đệm gửi lại ACK với số thứ tự xếp hạng cao nhất

chờ

udt_send(sndpkt)

default

rdt_rcv(rcvpkt) ampamp notcurrupt(rcvpkt) ampamp hasseqnum(rcvpktexpectedseqnum)

extract(rcvpktdata)deliver_data(data)sndpkt = make_pkt(expectedseqnumACKchksum)udt_send(sndpkt)expectedseqnum++

expectedseqnum=1sndpkt = make_pkt(expectedseqnumACKchksum)

Transport Layer 3-48

GBN hoạt động

Transport Layer 3-49

Lặp coacute lựa chọn

becircn nhận thocircng baacuteo đatilde nhận đuacuteng tất cả từng goacutei một đệm (buffer) caacutec goacutei nếu cần thiết

becircn gửi chỉ gửi lại caacutec goacutei nagraveo khocircng nhận được ACK becircn gửi định thigrave đối với mỗi goacutei khocircng gửi ACK

cửa sổ becircn gửi N số thứ tự liecircn tục hạn chế số thứ tự caacutec goacutei khocircng gửi ACK

Transport Layer 3-50

Lặp coacute lựa chọn caacutec cửa sổ gửi nhận

Transport Layer 3-51

Lặp coacute lựa chọn

dữ liệu từ lớp trecircn nếu số thứ tự kế tiếp sẵn

sagraveng trong cửa sổ gửi goacutei

timeout(n) gửi lại goacutei n taacutei khởi tạo

bộ định thigrave

ACK(n) trong [sendbasesendbase+N]

đaacutenh dấu goacutei n lagrave đatilde nhận nếu goacutei khocircng ACK coacute n

nhỏ nhất dịch chuyển cửa sổ base đến số thứ tự khocircng ACK kế tiếp

Gửigoacutei n trong [rcvbase

rcvbase+N-1]

gửi ACK(n) khocircng thứ tự đệm

(buffer) coacute thứ tự truyền (cũng

truyền caacutec goacutei đatilde đệm coacute thứ tự) dịch chuyển cửa sổ đến goacutei chưa nhận kế tiếp

goacutei n trong [rcvbase-Nrcvbase-1]

ACK(n)

ngược lại lờ đi

Nhận

Transport Layer 3-52

Hoạt động của lặp coacute lựa chọn

Transport Layer 3-53

Lặp coacute lựa chọntigravenh trạng khoacute giải quyếtViacute dụ Số thứ tự 0 1 2 3 Kiacutech thước cửa sổ = 3

becircn nhận khocircng thấy sự khaacutec nhau trong 2 tigravenh huống

chuyển khocircng chiacutenh xaacutec dữ liệu trugraveng lặp như dữ liệu mới trong (a)

Hỏi quan hệ giữa datildey số thứ tự vagrave kiacutech thước cửa sổ

Transport Layer 3-54

Chương 3 Nội dung trigravenh bagravey

31 Caacutec dịch vụ lớp Transport

32 Multiplexing vagrave demultiplexing

33 Vận chuyển khocircng kết nối UDP

34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy

35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối

36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn

37 Điều khiển tắc nghẽn TCP

Transport Layer 3-55

TCP Tổng quan RFCs 793 1122 1323 2018 2581

dữ liệu full duplex luồng dữ liệu đi 2 chiều

trong cugraveng một kết nối MSS maximum

segment size ndash kiacutech thước đoạn tối đa

hướng kết nối bắt tay (trao đổi caacutec

thocircng điệp điều khiển) trạng thaacutei becircn gửi becircn nhận trước khi trao đổi dữ liệu

điều khiển luồng becircn gửi sẽ khocircng lấn aacutet

becircn nhận

point-to-point một becircn gửi một becircn

nhận tin cậy dograveng byte coacute

thứ tự khocircng ldquoranh giới thocircng

điệprdquo kecircnh liecircn lạc

TCP điều khiển luồng vagrave tắc nghẽn thiết lập kiacutech thước cửa sổ

caacutec bộ đệm gửi amp nhận

socketdoor

T C Psend buffer

T C Preceive buffer

socketdoor

segm ent

applicationwrites data

applicationreads data

Transport Layer 3-56

TCP cấu truacutec đoạn

port nguồn port điacutech

32 bits

dữ liệu ứng dụng(độ dagravei thay đổi)

số thứ tự

số ACKcửa sổ nhận

con trỏ URGchecksum

FSRPAUheadlen

notused

Tugravey chọn (độ dagravei thay đổi)

URG dữ liệu khẩn cấp(thường khocircng dugraveng)

ACK ACK hợp lệ

PSH push data now(thường khocircng dugraveng)

RST SYN FINthiết lập kết nối

(caacutec lệnh thiết lậpchia nhỏ)

số byte becircn nhận sẵn sagraveng chấp nhận

đếm bởi số bytecủa dữ liệu

Internetchecksum

(giống UDP)

Transport Layer 3-57

Caacutec số thứ tự TCP vagrave ACKCaacutec số thứ tự

dograveng byte ldquođaacutenh sốrdquo byte đầu tiecircn trong dữ liệu của đoạn

caacutec ACK số thứ tự của byte

kế tiếp được chờ đợi từ phiacutea becircn kia

ACK tiacutech lũyHỏi lagravem thế nagraveo becircn

nhận quản lyacute caacutec đoạn khocircng thứ tự Trả lời TCP khocircng

đề cập tugravey thuộc người hiện thực

Host A Host B

Seq=42 ACK=79 data = lsquoCrsquo

Seq=79 ACK=43 data = lsquoCrsquo

Seq=43 ACK=80

UsernhậplsquoCrsquo

host ACKsnhận phản hồi

lsquoCrsquo

host ACKsbaacuteo nhận

lsquoCrsquo phản hồingược lại lsquoCrsquo

timetigravenh huống telnet đơn giản

Transport Layer 3-58

TCP Round Trip Time vagraveTimeout

Hỏi Lagravem thế nagraveo để thiết lập giaacute trị TCP timeout

dagravei hơn RTT khaacutec với RTT

quaacute ngắn timeout sớm truyền lại khocircng

cần thiết quaacute dagravei phản ứng

chậm đối với việc mất maacutet goacutei

Hỏi Lagravem thế nagraveo để thiết lập RTT

SampleRTT thời gian được đo từ khi truyền đoạn đến khi baacuteo nhận ACK lờ đi việc truyền lại

SampleRTT sẽ thay đổi muốn ước lượng RTT ldquomượt hơnrdquo tiacutenh trung bigravenh một số giaacute

trị đo được gần đoacute khocircng chỉ SampleRTT hiện tại

Transport Layer 3-59

TCP Round Trip Time vagrave Timeout

EstimatedRTT = (1- )EstimatedRTT + SampleRTT

giaacute trị đặc trưng = 0125

Transport Layer 3-60

Viacute dụ đaacutenh giaacute RTTRTT gaiacsumassedu to fantasiaeurecomfr

100

150

200

250

300

350

1 8 15 22 29 36 43 50 57 64 71 78 85 92 99 106

time (seconnds)

RTT

(mill

isec

onds

)

SampleRTT Estimated RTT

Transport Layer 3-61

TCP Round Trip Time vagrave Timeout

Thiết lập timeout EstimtedRTT cộng ldquohệ số dự trữ an toagravenrdquo

sự biến thiecircn lớn trong EstimatedRTT -gt hệ số dự trữ an toagraven lớn hơn ước lượng đầu tiecircn về sự biến thiecircn của SampleRTT từ EstimatedRTT

TimeoutInterval = EstimatedRTT + 4DevRTT

DevRTT = (1-)DevRTT + |SampleRTT-EstimatedRTT|

(tiecircu biểu = 025)

Sau đoacute thiết lập timeout interval

Transport Layer 3-62

TCP truyền dữ liệu tin cậy

TCP tạo dịch vụ rdt trecircn dịch vụ khocircng tin cậy IP

caacutec đoạn Pipelined caacutec ACK tiacutech lũy TCP dugraveng bộ định thigrave

truyền lại đơn

Truyền lại được kiacutech hoạt bởi caacutec sự kiện timeout caacutec ack trugraveng lặp

luacutec đầu khảo saacutet caacutec becircn gửi TCP đơn giản lờ đi caacutec ack trugraveng lặp lờ đi điều khiển luồng

điều khiển tắc nghẽn

Transport Layer 3-63

TCP caacutec sự kiệndữ liệu đatilde nhận từ ứng

dụng tạo đoạn với số thứ

tự của noacute số thứ tự lagrave số theo

byte dữ liệu đầu tiecircn khởi động bộ định thigrave

nếu chưa chạy khoảng thời gian hết

hạn TimeOutInterval

timeout gửi lại đoạn nagraveo gacircy

ra timeout khởi động lại bộ định

thigrave Ack đatilde nhận

cập nhật caacutei gigrave sẽ được ACK

khởi động bộ định thigrave nếu coacute caacutec đoạn cograven chờ

Transport Layer 3-64

TCP becircn gửi(đơn giản)

NextSeqNum = InitialSeqNum SendBase = InitialSeqNum

loop (forever) switch(event)

event data received from application above create TCP segment with sequence number NextSeqNum if (timer currently not running) start timer pass segment to IP NextSeqNum = NextSeqNum + length(data)

event timer timeout retransmit not-yet-acknowledged segment with smallest sequence number start timer

event ACK received with ACK field value of y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer

end of loop forever

Chuacute thiacutechbull SendBase-1 byte vừa được ACK tiacutech lũy Viacute dụbull SendBase-1 = 71y= 73 vigrave thế becircn nhận muốn 73+ y gt SendBase vigrave thế dữ liệu mới được chấp nhận

Transport Layer 3-65

TCP caacutec tigravenh huống truyền lại

Host A

Seq=100 20 bytes data

ACK=100

timetimeout sớm

Host B

Seq=92 8 bytes data

ACK=120

Seq=92 8 bytes data

Seq=

92

tim

eout

ACK=120

Host A

Seq=92 8 bytes data

ACK=100

loss

tim

eout

tigravenh huống mất ACK

Host B

X

Seq=92 8 bytes data

ACK=100

time

Seq=

92

tim

eout

SendBase= 100

SendBase= 120

SendBase= 120

Sendbase= 100

Transport Layer 3-66

TCP caacutec tigravenh huống truyền lại (tt)Host A

Seq=92 8 bytes data

ACK=100

loss

tim

eout

Cumulative ACK scenario

Host B

X

Seq=100 20 bytes data

ACK=120

time

SendBase= 120

Transport Layer 3-67

TCP sinh ra ACK [RFC 1122 RFC 2581]

Sự kiện tại becircn nhận

Đoạn đến với đuacuteng số thứ tự mong muốn Tất cả dữ liệu đếnđatilde được ACK

Đoạn đến với đuacuteng số thứ tự mong muốn Một đoạn khaacutec đangchờ ACK

Caacutec đoạn đến khocircng thứ tựlớn hơn số thứ tự đoạn mong muốnCoacute khoảng trống

Đoạn đếnlấp đầy từng phần hoặc toagraven bộkhoảng trống

TCP becircn nhận hagravenh động

ACK trễ Chờ đến 500mscho đoạn kế tiếp Nếu khocircng coacute đoạnkế tiếp gửi ACK

Gửi ngay một ACK tiacutech lũy chấp nhậncho cả caacutec đoạn theo thứ tự

Gửi ngay ACK trugraveng lặp chỉ thị số thứ tựđoạn của byte kế tiếp đang mong chờ

Gửi ngay ACK với điều kiện lagrave đoạnbắt đầu ngay điểm coacute khoảng trống

Transport Layer 3-68

Truyền lại nhanh

Chu kỳ Time-out thường tương đối dagravei độ trễ dagravei trước khi gửi

lại goacutei đatilde mất

Xaacutec nhận caacutec đoạn đatilde mất bằng caacutec ACK trugraveng lặp becircn gửi thường gửi

nhiều đoạn song song Nếu đoạn bị mất sẽ

xảy ra tigravenh trạng giống như nhiều ACK trugraveng nhau

Nếu becircn gửi nhận 3 ACK của cugraveng một dữ liệu noacute cho lagrave đoạn sau dữ liệu đatilde ACK bị mất Truyền lại nhanh gửi

lại đoạn trước khi bộ định thigrave hết hạn

Transport Layer 3-69

sự kiện ACK đatilde nhận với trường lagrave y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer else increment count of dup ACKs received for y if (count of dup ACKs received for y = 3) resend segment with sequence number y

Giải thuật truyền lại nhanh

một ACK trugraveng lặp cho đoạn đatilde được ACK

Truyền lại nhanh

Transport Layer 3-70

Chương 3 Nội dung trigravenh bagravey

31 Caacutec dịch vụ lớp Transport

32 Multiplexing vagrave demultiplexing

33 Vận chuyển khocircng kết nối UDP

34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy

35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối

36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn

37 Điều khiển tắc nghẽn TCP

Transport Layer 3-71

TCP điều khiển luồng

becircn nhận của kết nối TCP coacute một bộ đệm nhận

dịch vụ so trugraveng tốc độ so trugraveng tốc độ gửi với tốc độ nhận của ứng dụng

tiến trigravenh ứng dụng coacute thể chậm tại luacutec đọc bộ đệm

becircn gửi sẽ khocircng lagravem tragraven bộ đệm vigrave truyền quaacute nhiều vagrave

quaacute nhanh

điều khiển luồng

Transport Layer 3-72

TCP điều khiển luồng caacutech lagravem

(Giả sử becircn nhận TCP loại bỏ caacutec đoạn khocircng coacute thứ tự)

dự phograveng trong bộ đệm= RcvWindow

= RcvBuffer-[LastByteRcvd - LastByteRead]

Becircn nhận thocircng baacuteo khoảng dự trữ nhờ giaacute trị RcvWindow trong caacutec đoạn

Becircn gửi hạn chế dữ liệu khocircng được ACK vagraveo RcvWindow bảo đảm bộ đệm nhận

khocircng tragraven

Transport Layer 3-73

Chương 3 Nội dung trigravenh bagravey

31 Caacutec dịch vụ lớp Transport

32 Multiplexing vagrave demultiplexing

33 Vận chuyển khocircng kết nối UDP

34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy

35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối

36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn

37 Điều khiển tắc nghẽn TCP

Transport Layer 3-74

TCP quản lyacute kết nối

Chuacute yacute Becircn gửi vagrave becircn nhận TCP thiết lập ldquokết nốirdquo trước khi trao đổi dữ liệu

khởi tạo caacutec biến TCP caacutec số thứ tự đoạn thocircng tin caacutec bộ đệm điều

khiển luồng (như RcvWindow)

client người khởi xướng kết nối

Socket clientSocket = new Socket(hostnameport

number) server được tiếp xuacutec bởi

client Socket connectionSocket =

welcomeSocketaccept()

3 phương phaacutep bắt tay

Bước 1 client host gửi đoạnTCP SYN đến server xaacutec định số thứ tự khởi đầu khocircng phải dữ liệu

Bước 2 server host nhận SYN trả lời với đoạn SYNACK

server cấp phaacutet caacutec bộ đệm

xaacutec định số thứ tự khởi đầuBước 3 client nhận SYNACK trả

lời với đoạn ACK (coacute thể chứa dữ liệu)

Transport Layer 3-75

TCP quản lyacute kết nối (tt)

Đoacuteng một kết nối

client đoacuteng socket clientSocketclose()

Bước 1 client gửi đoạn điều khiển TCP FIN đến server

Bước 2 server nhận FIN trả lời với ACK Đoacuteng kết nối gửi FIN

client

FIN

server

ACK

ACK

FIN

đoacuteng

đoacuteng

đatilde đoacutengthời g

ian c

hờ

Transport Layer 3-76

TCP quản lyacute kết nối (tt)

Bước 3 client nhận FIN trả lời với ACK

Trong khoảng ldquothời gian chờrdquo ndash sẽ phản hồi với ACK để nhận caacutec FIN

Bước 4 server nhận ACK Kết nối đatilde đoacuteng

Chuacute yacute với một sửa đổi nhỏ coacute thể quản lyacute nhiều FIN đồng thời

client

FIN

server

ACK

ACK

FIN

đang đoacuteng

đang đoacuteng

đatilde đoacuteng

thời g

ian c

hờ

đatilde đoacuteng

Transport Layer 3-77

TCP quản lyacute kết nối (tt)

chu kỳ sống củaTCP client

chu kỳ sống củaTCP server

Transport Layer 3-78

Chương 3 Nội dung trigravenh bagravey

31 Caacutec dịch vụ lớp Transport

32 Multiplexing vagrave demultiplexing

33 Vận chuyển khocircng kết nối UDP

34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy

35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối

36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn

37 Điều khiển tắc nghẽn TCP

Transport Layer 3-79

Caacutec nguyecircn lyacute điều khiển tắc nghẽn

Tắc nghẽn ldquoquaacute nhiều nguồn gửi quaacute nhanh vagrave quaacute nhiều

dữ liệu đến mạngrdquo khaacutec với điều khiển luồng caacutec biểu hiện

caacutec goacutei bị mất (tragraven bộ đệm tại caacutec router) caacutec độ trễ quaacute dagravei (xếp hagraveng trong bộ đệm

của router) lagrave 1 trong 10 vấn đề nan giải nhất

Transport Layer 3-80

Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 1

2 gửi 2 nhận 1 router caacutec bộ

đệm khocircng giới hạn

khocircng coacute truyền lại

caacutec độ trễ lớn hơn khi tắc nghẽn

năng suất coacute thể đạt tối đa

unlimited shared output link buffers

Host Ain original data

Host B

out

Transport Layer 3-81

Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 2

1 router caacutec bộ đệm coacute giới hạn becircn gửi truyền lại caacutec goacutei đatilde mất

chia sẻ vocirc hạncaacutec bộ đệm ouput

Host A in dữ liệu gốc

Host B

out

in dữ liệu gốc cugraveng với dữ liệu truyền lại

Transport Layer 3-82

Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 2 luocircn luocircn

truyền lại ldquohoagraven toagravenrdquo chỉ khi mất maacutet

truyền lại vigrave trễ (khocircng mất) lagravem cho lớn hơn với cugraveng

in

out

=

in

out

gt

in

out

ldquocaacutec chi phiacuterdquo của tắc nghẽn nhiều việc (truyền lại) caacutec truyền lại khocircng cần thiết liecircn kết nhiều bản sao của

goacutei

R2

R2in

ou

t

b

R2

R2in

ou

t

a

R2

R2in

ou

t

c

R4

R3

Transport Layer 3-83

Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 3 4 người gửi caacutec đường qua nhiều hop timeouttruyền lại

in

Hỏi điều gigrave xảy ra nếu vagrave tăng lecircn

in

chia sẻ vocirc hạncaacutec bộ đệm ouput

Host Ain dữ liệu gốc

Host B

out

in dữ liệu gốc cugraveng với dữ liệu truyền lại

Transport Layer 3-84

Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 3

ldquochi phiacuterdquo khaacutec của tắc nghẽn khi caacutec goacutei bị bỏ bất kỳ ldquokhả năng truyền

upstream dugraveng cho goacutei đoacute sẽ bị latildeng phiacuterdquo

Host A

Host B

o

u

t

Transport Layer 3-85

Caacutec caacutech tiếp cận đối với điều khiển tắc nghẽn

điều khiển tắc nghẽn end-end

khocircng coacute phản hồi rotilde ragraveng từ mạng

tắc nghẽn được suy ra từ việc quan saacutet caacutec hệ thống đầu cuối coacute mất maacutet trễ

tiếp cận được quản lyacute bởi TCP

điều khiển tắc nghẽn coacute sự hỗ trợ của mạng

caacutec router cung cấp phản hồi về caacutec hệ thống đầu cuối 1 bit duy nhất chỉ thị

tắc nghẽn (SNA DECbit TCPIP ECN ATM)

tốc độ sẽ gửi được xaacutec định rotilde ragraveng

2 caacutech

Transport Layer 3-86

Viacute dụ điều khiển tắc nghẽn ATM ABR

ABR tốc độ bit sẵn sagraveng

ldquodịch vụ mềm dẻordquo nếu đường gửi ldquochưa

hếtrdquo becircn gửi sẽ dugraveng

băng thocircng sẵn sagraveng nếu đường gửi tắc

nghẽn becircn gửi điều tiết với

tốc độ tối thiểu

RM (resource management)

gửi bởi becircn gửi rải raacutec với caacutec ocirc dữ liệu

caacutec bit trong ocirc thiết lập bởi caacutec switch bit NI khocircng tăng tốc độ

(tắc nghẽn nhẹ) bit CI tắc nghẽn rotilde rệt

Caacutec ocirc RM được trả về becircn gửi từ becircn nhận với nguyecircn vẹn caacutec bit

Transport Layer 3-87

Viacute dụ điều khiển tắc nghẽn ATM ABR

trường 2-byte ER trong ocirc RM switch đatilde tắc nghẽn coacute thể coacute giaacute trị ER thấp hơn trong ocirc tốc độ gửi do đoacute coacute thể được hỗ trợ tối đa trecircn đường

EFCI bit trong caacutec ocirc dữ liệu được cagravei giaacute trị 1 trong switch đatilde tắc nghẽn nếu ocirc dữ liệu đứng trước ocirc RM coacute cagravei EFCI becircn gửi sẽ cagravei

bit CI trong ocirc RM trả về

Transport Layer 3-88

Chương 3 Nội dung trigravenh bagravey

31 Caacutec dịch vụ lớp Transport

32 Multiplexing vagrave demultiplexing

33 Vận chuyển khocircng kết nối UDP

34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy

35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối

36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn

37 Điều khiển tắc nghẽn TCP

Transport Layer 3-89

TCP điều khiển tắc nghẽn additive tăng lecircn multiplicative giảm xuống

8 Kbytes

16 Kbytes

24 Kbytes

time

congestionwindow

Caacutech tiếp cận tăng tốc độ truyền (kiacutech thước cửa sổ) tigravem khả năng băng thocircng coacute thể cho đến khi coacute mất maacutet xảy ra additive tăng lecircn tăng CongWin bởi 1 MSS

mỗi RTT cho đến khi coacute mất maacutet xảy ra multiplicative giảm xuống bỏ CongWin trong

nửa giai đoạn sau khi mất maacutet

timekiacutech

thư

ớc

cửa

sổ

tắc

nghẽ

n

Tigravem kiếm băng thocircng

Transport Layer 3-90

TCP điều khiển tắc nghẽn chi tiết

becircn gửi hạn chế việc truyền LastByteSent-LastByteAcked

CongWin Cocircng thức

CongWin thay đổi chức năng lagrave nhận biết tắc nghẽn trecircn mạng

Lagravem thế nagraveo becircn gửi nhận biết tắc nghẽn

mất maacutet xảy ra = timeout hoặc 3 ack trugraveng lặp

becircn gửi giảm tốc độ (CongWin) sau khi mất maacutet xảy ra

3 cơ chế AIMD khởi động chậm thận trọng sau khi coacute

caacutec sự kiện timeout

tốc độ = CongWin

RTT Bytess

Transport Layer 3-91

TCP khởi động chậm

Khi kết nối bắt đầu CongWin = 1 MSS Viacute dụ MSS = 500 bytes

amp RTT = 200 ms tốc độ khởi tạo = 20

kbps

băng thocircng sẵn sagraveng coacute thể gtgt MSSRTT mong muốn nhanh

choacuteng tăng tốc lecircn tốc độ coacute thể đaacutep ứng

Khi kết nối bắt đầu tăng tốc lecircn rất nhanh cho đến khi sự cố mất maacutet xảy ra đầu tiecircn

Transport Layer 3-92

TCP khởi động chậm (tt)

Khi kết nối bắt đầu tăng tốc lecircn rất nhanh cho đến khi sự cố mất maacutet xảy ra đầu tiecircn nhacircn đocirci CongWin mỗi

RTT hoagraven thagravenh nhờ tăng CongWin ứng với mỗi ACK đatilde nhận

Tổng kết tốc độ khởi đầu lagrave chậm nhưng sau đoacute tăng tốc rất nhanh

Host A

1 đoạn

RTT

Host B

thời gian

2 đoạn

4 đoạn

Transport Layer 3-93

Tinh chếHỏi Khi nagraveo việc tăng

tốc trở thagravenh tuyến tiacutenh

Trả lời Khi CongWin đạt đến 12 giaacute trị của noacute trước khi timeout

Hiện thực Ngưỡng thay đổi Tại thời điểm coacute sự cố

mất maacutet ngưỡng được cagravei giaacute trị bằng frac12 của CongWin ngay trước đoacute

Transport Layer 3-94

Tinh chế nhận biết mất maacutet

Sau 3 ACK trugraveng lặp CongWin sẽ giảm 12 kiacutech thước cửa sổ

tăng tuyến tiacutenh nhưng sau sự cố

timeout CongWin thay giaacute trị

bằng 1 MSS kiacutech thước cửa sổ

tăng cấp lũy thừa khi đến một ngưỡng

thigrave tăng tuyến tiacutenh

3 ACK trugraveng nhau chỉ ra khả năng truyền của mạng timeout chỉ thị ldquonhiều cảnh baacuteordquo về tigravenh huống tắc nghẽn

Nguyecircn lyacute

Transport Layer 3-95

Tổng kết TCP điều khiển tắc nghẽn

Khi CongWin dưới Threshold becircn gửi đang trong giai đoạn khởi động chậm kiacutech thước cửa sổ tăng nhanh theo cấp lũy thừa

Khi CongWin trecircn Threshold becircn gửi đang trong giai đoạn traacutenh tắc nghẽn kiacutech thước cửa sổ tăng nhanh theo cấp tuyến tiacutenh

Khi coacute 3 ACK trugraveng lặp xảy ra Threshold = CongWin2 vagrave CongWin = Threshold

Khi timeout xảy ra Threshold = CongWin2 vagrave CongWin = 1 MSS

Transport Layer 3-96

TCP điều khiển tắc nghẽn becircn gửi

Trạng thaacutei Sự kiện TCP becircn gửi hagravenh động Diễn giải

Slow Start (SS)-Khởi động chậm

ACK baacuteo nhận cho dữ liệu chưa ACK trước đoacute

CongWin = CongWin + MSS If (CongWin gt Threshold) cagravei đặt trạng thaacutei ldquoTraacutenh tắc nghẽnrdquo

Hậu quả lagravem tăng gấp đocirci CongWin mỗi RTT

CongestionAvoidance (CA) ndashTraacutenh tắc nghẽn

ACK baacuteo nhận cho dữ liệu chưa ACK trước đoacute

CongWin = CongWin+MSS (MSSCongWin)

Additive tăng lecircn lagravem tăng CongWin lecircn 1 MSS mỗi RTT

SS hoặc CA Sự cố mất maacutet xảy ra khi thấy coacute 3 ACK trugraveng lặp

Threshold = CongWin2 CongWin = Thresholdcagravei đặt trạng thaacutei ldquoTraacutenh tắc nghẽnrdquo

Khocirci phục nhanh hiện thực giảm xuống multiplicative CongWin sẽ khocircng giảm xuống dưới 1 MSS

SS hoặc CA Timeout Threshold = CongWin2 CongWin = 1 MSScagravei đặt trạng thaacutei ldquoKhởi động chậmrdquo

Vagraveo chế độ ldquoKhởi động chậmrdquo

SS hoặc CA ACK trugraveng lặp

Đếm ACK tăng lecircn cho đoạn vừa được ACK

CongWin vagrave Threshold khocircng thay đổi

Transport Layer 3-97

TCP throughput

Throughout trung bigravenh của TCP biểu diễn qua kiacutech thước của sổ vagrave RTT Bỏ qua trạng thaacutei ldquoKhởi động chậmrdquo

Cho W lagrave kiacutech thước cửa sổ khi coacute mất maacutet xảy ra

Khi kiacutech thước cửa sổ = W lưu lượng = WRTT

Chỉ ngay sau khi mất maacutet cửa sổ giảm xuống = W2 lưu lượng = W2RTT

throughout trung bigravenh 075 WRTT

Transport Layer 3-98

TCP tương lai

Viacute dụ caacutec đoạn dagravei 1500 byte RTT 100ms lưu lượng 10 Gbps

Kiacutech thước cửa sổ yecircu cầu W = 83333 đoạn trecircn đường truyền

Lưu lượng trong caacutec trường hợp mất maacutet

L = 210-10

Phiecircn bản mới của TCP dagravenh cho nhu cầu tốc độ cao

LRTT

MSS221

Transport Layer 3-99

Mục tiecircu nếu K phiecircn lagravem việc TCP chia sẻ kết nối cổ chai của băng thocircng lagrave R mỗi phiecircn coacute tốc độ trung bigravenh lagrave RK

TCP kết nối 1

router cổ chaikhả năng R

TCP kết nối 2

TCP tiacutenh cocircng bằng

Transport Layer 3-100

Tại sao phải TCP cocircng bằng

2 phiecircn lagravem việc cạnh tranh nhau Additive tăng lưu lượng tăng multiplicative giảm lưu lượng tương xứng

R

R

chia sẻ băng thocircng bằng nhau

Connection 1 throughputConnect

ion 2

th

roughput

traacutenh tắc nghẽn additive tăng lecircnmất maacutet giảm cửa sổ bằng 12

traacutenh tắc nghẽn additive tăng lecircnmất maacutet giảm cửa sổ bằng 12

Transport Layer 3-101

TCP tiacutenh cocircng bằng (tt)

Tiacutenh cocircng bằng amp UDP nhiều ứng dụng

thường khocircng dugraveng TCP khocircng muốn tốc độ bị

điều tiết do điều khiển tắc nghẽn

Thay bằng dugraveng UDP truyền audiovideo với

tốc độ ổn định chịu được mất maacutet

Nghiecircn cứu giao thức thacircn thiện với TCP

Tiacutenh cocircng bằng amp caacutec kết nối TCP song song

khocircng coacute gigrave ngăn cản việc ứng dụng mở caacutec kết nối song song giữa 2 host

Trigravenh duyệt Web lagravem giống như thế

Viacute dụ tốc độ R hỗ trợ 9 kết nối ứng dụng mới yecircu cầu 1

TCP coacute tốc độ R10 ứng dụng mới yecircu cầu 11

TCP coacute tốc độ R2

Transport Layer 3-102

Mocirc higravenh trễ

Hỏi Mất bao lacircu để nhận 1 đối tượng từ Web server sau khi gửi yecircu cầu

Bỏ qua tắc nghẽn trễ bị ảnh hưởng bởi

thiết lập kết nối TCP trễ truyền dữ liệu khởi động chậm

Notation caacutec giả định Giả sử một kết nối giữa

client vagrave server coacute tốc độ R

S MSS (bits) O kiacutech thước đối tượng

(bits) khocircng truyền lại (khocircng

mất maacutet khocircng hỏng)

Kiacutech thước cửa sổ Giả định 1 cửa sổ tắc

nghẽn cố định coacute W đoạn Sau đoacute cửa sổ thay đổi

mocirc higravenh khởi động chậm

Transport Layer 3-103

Cửa sổ tắc nghẽn cố định (1)

Trường hợp đầu tiecircnWSR gt RTT + SR cho

đoạn đầu tiecircn trong cửa sổ trả về trước khi cửa sổ dữ liệu gửi ACK

trễ = 2RTT + OR

Transport Layer 3-104

Cửa sổ tắc nghẽn cố định (2)

Trường hợp thứ hai WSR lt RTT + SR sent

chờ cho ACK sau khi gửi dữ liệu

trễ = 2RTT + OR+ (K-1)[SR + RTT - WSR]

Transport Layer 3-105

TCP Mocirc higravenh trễ Khởi động chậm (1)

Bacircy giờ giả sử kiacutech thước cửa sổ tăng lecircn tugravey theo quaacute trigravenh khởi động chậm

Độ trễ của một đối tượng sẽ lagrave

R

S

R

SRTTP

R

ORTTLatency P )12(2

trong đoacute P lagrave số lần TCP rảnh ở tại server

1min KQP

- trong đoacute Q lagrave số lần server rảnh nếu đối tượng đatilde khởi tạo kiacutech thước

- vagrave K lagrave số lượng cửa sổ bao trugravem đối tượng

Transport Layer 3-106

TCP Mocirc higravenh trễ Khởi động chậm (2)

RTT

initia te TCPconnection

requestobject

first w indow= S R

second w indow= 2S R

third w indow= 4S R

fourth w indow= 8S R

com pletetransm issionobject

delivered

tim e atc lient

tim e atserver

Viacute dụbull OS = 15 đoạnbull K = 4 cửa sổbull Q = 2bull P = minK-1Q = 2

Server rảnh P=2 lần

Caacutec thagravenh phần trễbull 2 RTT dagravenh cho thiết lập kết nối vagrave yecircu cầubull OR để truyền đối tượngbullthời gian server rảnh bởi vigrave khởi động chậm

Server rảnh P = minK-1Q lần

Transport Layer 3-107

TCP Mocirc higravenh trễ(3)

R

S

R

SRTTPRTT

R

O

R

SRTT

R

SRTT

R

O

idleTimeRTTR

O

P

kP

k

P

pp

)12(][2

]2[2

2delay

1

1

1

th window after the timeidle 2 1 kR

SRTT

R

S k

ementacknowledg receivesserver until

segment send tostartsserver when from time RTTR

S

window kth the transmit totime2 1

R

Sk

RTT

initia te TCPconnection

requestobject

first w indow= S R

second w indow= 2S R

third w indow= 4S R

fourth w indow= 8S R

com pletetransm issionobject

delivered

tim e atc lient

tim e atserver

Transport Layer 3-108

TCP Mocirc higravenh trễ (4)

)1(log

)1(logmin

12min

222min

222min

2

2

110

110

S

OS

Okk

S

Ok

SOk

OSSSkK

k

k

k

caacutech tiacutenh toaacuten Q tương tự (xem HW)

K = số lượng cửa sổ bao trugravem đối tượngLagravem thế nagraveo tiacutenh được K

Transport Layer 3-109

HTTP Mocirc higravenh Giả sử trang Web chứa

1 trang HTML (kiacutech thước O bits) M higravenh ảnh (mỗi caacutei kiacutech thướcO bits)

HTTP khocircng bền vững M+1 TCP kết nối Thời gian đaacutep ứng = (M+1)OR + (M+1)2RTT + tổng số thời

gian rảnh HTTP bền vững

2 RTT để yecircu cầu vagrave nhận file HTML 1 RTT để yecircu cầu vagrave nhận M higravenh ảnh Thời gian đaacutep ứng = (M+1)OR + 3RTT + tổng số thời gian

rảnh HTTP khocircng bền vững với X kết nối song song

Giả sử MX lagrave số nguyecircn 1 TCP kết nối cho file MX thiết lập caacutec kết nối song song cho caacutec higravenh ảnh Thời gian đaacutep ứng = (M+1)OR + (MX + 1)2RTT + tổng số

thời gian rảnh

Transport Layer 3-110

02468

101214161820

28Kbps

100Kbps

1Mbps

10Mbps

non-persistent

persistent

parallel non-persistent

HTTP thời gian đaacutep ứng (giacircy)RTT = 100 msec O = 5 Kbytes M=10 vagrave X=5

Với băng thocircng thấp thời gian kết nối amp đaacutep ứng trội hơn thời gian truyền

Caacutec kết nối bền vững chỉ cho sự cải thiện khocircng đaacuteng kể trecircn caacutec kết nối song song

Transport Layer 3-111

0

10

20

30

40

50

60

70

28Kbps

100Kbps

1Mbps

10Mbps

non-persistent

persistent

parallel non-persistent

HTTP thời gian đaacutep ứng (giacircy)

RTT =1 sec O = 5 Kbytes M=10 and X=5

Với RTT lớn hơn thời gian đaacutep ứng trội hơn thời gian trễ chờ thiết lập kết nốiTCP amp khởi động chậm Caacutec kết nối bền vững bacircy giờ cho thấy cải thiện rotilde rệt đặc biệtvới caacutec mạng băng thocircng cao

Transport Layer 3-112

Chương 3 Tổng kết caacutec nguyecircn lyacute của caacutec

dịch vụ lớp transport multiplexing

demultiplexing truyền dữ liệu tin cậy điều khiển luồng điều khiển tắc nghẽn

khởi tạo vagrave hiện thực trong Internet UDP TCP

Tiếp theo nghiecircn cứu xong

caacutec vấn đề ldquongoagravei biecircnrdquo (caacutec lớp application transport)

chuẩn bị vagraveo phần ldquolotildeirdquo của mạng

  • Slide 1
  • Chương 3 Lớp Transport
  • Chương 3 Nội dung trigravenh bagravey
  • Caacutec dịch vụ vagrave giao thức Transport
  • Lớp Transport với lớp network
  • Caacutec giao thức lớp transport trecircn Internet
  • Slide 7
  • Multiplexingdemultiplexing
  • Demultiplexing lagravem việc như thế nagraveo
  • Demultiplexing khocircng kết nối
  • Demultiplexing khocircng kết nối (tiếp)
  • Demultiplexing hướng kết nối
  • Demultiplexing hướng kết nối (tiếp)
  • Demultiplexing hướng kết nối Threaded Web Server
  • Slide 15
  • UDP User Datagram Protocol [RFC 768]
  • UDP (tt)
  • UDP checksum
  • Viacute dụ Checksum
  • Slide 20
  • Caacutec nguyecircn lyacute truyền dữ liệu tin cậy
  • Slide 22
  • Slide 23
  • Truyền dữ liệu tin cậy
  • Slide 25
  • Rdt10 truyền dữ liệu tin cậy trecircn 1 kecircnh truyền tin cậy
  • Rdt20 kecircnh với caacutec lỗi
  • rdt20 đặc tả FSM
  • rdt20 hoạt động khi khocircng lỗi
  • rdt20 hoạt động khi coacute lỗi
  • rdt20 coacute lỗ hổng nghiecircm trọng
  • rdt21 người gửi quản lyacute caacutec ACKNAK bị hỏng
  • Slide 33
  • rdt21 thảo luận
  • rdt22 một giao thức khocircng cần NAK
  • rdt22 gửi nhận caacutec mảnh
  • rdt30 caacutec kecircnh với lỗi vagrave mất maacutet
  • rdt30 gửi
  • hagravenh động của rdt30
  • Slide 40
  • Hiệu suất của rdt30
  • rdt30 hoạt động dừng-vagrave-chờ
  • Caacutec giao thức Pipelined
  • Pipelining độ khả dụng tăng
  • Go-Back-N
  • GBN becircn gửi mở rộng FSM
  • GBN becircn nhận mở rộng FSM
  • GBN hoạt động
  • Lặp coacute lựa chọn
  • Lặp coacute lựa chọn caacutec cửa sổ gửi nhận
  • Slide 51
  • Hoạt động của lặp coacute lựa chọn
  • Lặp coacute lựa chọn tigravenh trạng khoacute giải quyết
  • Slide 54
  • TCP Tổng quan RFCs 793 1122 1323 2018 2581
  • TCP cấu truacutec đoạn
  • Caacutec số thứ tự TCP vagrave ACK
  • TCP Round Trip Time vagraveTimeout
  • TCP Round Trip Time vagrave Timeout
  • Viacute dụ đaacutenh giaacute RTT
  • Slide 61
  • TCP truyền dữ liệu tin cậy
  • TCP caacutec sự kiện
  • TCP becircn gửi (đơn giản)
  • TCP caacutec tigravenh huống truyền lại
  • TCP caacutec tigravenh huống truyền lại (tt)
  • TCP sinh ra ACK [RFC 1122 RFC 2581]
  • Truyền lại nhanh
  • Giải thuật truyền lại nhanh
  • Slide 70
  • TCP điều khiển luồng
  • TCP điều khiển luồng caacutech lagravem
  • Slide 73
  • TCP quản lyacute kết nối
  • TCP quản lyacute kết nối (tt)
  • Slide 76
  • Slide 77
  • Slide 78
  • Caacutec nguyecircn lyacute điều khiển tắc nghẽn
  • Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 1
  • Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 2
  • Slide 82
  • Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 3
  • Slide 84
  • Caacutec caacutech tiếp cận đối với điều khiển tắc nghẽn
  • Viacute dụ điều khiển tắc nghẽn ATM ABR
  • Slide 87
  • Slide 88
  • TCP điều khiển tắc nghẽn additive tăng lecircn multiplicative giảm xuống
  • TCP điều khiển tắc nghẽn chi tiết
  • TCP khởi động chậm
  • TCP khởi động chậm (tt)
  • Tinh chế
  • Tinh chế nhận biết mất maacutet
  • Tổng kết TCP điều khiển tắc nghẽn
  • TCP điều khiển tắc nghẽn becircn gửi
  • TCP throughput
  • TCP tương lai
  • TCP tiacutenh cocircng bằng
  • Tại sao phải TCP cocircng bằng
  • TCP tiacutenh cocircng bằng (tt)
  • Mocirc higravenh trễ
  • Cửa sổ tắc nghẽn cố định (1)
  • Cửa sổ tắc nghẽn cố định (2)
  • TCP Mocirc higravenh trễ Khởi động chậm (1)
  • TCP Mocirc higravenh trễ Khởi động chậm (2)
  • TCP Mocirc higravenh trễ(3)
  • TCP Mocirc higravenh trễ (4)
  • HTTP Mocirc higravenh
  • Slide 110
  • Slide 111
  • Chương 3 Tổng kết

Transport Layer 3-20

Chương 3 Nội dung trigravenh bagravey

31 Caacutec dịch vụ lớp Transport

32 Multiplexing vagrave demultiplexing

33 Vận chuyển khocircng kết nối UDP

34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy

35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối

36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn

37 Điều khiển tắc nghẽn TCP

Transport Layer 3-21

Caacutec nguyecircn lyacute truyền dữ liệu tin cậy quan trọng trong caacutec lớp application transport link lagrave danh saacutech 10 vấn đề quan trọng nhất của mạng

caacutec đặc thugrave của kecircnh truyền khocircng tin cậy sẽ xaacutec định sự phức tạp của giao thức truyền dữ liệu data transfer protocol (rdt)

Transport Layer 3-22

Caacutec nguyecircn lyacute truyền dữ liệu tin cậy quan trọng trong caacutec lớp application transport link lagrave danh saacutech 10 vấn đề quan trọng nhất của mạng

caacutec đặc thugrave của kecircnh truyền khocircng tin cậy sẽ xaacutec định sự phức tạp của giao thức truyền dữ liệu data transfer protocol (rdt)

Transport Layer 3-23

Caacutec nguyecircn lyacute truyền dữ liệu tin cậy quan trọng trong caacutec lớp application transport link lagrave danh saacutech 10 vấn đề quan trọng nhất của mạng

caacutec đặc thugrave của kecircnh truyền khocircng tin cậy sẽ xaacutec định sự phức tạp của giao thức truyền dữ liệu data transfer protocol (rdt)

Transport Layer 3-24

Truyền dữ liệu tin cậy

sendside

receiveside

rdt_send() được gọi bởi lớp app Chuyển dữ liệu cần truyền

đến lớp cao hơn becircn nhận

udt_send() được gọi bởi rdt để truyền caacutec goacutei trecircn kecircnh khocircng tin cậy đến nơi

nhận

rdt_rcv() được gọi khi goacutei đến kecircnh becircn nhận

deliver_data() được gọi bởi rdt để truyền dữ liệu

đến lớp cao hơn

Transport Layer 3-25

Truyền dữ liệu tin cậy

Sẽ chỉ xem xeacutet truyền dữ liệu theo 1 hướng duy

nhất nhưng điều khiển luồng thocircng tin sẽ theo cả 2

chiều

dugraveng maacutey trạng thaacutei hữu hạn (finite state machines-FSM) để xaacutec định người gửi người nhận

trthaacutei1

trthaacutei2

sự kiện gacircy ra trạng thaacutei truyềncaacutec hagravenh động xảy ra khi truyền

trạng thaacutei khi ở ldquotrạng thaacuteirdquo nagravey thigrave

trạng thaacutei kế tiếp duy nhất được xaacutec định bởi sự kiện kế

tiếp

sự kiệncaacutec hagravenh động

Transport Layer 3-26

Rdt10 truyền dữ liệu tin cậy trecircn 1 kecircnh truyền tin cậy

kecircnh ưu tiecircn tin cậy hoagraven toagraven khocircng coacute caacutec lỗi khocircng mất maacutet caacutec goacutei

caacutec FSM phacircn biệt cho người gửi người nhận người gửi gửi dữ liệu vagraveo kecircnh ưu tiecircn người nhận nhận dữ liệu từ kecircnh ưu tiecircn

chờ gọi từ lớp trecircn packet = make_pkt(data)

udt_send(packet)

rdt_send(data)

extract (packetdata)deliver_data(data)

chờ gọi từ lớp dưới

rdt_rcv(packet)

người gửi người nhận

Transport Layer 3-27

Rdt20 kecircnh với caacutec lỗi

kecircnh ưu tiecircn coacute thể bật lecircn một số bit trong goacutei checksum để kiểm tra caacutec lỗi

Hỏi lagravem sao khocirci phục caacutec lỗi acknowledgements (ACKs) becircn nhận rotilde ragraveng thocircng

baacuteo cho becircn gửi rằng quaacute trigravenh nhận goacutei tốt negative acknowledgements (NAKs) becircn nhận rotilde ragraveng

thocircng baacuteo cho becircn gửi rằng quaacute trigravenh nhận goacutei coacute lỗi người gửi gửi lại goacutei nagraveo được xaacutec nhận lagrave NAK

caacutec cơ chế mới trong rdt20 (sau rdt10) kiểm tra lỗi nhận phản hồi caacutec thocircng điệp điều khiển (ACKNAK)

becircn nhận becircn gửi

Transport Layer 3-28

rdt20 đặc tả FSM

chờ gọi từ lớp trecircn

snkpkt = make_pkt(data checksum)udt_send(sndpkt)

extract(rcvpktdata)deliver_data(data)udt_send(ACK)

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)

rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp isNAK(rcvpkt)

udt_send(NAK)

rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)

chờ ACK hoặc NAK

chờ gọi từ lớp dưới

người gửi

người nhậnrdt_send(data)

Transport Layer 3-29

rdt20 hoạt động khi khocircng lỗi

chờ gọi từ lớp dưới

snkpkt = make_pkt(data checksum)udt_send(sndpkt)

extract(rcvpktdata)deliver_data(data)udt_send(ACK)

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)

rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp isNAK(rcvpkt)

udt_send(NAK)

rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)

chờ ACK hoặc NAK

chờ gọi từ lớp dưới

rdt_send(data)

Transport Layer 3-30

rdt20 hoạt động khi coacute lỗi

chờ gọi từ lớp dưới

snkpkt = make_pkt(data checksum)udt_send(sndpkt)

extract(rcvpktdata)deliver_data(data)udt_send(ACK)

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)

rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp isNAK(rcvpkt)

udt_send(NAK)

rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)

chờ ACK hoặc NAK

chờ gọi từ lớp dưới

rdt_send(data)

Transport Layer 3-31

rdt20 coacute lỗ hổng nghiecircm trọngĐiều gigrave xảy ra nếu

ACKNAK bị hỏng người gửi khocircng biết điều

gigrave đatilde xảy ra tại becircn nhận

khocircng thể đơn phương truyền lại khả năng trugraveng lặp

Quản lyacute trugraveng lặp người gửi truyền lại goacutei

hiện tại nếu ACKNAK bị hỏng

người gửi thecircm số thứ tự vagraveo mỗi goacutei

người nhận hủy (khocircng nhận) goacutei trugraveng lặp

Người gửi gửi 1 goacutei sau đoacute dừng lại chờ phản hồitừ người nhận

dừng vagrave chờ

Transport Layer 3-32

rdt21 người gửi quản lyacute caacutec ACKNAK bị hỏng

chờ gọi 0 từ lớp trecircn

sndpkt = make_pkt(0 data checksum)udt_send(sndpkt)

rdt_send(data)

chờ ACK hoặc NAK

0 udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) ||isNAK(rcvpkt) )

sndpkt = make_pkt(1 data checksum)udt_send(sndpkt)

rdt_send(data)

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) ||isNAK(rcvpkt) )

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt)

chờ gọi 1 từ lớp trecircn

chờ ACK hoặc NAK

1

Transport Layer 3-33

rdt21 người gửi quản lyacute caacutec ACKNAK bị hỏng

chờ 0 từ dưới

sndpkt = make_pkt(NAK chksum)udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp not corrupt(rcvpkt) ampamp has_seq0(rcvpkt)

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp has_seq1(rcvpkt)

extract(rcvpktdata)deliver_data(data)sndpkt = make_pkt(ACK chksum)udt_send(sndpkt)

chờ 1 từ dưới

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp has_seq0(rcvpkt)

extract(rcvpktdata)deliver_data(data)sndpkt = make_pkt(ACK chksum)udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp (corrupt(rcvpkt)

sndpkt = make_pkt(ACK chksum)udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp not corrupt(rcvpkt) ampamp has_seq1(rcvpkt)

rdt_rcv(rcvpkt) ampamp (corrupt(rcvpkt)

sndpkt = make_pkt(ACK chksum)udt_send(sndpkt)

sndpkt = make_pkt(NAK chksum)udt_send(sndpkt)

Transport Layer 3-34

rdt21 thảo luận

người gửi số thứ tự thecircm vagraveo

goacutei chỉ cần hai số thứ tự

(01) lagrave đủ Tại sao phải kiểm tra nếu việc

nhận ACKNAK bị hỏng

số trạng thaacutei tăng lecircn 2 lần trạng thaacutei phải ldquonhớrdquo

goacutei ldquohiện tạirdquo coacute số thứ tự lagrave 0 hay 1

người nhận phải kiểm tra coacute

nhận trugraveng goacutei khocircng trạng thaacutei chỉ rotilde coacute

hay khocircng mong chờ số thứ tự 0 hoặc 1

chuacute yacute người nhận khocircng biết ACKNAK vừa rồi của noacute coacute được người gửi nhận tốt hay khocircng

Transport Layer 3-35

rdt22 một giao thức khocircng cần NAK

chức năng giống như rdt21 chỉ dugraveng caacutec ACK thay cho NAK người nhận gửi ACK cho goacutei vừa

rồi đatilde nhận tốt người nhận phải rotilde ragraveng chegraven số thứ tự của goacutei vừa ACK

trugraveng ACK tại người gửi hậu quả giống như hagravenh động của NAK truyền lại goacutei vừa rồi

Transport Layer 3-36

rdt22 gửi nhận caacutec mảnh

Chờ cho gọi 0 từ

trecircn

sndpkt = make_pkt(0 data checksum)udt_send(sndpkt)

rdt_send(data)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) || isACK(rcvpkt1) )

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt0)

Chờ cho ACK

0

gửi phacircn mảnhFSM

Chờ cho gọi

0 từ dưới

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp has_seq1(rcvpkt)

extract(rcvpktdata)deliver_data(data)sndpkt = make_pkt(ACK1 chksum)udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp (corrupt(rcvpkt) || has_seq1(rcvpkt))

udt_send(sndpkt)

nhận phacircn mảnhFSM

Transport Layer 3-37

rdt30 caacutec kecircnh với lỗi vagrave mất maacutet

Giả định mới kecircnh ưu tiecircn cũng coacute thể lagravem mất caacutec goacutei (dữ liệu hoặc caacutec ACK) checksum số thứ tự

caacutec ACK caacutec việc truyền lại sẽ hỗ trợ nhưng khocircng đủ

Caacutech tiếp cận người gửi chờ ACK trong khoảng thời gian ldquochấp nhận đượcrdquo

truyền lại nếu khocircng nhận ACK trong khoảng thời gian nagravey

nếu goacutei (hoặc ACK) chỉ trễ (khocircng mất) truyền lại sẽ gacircy trugraveng

nhưng dugraveng số thứ tự sẽ giải quyết được

người nhận phải xaacutec định số thứ tự của goacutei vừa gửi ACK

cần bộ định thigrave đếm lugravei

Transport Layer 3-38

rdt30 gửi

sndpkt = make_pkt(0 data checksum)udt_send(sndpkt)start_timer

rdt_send(data)

Chờ cho

ACK 0

rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) ||isACK(rcvpkt1) )

Chờ cho gọi 1 từ trecircn

sndpkt = make_pkt(1 data checksum)udt_send(sndpkt)start_timer

rdt_send(data)

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt0)

rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) ||isACK(rcvpkt0) )

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt1)

stop_timerstop_timer

udt_send(sndpkt)start_timer

timeout

udt_send(sndpkt)start_timer

timeout

rdt_rcv(rcvpkt)

Chờ cho gọi 0 từ trecircn

Chờ cho

ACK 1

rdt_rcv(rcvpkt)

Transport Layer 3-39

hagravenh động của rdt30

Transport Layer 3-40

hagravenh động của rdt30

Transport Layer 3-41

Hiệu suất của rdt30

rdt30 lagravem việc được nhưng đaacutenh giaacute hiệu suất hơi rắc rối viacute dụ liecircn kết 1 Gbps trễ lan truyền giữa hai đầu cuối lagrave 15

ms goacutei 1KB

T truyền = 8kbpkt109 bsec

= 8 microsec

U sender độ khả dụng ndash

U sender

= 008

30008 = 000027

microseconds

L R

RTT + L R =

L (độ dagravei goacutei tiacutenh bằng bits)R (tốc độ truyền bps)

=

goacutei 1KB mỗi 30 msec -gt 33kBs trecircn đường truyền 1 Gbps giao thức network hạn chế việc dugraveng caacutec tagravei nguyecircn vật

lyacute

Transport Layer 3-42

rdt30 hoạt động dừng-vagrave-chờ

goacutei đầu tiecircn đatilde truyền t = 0

gửi nhận

RTT

goacutei cuối cugraveng đatilde truyền t = L R

goacutei đầu tiecircn đatilde đếngoacutei cuối cugraveng đatilde đến gửi ACK

ACK đến gửi goacutei kế tiếp t = RTT + L R

U sender

= 008

30008 = 000027

microseconds

L R

RTT + L R =

Transport Layer 3-43

Caacutec giao thức Pipelined

Pipelining người gửi cho pheacutep gửi nhiều goacutei đồng thời khocircng cần chờ baacuteo nhận được nhoacutem caacutec số thứ tự phải tăng dần phải coacute bộ nhớ đệm tại nơi gửi vagravehoặc nơi nhận

hai dạng phổ biến của caacutec giao thức pipelined go-Back-N Lặp coacute lựa chọn

Transport Layer 3-44

Pipelining độ khả dụng tăng

goacutei đầu tiecircn đatilde truyền t = 0

sender receiver

RTT

goacutei cuối cugraveng đatilde truyền t = L R

goacutei đầu tiecircn đatilde đếngoacutei cuối cugraveng đatilde đến gửi ACK

ACK đến gửi goacuteikế tiếp t = RTT + L R

bit cuối của goacutei thứ 2 đến gửi ACKbit cuối của goacutei thứ 3 đến gửi ACK

U sender

= 024

30008 = 00008

microseconds

3 L R

RTT + L R =

Độ khả dụng tăng lecircngấp 3 lần

Transport Layer 3-45

Go-Back-NBecircn gửi k-bit số thứ tự trong header của goacutei ldquocửa sổrdquo tăng lecircn đến N cho pheacutep gửi caacutec goacutei liecircn tục khocircng cần ACK

ACK(n) ACKs tất cả caacutec goacutei đến chứa số thứ tự n ndash ldquoACK tiacutech lũyrdquo coacute thể nhận caacutec ACK trugraveng lặp (xem becircn nhận)

định thigrave cho mỗi goacutei trecircn đường truyền timeout(n) gửi lại goacutei n vagrave tất cả caacutec goacutei coacute số thứ tự cao

hơn trong cửa sổ

Transport Layer 3-46

GBN becircn gửi mở rộng FSM

chờ start_timerudt_send(sndpkt[base])udt_send(sndpkt[base+1])hellipudt_send(sndpkt[nextseqnum-1])

timeout

rdt_send(data)

if (nextseqnum lt base+N) sndpkt[nextseqnum] = make_pkt(nextseqnumdatachksum) udt_send(sndpkt[nextseqnum]) if (base == nextseqnum) start_timer nextseqnum++ else refuse_data(data)

base = getacknum(rcvpkt)+1If (base == nextseqnum) stop_timer else start_timer

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)

base=1nextseqnum=1

rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)

Transport Layer 3-47

GBN becircn nhận mở rộng FSM

ACK-duy nhất luocircn luocircn gửi ACK cho goacutei đatilde nhận đuacuteng với số thứ tự xếp hạng cao nhất coacute thể sinh ra caacutec ACK trugraveng nhau chỉ cần nhớ expectedseqnum

goacutei khocircng theo thứ tự hủy -gt khocircng nhận vagraveo bộ đệm gửi lại ACK với số thứ tự xếp hạng cao nhất

chờ

udt_send(sndpkt)

default

rdt_rcv(rcvpkt) ampamp notcurrupt(rcvpkt) ampamp hasseqnum(rcvpktexpectedseqnum)

extract(rcvpktdata)deliver_data(data)sndpkt = make_pkt(expectedseqnumACKchksum)udt_send(sndpkt)expectedseqnum++

expectedseqnum=1sndpkt = make_pkt(expectedseqnumACKchksum)

Transport Layer 3-48

GBN hoạt động

Transport Layer 3-49

Lặp coacute lựa chọn

becircn nhận thocircng baacuteo đatilde nhận đuacuteng tất cả từng goacutei một đệm (buffer) caacutec goacutei nếu cần thiết

becircn gửi chỉ gửi lại caacutec goacutei nagraveo khocircng nhận được ACK becircn gửi định thigrave đối với mỗi goacutei khocircng gửi ACK

cửa sổ becircn gửi N số thứ tự liecircn tục hạn chế số thứ tự caacutec goacutei khocircng gửi ACK

Transport Layer 3-50

Lặp coacute lựa chọn caacutec cửa sổ gửi nhận

Transport Layer 3-51

Lặp coacute lựa chọn

dữ liệu từ lớp trecircn nếu số thứ tự kế tiếp sẵn

sagraveng trong cửa sổ gửi goacutei

timeout(n) gửi lại goacutei n taacutei khởi tạo

bộ định thigrave

ACK(n) trong [sendbasesendbase+N]

đaacutenh dấu goacutei n lagrave đatilde nhận nếu goacutei khocircng ACK coacute n

nhỏ nhất dịch chuyển cửa sổ base đến số thứ tự khocircng ACK kế tiếp

Gửigoacutei n trong [rcvbase

rcvbase+N-1]

gửi ACK(n) khocircng thứ tự đệm

(buffer) coacute thứ tự truyền (cũng

truyền caacutec goacutei đatilde đệm coacute thứ tự) dịch chuyển cửa sổ đến goacutei chưa nhận kế tiếp

goacutei n trong [rcvbase-Nrcvbase-1]

ACK(n)

ngược lại lờ đi

Nhận

Transport Layer 3-52

Hoạt động của lặp coacute lựa chọn

Transport Layer 3-53

Lặp coacute lựa chọntigravenh trạng khoacute giải quyếtViacute dụ Số thứ tự 0 1 2 3 Kiacutech thước cửa sổ = 3

becircn nhận khocircng thấy sự khaacutec nhau trong 2 tigravenh huống

chuyển khocircng chiacutenh xaacutec dữ liệu trugraveng lặp như dữ liệu mới trong (a)

Hỏi quan hệ giữa datildey số thứ tự vagrave kiacutech thước cửa sổ

Transport Layer 3-54

Chương 3 Nội dung trigravenh bagravey

31 Caacutec dịch vụ lớp Transport

32 Multiplexing vagrave demultiplexing

33 Vận chuyển khocircng kết nối UDP

34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy

35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối

36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn

37 Điều khiển tắc nghẽn TCP

Transport Layer 3-55

TCP Tổng quan RFCs 793 1122 1323 2018 2581

dữ liệu full duplex luồng dữ liệu đi 2 chiều

trong cugraveng một kết nối MSS maximum

segment size ndash kiacutech thước đoạn tối đa

hướng kết nối bắt tay (trao đổi caacutec

thocircng điệp điều khiển) trạng thaacutei becircn gửi becircn nhận trước khi trao đổi dữ liệu

điều khiển luồng becircn gửi sẽ khocircng lấn aacutet

becircn nhận

point-to-point một becircn gửi một becircn

nhận tin cậy dograveng byte coacute

thứ tự khocircng ldquoranh giới thocircng

điệprdquo kecircnh liecircn lạc

TCP điều khiển luồng vagrave tắc nghẽn thiết lập kiacutech thước cửa sổ

caacutec bộ đệm gửi amp nhận

socketdoor

T C Psend buffer

T C Preceive buffer

socketdoor

segm ent

applicationwrites data

applicationreads data

Transport Layer 3-56

TCP cấu truacutec đoạn

port nguồn port điacutech

32 bits

dữ liệu ứng dụng(độ dagravei thay đổi)

số thứ tự

số ACKcửa sổ nhận

con trỏ URGchecksum

FSRPAUheadlen

notused

Tugravey chọn (độ dagravei thay đổi)

URG dữ liệu khẩn cấp(thường khocircng dugraveng)

ACK ACK hợp lệ

PSH push data now(thường khocircng dugraveng)

RST SYN FINthiết lập kết nối

(caacutec lệnh thiết lậpchia nhỏ)

số byte becircn nhận sẵn sagraveng chấp nhận

đếm bởi số bytecủa dữ liệu

Internetchecksum

(giống UDP)

Transport Layer 3-57

Caacutec số thứ tự TCP vagrave ACKCaacutec số thứ tự

dograveng byte ldquođaacutenh sốrdquo byte đầu tiecircn trong dữ liệu của đoạn

caacutec ACK số thứ tự của byte

kế tiếp được chờ đợi từ phiacutea becircn kia

ACK tiacutech lũyHỏi lagravem thế nagraveo becircn

nhận quản lyacute caacutec đoạn khocircng thứ tự Trả lời TCP khocircng

đề cập tugravey thuộc người hiện thực

Host A Host B

Seq=42 ACK=79 data = lsquoCrsquo

Seq=79 ACK=43 data = lsquoCrsquo

Seq=43 ACK=80

UsernhậplsquoCrsquo

host ACKsnhận phản hồi

lsquoCrsquo

host ACKsbaacuteo nhận

lsquoCrsquo phản hồingược lại lsquoCrsquo

timetigravenh huống telnet đơn giản

Transport Layer 3-58

TCP Round Trip Time vagraveTimeout

Hỏi Lagravem thế nagraveo để thiết lập giaacute trị TCP timeout

dagravei hơn RTT khaacutec với RTT

quaacute ngắn timeout sớm truyền lại khocircng

cần thiết quaacute dagravei phản ứng

chậm đối với việc mất maacutet goacutei

Hỏi Lagravem thế nagraveo để thiết lập RTT

SampleRTT thời gian được đo từ khi truyền đoạn đến khi baacuteo nhận ACK lờ đi việc truyền lại

SampleRTT sẽ thay đổi muốn ước lượng RTT ldquomượt hơnrdquo tiacutenh trung bigravenh một số giaacute

trị đo được gần đoacute khocircng chỉ SampleRTT hiện tại

Transport Layer 3-59

TCP Round Trip Time vagrave Timeout

EstimatedRTT = (1- )EstimatedRTT + SampleRTT

giaacute trị đặc trưng = 0125

Transport Layer 3-60

Viacute dụ đaacutenh giaacute RTTRTT gaiacsumassedu to fantasiaeurecomfr

100

150

200

250

300

350

1 8 15 22 29 36 43 50 57 64 71 78 85 92 99 106

time (seconnds)

RTT

(mill

isec

onds

)

SampleRTT Estimated RTT

Transport Layer 3-61

TCP Round Trip Time vagrave Timeout

Thiết lập timeout EstimtedRTT cộng ldquohệ số dự trữ an toagravenrdquo

sự biến thiecircn lớn trong EstimatedRTT -gt hệ số dự trữ an toagraven lớn hơn ước lượng đầu tiecircn về sự biến thiecircn của SampleRTT từ EstimatedRTT

TimeoutInterval = EstimatedRTT + 4DevRTT

DevRTT = (1-)DevRTT + |SampleRTT-EstimatedRTT|

(tiecircu biểu = 025)

Sau đoacute thiết lập timeout interval

Transport Layer 3-62

TCP truyền dữ liệu tin cậy

TCP tạo dịch vụ rdt trecircn dịch vụ khocircng tin cậy IP

caacutec đoạn Pipelined caacutec ACK tiacutech lũy TCP dugraveng bộ định thigrave

truyền lại đơn

Truyền lại được kiacutech hoạt bởi caacutec sự kiện timeout caacutec ack trugraveng lặp

luacutec đầu khảo saacutet caacutec becircn gửi TCP đơn giản lờ đi caacutec ack trugraveng lặp lờ đi điều khiển luồng

điều khiển tắc nghẽn

Transport Layer 3-63

TCP caacutec sự kiệndữ liệu đatilde nhận từ ứng

dụng tạo đoạn với số thứ

tự của noacute số thứ tự lagrave số theo

byte dữ liệu đầu tiecircn khởi động bộ định thigrave

nếu chưa chạy khoảng thời gian hết

hạn TimeOutInterval

timeout gửi lại đoạn nagraveo gacircy

ra timeout khởi động lại bộ định

thigrave Ack đatilde nhận

cập nhật caacutei gigrave sẽ được ACK

khởi động bộ định thigrave nếu coacute caacutec đoạn cograven chờ

Transport Layer 3-64

TCP becircn gửi(đơn giản)

NextSeqNum = InitialSeqNum SendBase = InitialSeqNum

loop (forever) switch(event)

event data received from application above create TCP segment with sequence number NextSeqNum if (timer currently not running) start timer pass segment to IP NextSeqNum = NextSeqNum + length(data)

event timer timeout retransmit not-yet-acknowledged segment with smallest sequence number start timer

event ACK received with ACK field value of y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer

end of loop forever

Chuacute thiacutechbull SendBase-1 byte vừa được ACK tiacutech lũy Viacute dụbull SendBase-1 = 71y= 73 vigrave thế becircn nhận muốn 73+ y gt SendBase vigrave thế dữ liệu mới được chấp nhận

Transport Layer 3-65

TCP caacutec tigravenh huống truyền lại

Host A

Seq=100 20 bytes data

ACK=100

timetimeout sớm

Host B

Seq=92 8 bytes data

ACK=120

Seq=92 8 bytes data

Seq=

92

tim

eout

ACK=120

Host A

Seq=92 8 bytes data

ACK=100

loss

tim

eout

tigravenh huống mất ACK

Host B

X

Seq=92 8 bytes data

ACK=100

time

Seq=

92

tim

eout

SendBase= 100

SendBase= 120

SendBase= 120

Sendbase= 100

Transport Layer 3-66

TCP caacutec tigravenh huống truyền lại (tt)Host A

Seq=92 8 bytes data

ACK=100

loss

tim

eout

Cumulative ACK scenario

Host B

X

Seq=100 20 bytes data

ACK=120

time

SendBase= 120

Transport Layer 3-67

TCP sinh ra ACK [RFC 1122 RFC 2581]

Sự kiện tại becircn nhận

Đoạn đến với đuacuteng số thứ tự mong muốn Tất cả dữ liệu đếnđatilde được ACK

Đoạn đến với đuacuteng số thứ tự mong muốn Một đoạn khaacutec đangchờ ACK

Caacutec đoạn đến khocircng thứ tựlớn hơn số thứ tự đoạn mong muốnCoacute khoảng trống

Đoạn đếnlấp đầy từng phần hoặc toagraven bộkhoảng trống

TCP becircn nhận hagravenh động

ACK trễ Chờ đến 500mscho đoạn kế tiếp Nếu khocircng coacute đoạnkế tiếp gửi ACK

Gửi ngay một ACK tiacutech lũy chấp nhậncho cả caacutec đoạn theo thứ tự

Gửi ngay ACK trugraveng lặp chỉ thị số thứ tựđoạn của byte kế tiếp đang mong chờ

Gửi ngay ACK với điều kiện lagrave đoạnbắt đầu ngay điểm coacute khoảng trống

Transport Layer 3-68

Truyền lại nhanh

Chu kỳ Time-out thường tương đối dagravei độ trễ dagravei trước khi gửi

lại goacutei đatilde mất

Xaacutec nhận caacutec đoạn đatilde mất bằng caacutec ACK trugraveng lặp becircn gửi thường gửi

nhiều đoạn song song Nếu đoạn bị mất sẽ

xảy ra tigravenh trạng giống như nhiều ACK trugraveng nhau

Nếu becircn gửi nhận 3 ACK của cugraveng một dữ liệu noacute cho lagrave đoạn sau dữ liệu đatilde ACK bị mất Truyền lại nhanh gửi

lại đoạn trước khi bộ định thigrave hết hạn

Transport Layer 3-69

sự kiện ACK đatilde nhận với trường lagrave y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer else increment count of dup ACKs received for y if (count of dup ACKs received for y = 3) resend segment with sequence number y

Giải thuật truyền lại nhanh

một ACK trugraveng lặp cho đoạn đatilde được ACK

Truyền lại nhanh

Transport Layer 3-70

Chương 3 Nội dung trigravenh bagravey

31 Caacutec dịch vụ lớp Transport

32 Multiplexing vagrave demultiplexing

33 Vận chuyển khocircng kết nối UDP

34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy

35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối

36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn

37 Điều khiển tắc nghẽn TCP

Transport Layer 3-71

TCP điều khiển luồng

becircn nhận của kết nối TCP coacute một bộ đệm nhận

dịch vụ so trugraveng tốc độ so trugraveng tốc độ gửi với tốc độ nhận của ứng dụng

tiến trigravenh ứng dụng coacute thể chậm tại luacutec đọc bộ đệm

becircn gửi sẽ khocircng lagravem tragraven bộ đệm vigrave truyền quaacute nhiều vagrave

quaacute nhanh

điều khiển luồng

Transport Layer 3-72

TCP điều khiển luồng caacutech lagravem

(Giả sử becircn nhận TCP loại bỏ caacutec đoạn khocircng coacute thứ tự)

dự phograveng trong bộ đệm= RcvWindow

= RcvBuffer-[LastByteRcvd - LastByteRead]

Becircn nhận thocircng baacuteo khoảng dự trữ nhờ giaacute trị RcvWindow trong caacutec đoạn

Becircn gửi hạn chế dữ liệu khocircng được ACK vagraveo RcvWindow bảo đảm bộ đệm nhận

khocircng tragraven

Transport Layer 3-73

Chương 3 Nội dung trigravenh bagravey

31 Caacutec dịch vụ lớp Transport

32 Multiplexing vagrave demultiplexing

33 Vận chuyển khocircng kết nối UDP

34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy

35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối

36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn

37 Điều khiển tắc nghẽn TCP

Transport Layer 3-74

TCP quản lyacute kết nối

Chuacute yacute Becircn gửi vagrave becircn nhận TCP thiết lập ldquokết nốirdquo trước khi trao đổi dữ liệu

khởi tạo caacutec biến TCP caacutec số thứ tự đoạn thocircng tin caacutec bộ đệm điều

khiển luồng (như RcvWindow)

client người khởi xướng kết nối

Socket clientSocket = new Socket(hostnameport

number) server được tiếp xuacutec bởi

client Socket connectionSocket =

welcomeSocketaccept()

3 phương phaacutep bắt tay

Bước 1 client host gửi đoạnTCP SYN đến server xaacutec định số thứ tự khởi đầu khocircng phải dữ liệu

Bước 2 server host nhận SYN trả lời với đoạn SYNACK

server cấp phaacutet caacutec bộ đệm

xaacutec định số thứ tự khởi đầuBước 3 client nhận SYNACK trả

lời với đoạn ACK (coacute thể chứa dữ liệu)

Transport Layer 3-75

TCP quản lyacute kết nối (tt)

Đoacuteng một kết nối

client đoacuteng socket clientSocketclose()

Bước 1 client gửi đoạn điều khiển TCP FIN đến server

Bước 2 server nhận FIN trả lời với ACK Đoacuteng kết nối gửi FIN

client

FIN

server

ACK

ACK

FIN

đoacuteng

đoacuteng

đatilde đoacutengthời g

ian c

hờ

Transport Layer 3-76

TCP quản lyacute kết nối (tt)

Bước 3 client nhận FIN trả lời với ACK

Trong khoảng ldquothời gian chờrdquo ndash sẽ phản hồi với ACK để nhận caacutec FIN

Bước 4 server nhận ACK Kết nối đatilde đoacuteng

Chuacute yacute với một sửa đổi nhỏ coacute thể quản lyacute nhiều FIN đồng thời

client

FIN

server

ACK

ACK

FIN

đang đoacuteng

đang đoacuteng

đatilde đoacuteng

thời g

ian c

hờ

đatilde đoacuteng

Transport Layer 3-77

TCP quản lyacute kết nối (tt)

chu kỳ sống củaTCP client

chu kỳ sống củaTCP server

Transport Layer 3-78

Chương 3 Nội dung trigravenh bagravey

31 Caacutec dịch vụ lớp Transport

32 Multiplexing vagrave demultiplexing

33 Vận chuyển khocircng kết nối UDP

34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy

35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối

36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn

37 Điều khiển tắc nghẽn TCP

Transport Layer 3-79

Caacutec nguyecircn lyacute điều khiển tắc nghẽn

Tắc nghẽn ldquoquaacute nhiều nguồn gửi quaacute nhanh vagrave quaacute nhiều

dữ liệu đến mạngrdquo khaacutec với điều khiển luồng caacutec biểu hiện

caacutec goacutei bị mất (tragraven bộ đệm tại caacutec router) caacutec độ trễ quaacute dagravei (xếp hagraveng trong bộ đệm

của router) lagrave 1 trong 10 vấn đề nan giải nhất

Transport Layer 3-80

Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 1

2 gửi 2 nhận 1 router caacutec bộ

đệm khocircng giới hạn

khocircng coacute truyền lại

caacutec độ trễ lớn hơn khi tắc nghẽn

năng suất coacute thể đạt tối đa

unlimited shared output link buffers

Host Ain original data

Host B

out

Transport Layer 3-81

Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 2

1 router caacutec bộ đệm coacute giới hạn becircn gửi truyền lại caacutec goacutei đatilde mất

chia sẻ vocirc hạncaacutec bộ đệm ouput

Host A in dữ liệu gốc

Host B

out

in dữ liệu gốc cugraveng với dữ liệu truyền lại

Transport Layer 3-82

Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 2 luocircn luocircn

truyền lại ldquohoagraven toagravenrdquo chỉ khi mất maacutet

truyền lại vigrave trễ (khocircng mất) lagravem cho lớn hơn với cugraveng

in

out

=

in

out

gt

in

out

ldquocaacutec chi phiacuterdquo của tắc nghẽn nhiều việc (truyền lại) caacutec truyền lại khocircng cần thiết liecircn kết nhiều bản sao của

goacutei

R2

R2in

ou

t

b

R2

R2in

ou

t

a

R2

R2in

ou

t

c

R4

R3

Transport Layer 3-83

Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 3 4 người gửi caacutec đường qua nhiều hop timeouttruyền lại

in

Hỏi điều gigrave xảy ra nếu vagrave tăng lecircn

in

chia sẻ vocirc hạncaacutec bộ đệm ouput

Host Ain dữ liệu gốc

Host B

out

in dữ liệu gốc cugraveng với dữ liệu truyền lại

Transport Layer 3-84

Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 3

ldquochi phiacuterdquo khaacutec của tắc nghẽn khi caacutec goacutei bị bỏ bất kỳ ldquokhả năng truyền

upstream dugraveng cho goacutei đoacute sẽ bị latildeng phiacuterdquo

Host A

Host B

o

u

t

Transport Layer 3-85

Caacutec caacutech tiếp cận đối với điều khiển tắc nghẽn

điều khiển tắc nghẽn end-end

khocircng coacute phản hồi rotilde ragraveng từ mạng

tắc nghẽn được suy ra từ việc quan saacutet caacutec hệ thống đầu cuối coacute mất maacutet trễ

tiếp cận được quản lyacute bởi TCP

điều khiển tắc nghẽn coacute sự hỗ trợ của mạng

caacutec router cung cấp phản hồi về caacutec hệ thống đầu cuối 1 bit duy nhất chỉ thị

tắc nghẽn (SNA DECbit TCPIP ECN ATM)

tốc độ sẽ gửi được xaacutec định rotilde ragraveng

2 caacutech

Transport Layer 3-86

Viacute dụ điều khiển tắc nghẽn ATM ABR

ABR tốc độ bit sẵn sagraveng

ldquodịch vụ mềm dẻordquo nếu đường gửi ldquochưa

hếtrdquo becircn gửi sẽ dugraveng

băng thocircng sẵn sagraveng nếu đường gửi tắc

nghẽn becircn gửi điều tiết với

tốc độ tối thiểu

RM (resource management)

gửi bởi becircn gửi rải raacutec với caacutec ocirc dữ liệu

caacutec bit trong ocirc thiết lập bởi caacutec switch bit NI khocircng tăng tốc độ

(tắc nghẽn nhẹ) bit CI tắc nghẽn rotilde rệt

Caacutec ocirc RM được trả về becircn gửi từ becircn nhận với nguyecircn vẹn caacutec bit

Transport Layer 3-87

Viacute dụ điều khiển tắc nghẽn ATM ABR

trường 2-byte ER trong ocirc RM switch đatilde tắc nghẽn coacute thể coacute giaacute trị ER thấp hơn trong ocirc tốc độ gửi do đoacute coacute thể được hỗ trợ tối đa trecircn đường

EFCI bit trong caacutec ocirc dữ liệu được cagravei giaacute trị 1 trong switch đatilde tắc nghẽn nếu ocirc dữ liệu đứng trước ocirc RM coacute cagravei EFCI becircn gửi sẽ cagravei

bit CI trong ocirc RM trả về

Transport Layer 3-88

Chương 3 Nội dung trigravenh bagravey

31 Caacutec dịch vụ lớp Transport

32 Multiplexing vagrave demultiplexing

33 Vận chuyển khocircng kết nối UDP

34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy

35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối

36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn

37 Điều khiển tắc nghẽn TCP

Transport Layer 3-89

TCP điều khiển tắc nghẽn additive tăng lecircn multiplicative giảm xuống

8 Kbytes

16 Kbytes

24 Kbytes

time

congestionwindow

Caacutech tiếp cận tăng tốc độ truyền (kiacutech thước cửa sổ) tigravem khả năng băng thocircng coacute thể cho đến khi coacute mất maacutet xảy ra additive tăng lecircn tăng CongWin bởi 1 MSS

mỗi RTT cho đến khi coacute mất maacutet xảy ra multiplicative giảm xuống bỏ CongWin trong

nửa giai đoạn sau khi mất maacutet

timekiacutech

thư

ớc

cửa

sổ

tắc

nghẽ

n

Tigravem kiếm băng thocircng

Transport Layer 3-90

TCP điều khiển tắc nghẽn chi tiết

becircn gửi hạn chế việc truyền LastByteSent-LastByteAcked

CongWin Cocircng thức

CongWin thay đổi chức năng lagrave nhận biết tắc nghẽn trecircn mạng

Lagravem thế nagraveo becircn gửi nhận biết tắc nghẽn

mất maacutet xảy ra = timeout hoặc 3 ack trugraveng lặp

becircn gửi giảm tốc độ (CongWin) sau khi mất maacutet xảy ra

3 cơ chế AIMD khởi động chậm thận trọng sau khi coacute

caacutec sự kiện timeout

tốc độ = CongWin

RTT Bytess

Transport Layer 3-91

TCP khởi động chậm

Khi kết nối bắt đầu CongWin = 1 MSS Viacute dụ MSS = 500 bytes

amp RTT = 200 ms tốc độ khởi tạo = 20

kbps

băng thocircng sẵn sagraveng coacute thể gtgt MSSRTT mong muốn nhanh

choacuteng tăng tốc lecircn tốc độ coacute thể đaacutep ứng

Khi kết nối bắt đầu tăng tốc lecircn rất nhanh cho đến khi sự cố mất maacutet xảy ra đầu tiecircn

Transport Layer 3-92

TCP khởi động chậm (tt)

Khi kết nối bắt đầu tăng tốc lecircn rất nhanh cho đến khi sự cố mất maacutet xảy ra đầu tiecircn nhacircn đocirci CongWin mỗi

RTT hoagraven thagravenh nhờ tăng CongWin ứng với mỗi ACK đatilde nhận

Tổng kết tốc độ khởi đầu lagrave chậm nhưng sau đoacute tăng tốc rất nhanh

Host A

1 đoạn

RTT

Host B

thời gian

2 đoạn

4 đoạn

Transport Layer 3-93

Tinh chếHỏi Khi nagraveo việc tăng

tốc trở thagravenh tuyến tiacutenh

Trả lời Khi CongWin đạt đến 12 giaacute trị của noacute trước khi timeout

Hiện thực Ngưỡng thay đổi Tại thời điểm coacute sự cố

mất maacutet ngưỡng được cagravei giaacute trị bằng frac12 của CongWin ngay trước đoacute

Transport Layer 3-94

Tinh chế nhận biết mất maacutet

Sau 3 ACK trugraveng lặp CongWin sẽ giảm 12 kiacutech thước cửa sổ

tăng tuyến tiacutenh nhưng sau sự cố

timeout CongWin thay giaacute trị

bằng 1 MSS kiacutech thước cửa sổ

tăng cấp lũy thừa khi đến một ngưỡng

thigrave tăng tuyến tiacutenh

3 ACK trugraveng nhau chỉ ra khả năng truyền của mạng timeout chỉ thị ldquonhiều cảnh baacuteordquo về tigravenh huống tắc nghẽn

Nguyecircn lyacute

Transport Layer 3-95

Tổng kết TCP điều khiển tắc nghẽn

Khi CongWin dưới Threshold becircn gửi đang trong giai đoạn khởi động chậm kiacutech thước cửa sổ tăng nhanh theo cấp lũy thừa

Khi CongWin trecircn Threshold becircn gửi đang trong giai đoạn traacutenh tắc nghẽn kiacutech thước cửa sổ tăng nhanh theo cấp tuyến tiacutenh

Khi coacute 3 ACK trugraveng lặp xảy ra Threshold = CongWin2 vagrave CongWin = Threshold

Khi timeout xảy ra Threshold = CongWin2 vagrave CongWin = 1 MSS

Transport Layer 3-96

TCP điều khiển tắc nghẽn becircn gửi

Trạng thaacutei Sự kiện TCP becircn gửi hagravenh động Diễn giải

Slow Start (SS)-Khởi động chậm

ACK baacuteo nhận cho dữ liệu chưa ACK trước đoacute

CongWin = CongWin + MSS If (CongWin gt Threshold) cagravei đặt trạng thaacutei ldquoTraacutenh tắc nghẽnrdquo

Hậu quả lagravem tăng gấp đocirci CongWin mỗi RTT

CongestionAvoidance (CA) ndashTraacutenh tắc nghẽn

ACK baacuteo nhận cho dữ liệu chưa ACK trước đoacute

CongWin = CongWin+MSS (MSSCongWin)

Additive tăng lecircn lagravem tăng CongWin lecircn 1 MSS mỗi RTT

SS hoặc CA Sự cố mất maacutet xảy ra khi thấy coacute 3 ACK trugraveng lặp

Threshold = CongWin2 CongWin = Thresholdcagravei đặt trạng thaacutei ldquoTraacutenh tắc nghẽnrdquo

Khocirci phục nhanh hiện thực giảm xuống multiplicative CongWin sẽ khocircng giảm xuống dưới 1 MSS

SS hoặc CA Timeout Threshold = CongWin2 CongWin = 1 MSScagravei đặt trạng thaacutei ldquoKhởi động chậmrdquo

Vagraveo chế độ ldquoKhởi động chậmrdquo

SS hoặc CA ACK trugraveng lặp

Đếm ACK tăng lecircn cho đoạn vừa được ACK

CongWin vagrave Threshold khocircng thay đổi

Transport Layer 3-97

TCP throughput

Throughout trung bigravenh của TCP biểu diễn qua kiacutech thước của sổ vagrave RTT Bỏ qua trạng thaacutei ldquoKhởi động chậmrdquo

Cho W lagrave kiacutech thước cửa sổ khi coacute mất maacutet xảy ra

Khi kiacutech thước cửa sổ = W lưu lượng = WRTT

Chỉ ngay sau khi mất maacutet cửa sổ giảm xuống = W2 lưu lượng = W2RTT

throughout trung bigravenh 075 WRTT

Transport Layer 3-98

TCP tương lai

Viacute dụ caacutec đoạn dagravei 1500 byte RTT 100ms lưu lượng 10 Gbps

Kiacutech thước cửa sổ yecircu cầu W = 83333 đoạn trecircn đường truyền

Lưu lượng trong caacutec trường hợp mất maacutet

L = 210-10

Phiecircn bản mới của TCP dagravenh cho nhu cầu tốc độ cao

LRTT

MSS221

Transport Layer 3-99

Mục tiecircu nếu K phiecircn lagravem việc TCP chia sẻ kết nối cổ chai của băng thocircng lagrave R mỗi phiecircn coacute tốc độ trung bigravenh lagrave RK

TCP kết nối 1

router cổ chaikhả năng R

TCP kết nối 2

TCP tiacutenh cocircng bằng

Transport Layer 3-100

Tại sao phải TCP cocircng bằng

2 phiecircn lagravem việc cạnh tranh nhau Additive tăng lưu lượng tăng multiplicative giảm lưu lượng tương xứng

R

R

chia sẻ băng thocircng bằng nhau

Connection 1 throughputConnect

ion 2

th

roughput

traacutenh tắc nghẽn additive tăng lecircnmất maacutet giảm cửa sổ bằng 12

traacutenh tắc nghẽn additive tăng lecircnmất maacutet giảm cửa sổ bằng 12

Transport Layer 3-101

TCP tiacutenh cocircng bằng (tt)

Tiacutenh cocircng bằng amp UDP nhiều ứng dụng

thường khocircng dugraveng TCP khocircng muốn tốc độ bị

điều tiết do điều khiển tắc nghẽn

Thay bằng dugraveng UDP truyền audiovideo với

tốc độ ổn định chịu được mất maacutet

Nghiecircn cứu giao thức thacircn thiện với TCP

Tiacutenh cocircng bằng amp caacutec kết nối TCP song song

khocircng coacute gigrave ngăn cản việc ứng dụng mở caacutec kết nối song song giữa 2 host

Trigravenh duyệt Web lagravem giống như thế

Viacute dụ tốc độ R hỗ trợ 9 kết nối ứng dụng mới yecircu cầu 1

TCP coacute tốc độ R10 ứng dụng mới yecircu cầu 11

TCP coacute tốc độ R2

Transport Layer 3-102

Mocirc higravenh trễ

Hỏi Mất bao lacircu để nhận 1 đối tượng từ Web server sau khi gửi yecircu cầu

Bỏ qua tắc nghẽn trễ bị ảnh hưởng bởi

thiết lập kết nối TCP trễ truyền dữ liệu khởi động chậm

Notation caacutec giả định Giả sử một kết nối giữa

client vagrave server coacute tốc độ R

S MSS (bits) O kiacutech thước đối tượng

(bits) khocircng truyền lại (khocircng

mất maacutet khocircng hỏng)

Kiacutech thước cửa sổ Giả định 1 cửa sổ tắc

nghẽn cố định coacute W đoạn Sau đoacute cửa sổ thay đổi

mocirc higravenh khởi động chậm

Transport Layer 3-103

Cửa sổ tắc nghẽn cố định (1)

Trường hợp đầu tiecircnWSR gt RTT + SR cho

đoạn đầu tiecircn trong cửa sổ trả về trước khi cửa sổ dữ liệu gửi ACK

trễ = 2RTT + OR

Transport Layer 3-104

Cửa sổ tắc nghẽn cố định (2)

Trường hợp thứ hai WSR lt RTT + SR sent

chờ cho ACK sau khi gửi dữ liệu

trễ = 2RTT + OR+ (K-1)[SR + RTT - WSR]

Transport Layer 3-105

TCP Mocirc higravenh trễ Khởi động chậm (1)

Bacircy giờ giả sử kiacutech thước cửa sổ tăng lecircn tugravey theo quaacute trigravenh khởi động chậm

Độ trễ của một đối tượng sẽ lagrave

R

S

R

SRTTP

R

ORTTLatency P )12(2

trong đoacute P lagrave số lần TCP rảnh ở tại server

1min KQP

- trong đoacute Q lagrave số lần server rảnh nếu đối tượng đatilde khởi tạo kiacutech thước

- vagrave K lagrave số lượng cửa sổ bao trugravem đối tượng

Transport Layer 3-106

TCP Mocirc higravenh trễ Khởi động chậm (2)

RTT

initia te TCPconnection

requestobject

first w indow= S R

second w indow= 2S R

third w indow= 4S R

fourth w indow= 8S R

com pletetransm issionobject

delivered

tim e atc lient

tim e atserver

Viacute dụbull OS = 15 đoạnbull K = 4 cửa sổbull Q = 2bull P = minK-1Q = 2

Server rảnh P=2 lần

Caacutec thagravenh phần trễbull 2 RTT dagravenh cho thiết lập kết nối vagrave yecircu cầubull OR để truyền đối tượngbullthời gian server rảnh bởi vigrave khởi động chậm

Server rảnh P = minK-1Q lần

Transport Layer 3-107

TCP Mocirc higravenh trễ(3)

R

S

R

SRTTPRTT

R

O

R

SRTT

R

SRTT

R

O

idleTimeRTTR

O

P

kP

k

P

pp

)12(][2

]2[2

2delay

1

1

1

th window after the timeidle 2 1 kR

SRTT

R

S k

ementacknowledg receivesserver until

segment send tostartsserver when from time RTTR

S

window kth the transmit totime2 1

R

Sk

RTT

initia te TCPconnection

requestobject

first w indow= S R

second w indow= 2S R

third w indow= 4S R

fourth w indow= 8S R

com pletetransm issionobject

delivered

tim e atc lient

tim e atserver

Transport Layer 3-108

TCP Mocirc higravenh trễ (4)

)1(log

)1(logmin

12min

222min

222min

2

2

110

110

S

OS

Okk

S

Ok

SOk

OSSSkK

k

k

k

caacutech tiacutenh toaacuten Q tương tự (xem HW)

K = số lượng cửa sổ bao trugravem đối tượngLagravem thế nagraveo tiacutenh được K

Transport Layer 3-109

HTTP Mocirc higravenh Giả sử trang Web chứa

1 trang HTML (kiacutech thước O bits) M higravenh ảnh (mỗi caacutei kiacutech thướcO bits)

HTTP khocircng bền vững M+1 TCP kết nối Thời gian đaacutep ứng = (M+1)OR + (M+1)2RTT + tổng số thời

gian rảnh HTTP bền vững

2 RTT để yecircu cầu vagrave nhận file HTML 1 RTT để yecircu cầu vagrave nhận M higravenh ảnh Thời gian đaacutep ứng = (M+1)OR + 3RTT + tổng số thời gian

rảnh HTTP khocircng bền vững với X kết nối song song

Giả sử MX lagrave số nguyecircn 1 TCP kết nối cho file MX thiết lập caacutec kết nối song song cho caacutec higravenh ảnh Thời gian đaacutep ứng = (M+1)OR + (MX + 1)2RTT + tổng số

thời gian rảnh

Transport Layer 3-110

02468

101214161820

28Kbps

100Kbps

1Mbps

10Mbps

non-persistent

persistent

parallel non-persistent

HTTP thời gian đaacutep ứng (giacircy)RTT = 100 msec O = 5 Kbytes M=10 vagrave X=5

Với băng thocircng thấp thời gian kết nối amp đaacutep ứng trội hơn thời gian truyền

Caacutec kết nối bền vững chỉ cho sự cải thiện khocircng đaacuteng kể trecircn caacutec kết nối song song

Transport Layer 3-111

0

10

20

30

40

50

60

70

28Kbps

100Kbps

1Mbps

10Mbps

non-persistent

persistent

parallel non-persistent

HTTP thời gian đaacutep ứng (giacircy)

RTT =1 sec O = 5 Kbytes M=10 and X=5

Với RTT lớn hơn thời gian đaacutep ứng trội hơn thời gian trễ chờ thiết lập kết nốiTCP amp khởi động chậm Caacutec kết nối bền vững bacircy giờ cho thấy cải thiện rotilde rệt đặc biệtvới caacutec mạng băng thocircng cao

Transport Layer 3-112

Chương 3 Tổng kết caacutec nguyecircn lyacute của caacutec

dịch vụ lớp transport multiplexing

demultiplexing truyền dữ liệu tin cậy điều khiển luồng điều khiển tắc nghẽn

khởi tạo vagrave hiện thực trong Internet UDP TCP

Tiếp theo nghiecircn cứu xong

caacutec vấn đề ldquongoagravei biecircnrdquo (caacutec lớp application transport)

chuẩn bị vagraveo phần ldquolotildeirdquo của mạng

  • Slide 1
  • Chương 3 Lớp Transport
  • Chương 3 Nội dung trigravenh bagravey
  • Caacutec dịch vụ vagrave giao thức Transport
  • Lớp Transport với lớp network
  • Caacutec giao thức lớp transport trecircn Internet
  • Slide 7
  • Multiplexingdemultiplexing
  • Demultiplexing lagravem việc như thế nagraveo
  • Demultiplexing khocircng kết nối
  • Demultiplexing khocircng kết nối (tiếp)
  • Demultiplexing hướng kết nối
  • Demultiplexing hướng kết nối (tiếp)
  • Demultiplexing hướng kết nối Threaded Web Server
  • Slide 15
  • UDP User Datagram Protocol [RFC 768]
  • UDP (tt)
  • UDP checksum
  • Viacute dụ Checksum
  • Slide 20
  • Caacutec nguyecircn lyacute truyền dữ liệu tin cậy
  • Slide 22
  • Slide 23
  • Truyền dữ liệu tin cậy
  • Slide 25
  • Rdt10 truyền dữ liệu tin cậy trecircn 1 kecircnh truyền tin cậy
  • Rdt20 kecircnh với caacutec lỗi
  • rdt20 đặc tả FSM
  • rdt20 hoạt động khi khocircng lỗi
  • rdt20 hoạt động khi coacute lỗi
  • rdt20 coacute lỗ hổng nghiecircm trọng
  • rdt21 người gửi quản lyacute caacutec ACKNAK bị hỏng
  • Slide 33
  • rdt21 thảo luận
  • rdt22 một giao thức khocircng cần NAK
  • rdt22 gửi nhận caacutec mảnh
  • rdt30 caacutec kecircnh với lỗi vagrave mất maacutet
  • rdt30 gửi
  • hagravenh động của rdt30
  • Slide 40
  • Hiệu suất của rdt30
  • rdt30 hoạt động dừng-vagrave-chờ
  • Caacutec giao thức Pipelined
  • Pipelining độ khả dụng tăng
  • Go-Back-N
  • GBN becircn gửi mở rộng FSM
  • GBN becircn nhận mở rộng FSM
  • GBN hoạt động
  • Lặp coacute lựa chọn
  • Lặp coacute lựa chọn caacutec cửa sổ gửi nhận
  • Slide 51
  • Hoạt động của lặp coacute lựa chọn
  • Lặp coacute lựa chọn tigravenh trạng khoacute giải quyết
  • Slide 54
  • TCP Tổng quan RFCs 793 1122 1323 2018 2581
  • TCP cấu truacutec đoạn
  • Caacutec số thứ tự TCP vagrave ACK
  • TCP Round Trip Time vagraveTimeout
  • TCP Round Trip Time vagrave Timeout
  • Viacute dụ đaacutenh giaacute RTT
  • Slide 61
  • TCP truyền dữ liệu tin cậy
  • TCP caacutec sự kiện
  • TCP becircn gửi (đơn giản)
  • TCP caacutec tigravenh huống truyền lại
  • TCP caacutec tigravenh huống truyền lại (tt)
  • TCP sinh ra ACK [RFC 1122 RFC 2581]
  • Truyền lại nhanh
  • Giải thuật truyền lại nhanh
  • Slide 70
  • TCP điều khiển luồng
  • TCP điều khiển luồng caacutech lagravem
  • Slide 73
  • TCP quản lyacute kết nối
  • TCP quản lyacute kết nối (tt)
  • Slide 76
  • Slide 77
  • Slide 78
  • Caacutec nguyecircn lyacute điều khiển tắc nghẽn
  • Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 1
  • Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 2
  • Slide 82
  • Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 3
  • Slide 84
  • Caacutec caacutech tiếp cận đối với điều khiển tắc nghẽn
  • Viacute dụ điều khiển tắc nghẽn ATM ABR
  • Slide 87
  • Slide 88
  • TCP điều khiển tắc nghẽn additive tăng lecircn multiplicative giảm xuống
  • TCP điều khiển tắc nghẽn chi tiết
  • TCP khởi động chậm
  • TCP khởi động chậm (tt)
  • Tinh chế
  • Tinh chế nhận biết mất maacutet
  • Tổng kết TCP điều khiển tắc nghẽn
  • TCP điều khiển tắc nghẽn becircn gửi
  • TCP throughput
  • TCP tương lai
  • TCP tiacutenh cocircng bằng
  • Tại sao phải TCP cocircng bằng
  • TCP tiacutenh cocircng bằng (tt)
  • Mocirc higravenh trễ
  • Cửa sổ tắc nghẽn cố định (1)
  • Cửa sổ tắc nghẽn cố định (2)
  • TCP Mocirc higravenh trễ Khởi động chậm (1)
  • TCP Mocirc higravenh trễ Khởi động chậm (2)
  • TCP Mocirc higravenh trễ(3)
  • TCP Mocirc higravenh trễ (4)
  • HTTP Mocirc higravenh
  • Slide 110
  • Slide 111
  • Chương 3 Tổng kết

Transport Layer 3-21

Caacutec nguyecircn lyacute truyền dữ liệu tin cậy quan trọng trong caacutec lớp application transport link lagrave danh saacutech 10 vấn đề quan trọng nhất của mạng

caacutec đặc thugrave của kecircnh truyền khocircng tin cậy sẽ xaacutec định sự phức tạp của giao thức truyền dữ liệu data transfer protocol (rdt)

Transport Layer 3-22

Caacutec nguyecircn lyacute truyền dữ liệu tin cậy quan trọng trong caacutec lớp application transport link lagrave danh saacutech 10 vấn đề quan trọng nhất của mạng

caacutec đặc thugrave của kecircnh truyền khocircng tin cậy sẽ xaacutec định sự phức tạp của giao thức truyền dữ liệu data transfer protocol (rdt)

Transport Layer 3-23

Caacutec nguyecircn lyacute truyền dữ liệu tin cậy quan trọng trong caacutec lớp application transport link lagrave danh saacutech 10 vấn đề quan trọng nhất của mạng

caacutec đặc thugrave của kecircnh truyền khocircng tin cậy sẽ xaacutec định sự phức tạp của giao thức truyền dữ liệu data transfer protocol (rdt)

Transport Layer 3-24

Truyền dữ liệu tin cậy

sendside

receiveside

rdt_send() được gọi bởi lớp app Chuyển dữ liệu cần truyền

đến lớp cao hơn becircn nhận

udt_send() được gọi bởi rdt để truyền caacutec goacutei trecircn kecircnh khocircng tin cậy đến nơi

nhận

rdt_rcv() được gọi khi goacutei đến kecircnh becircn nhận

deliver_data() được gọi bởi rdt để truyền dữ liệu

đến lớp cao hơn

Transport Layer 3-25

Truyền dữ liệu tin cậy

Sẽ chỉ xem xeacutet truyền dữ liệu theo 1 hướng duy

nhất nhưng điều khiển luồng thocircng tin sẽ theo cả 2

chiều

dugraveng maacutey trạng thaacutei hữu hạn (finite state machines-FSM) để xaacutec định người gửi người nhận

trthaacutei1

trthaacutei2

sự kiện gacircy ra trạng thaacutei truyềncaacutec hagravenh động xảy ra khi truyền

trạng thaacutei khi ở ldquotrạng thaacuteirdquo nagravey thigrave

trạng thaacutei kế tiếp duy nhất được xaacutec định bởi sự kiện kế

tiếp

sự kiệncaacutec hagravenh động

Transport Layer 3-26

Rdt10 truyền dữ liệu tin cậy trecircn 1 kecircnh truyền tin cậy

kecircnh ưu tiecircn tin cậy hoagraven toagraven khocircng coacute caacutec lỗi khocircng mất maacutet caacutec goacutei

caacutec FSM phacircn biệt cho người gửi người nhận người gửi gửi dữ liệu vagraveo kecircnh ưu tiecircn người nhận nhận dữ liệu từ kecircnh ưu tiecircn

chờ gọi từ lớp trecircn packet = make_pkt(data)

udt_send(packet)

rdt_send(data)

extract (packetdata)deliver_data(data)

chờ gọi từ lớp dưới

rdt_rcv(packet)

người gửi người nhận

Transport Layer 3-27

Rdt20 kecircnh với caacutec lỗi

kecircnh ưu tiecircn coacute thể bật lecircn một số bit trong goacutei checksum để kiểm tra caacutec lỗi

Hỏi lagravem sao khocirci phục caacutec lỗi acknowledgements (ACKs) becircn nhận rotilde ragraveng thocircng

baacuteo cho becircn gửi rằng quaacute trigravenh nhận goacutei tốt negative acknowledgements (NAKs) becircn nhận rotilde ragraveng

thocircng baacuteo cho becircn gửi rằng quaacute trigravenh nhận goacutei coacute lỗi người gửi gửi lại goacutei nagraveo được xaacutec nhận lagrave NAK

caacutec cơ chế mới trong rdt20 (sau rdt10) kiểm tra lỗi nhận phản hồi caacutec thocircng điệp điều khiển (ACKNAK)

becircn nhận becircn gửi

Transport Layer 3-28

rdt20 đặc tả FSM

chờ gọi từ lớp trecircn

snkpkt = make_pkt(data checksum)udt_send(sndpkt)

extract(rcvpktdata)deliver_data(data)udt_send(ACK)

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)

rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp isNAK(rcvpkt)

udt_send(NAK)

rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)

chờ ACK hoặc NAK

chờ gọi từ lớp dưới

người gửi

người nhậnrdt_send(data)

Transport Layer 3-29

rdt20 hoạt động khi khocircng lỗi

chờ gọi từ lớp dưới

snkpkt = make_pkt(data checksum)udt_send(sndpkt)

extract(rcvpktdata)deliver_data(data)udt_send(ACK)

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)

rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp isNAK(rcvpkt)

udt_send(NAK)

rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)

chờ ACK hoặc NAK

chờ gọi từ lớp dưới

rdt_send(data)

Transport Layer 3-30

rdt20 hoạt động khi coacute lỗi

chờ gọi từ lớp dưới

snkpkt = make_pkt(data checksum)udt_send(sndpkt)

extract(rcvpktdata)deliver_data(data)udt_send(ACK)

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)

rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp isNAK(rcvpkt)

udt_send(NAK)

rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)

chờ ACK hoặc NAK

chờ gọi từ lớp dưới

rdt_send(data)

Transport Layer 3-31

rdt20 coacute lỗ hổng nghiecircm trọngĐiều gigrave xảy ra nếu

ACKNAK bị hỏng người gửi khocircng biết điều

gigrave đatilde xảy ra tại becircn nhận

khocircng thể đơn phương truyền lại khả năng trugraveng lặp

Quản lyacute trugraveng lặp người gửi truyền lại goacutei

hiện tại nếu ACKNAK bị hỏng

người gửi thecircm số thứ tự vagraveo mỗi goacutei

người nhận hủy (khocircng nhận) goacutei trugraveng lặp

Người gửi gửi 1 goacutei sau đoacute dừng lại chờ phản hồitừ người nhận

dừng vagrave chờ

Transport Layer 3-32

rdt21 người gửi quản lyacute caacutec ACKNAK bị hỏng

chờ gọi 0 từ lớp trecircn

sndpkt = make_pkt(0 data checksum)udt_send(sndpkt)

rdt_send(data)

chờ ACK hoặc NAK

0 udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) ||isNAK(rcvpkt) )

sndpkt = make_pkt(1 data checksum)udt_send(sndpkt)

rdt_send(data)

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) ||isNAK(rcvpkt) )

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt)

chờ gọi 1 từ lớp trecircn

chờ ACK hoặc NAK

1

Transport Layer 3-33

rdt21 người gửi quản lyacute caacutec ACKNAK bị hỏng

chờ 0 từ dưới

sndpkt = make_pkt(NAK chksum)udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp not corrupt(rcvpkt) ampamp has_seq0(rcvpkt)

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp has_seq1(rcvpkt)

extract(rcvpktdata)deliver_data(data)sndpkt = make_pkt(ACK chksum)udt_send(sndpkt)

chờ 1 từ dưới

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp has_seq0(rcvpkt)

extract(rcvpktdata)deliver_data(data)sndpkt = make_pkt(ACK chksum)udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp (corrupt(rcvpkt)

sndpkt = make_pkt(ACK chksum)udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp not corrupt(rcvpkt) ampamp has_seq1(rcvpkt)

rdt_rcv(rcvpkt) ampamp (corrupt(rcvpkt)

sndpkt = make_pkt(ACK chksum)udt_send(sndpkt)

sndpkt = make_pkt(NAK chksum)udt_send(sndpkt)

Transport Layer 3-34

rdt21 thảo luận

người gửi số thứ tự thecircm vagraveo

goacutei chỉ cần hai số thứ tự

(01) lagrave đủ Tại sao phải kiểm tra nếu việc

nhận ACKNAK bị hỏng

số trạng thaacutei tăng lecircn 2 lần trạng thaacutei phải ldquonhớrdquo

goacutei ldquohiện tạirdquo coacute số thứ tự lagrave 0 hay 1

người nhận phải kiểm tra coacute

nhận trugraveng goacutei khocircng trạng thaacutei chỉ rotilde coacute

hay khocircng mong chờ số thứ tự 0 hoặc 1

chuacute yacute người nhận khocircng biết ACKNAK vừa rồi của noacute coacute được người gửi nhận tốt hay khocircng

Transport Layer 3-35

rdt22 một giao thức khocircng cần NAK

chức năng giống như rdt21 chỉ dugraveng caacutec ACK thay cho NAK người nhận gửi ACK cho goacutei vừa

rồi đatilde nhận tốt người nhận phải rotilde ragraveng chegraven số thứ tự của goacutei vừa ACK

trugraveng ACK tại người gửi hậu quả giống như hagravenh động của NAK truyền lại goacutei vừa rồi

Transport Layer 3-36

rdt22 gửi nhận caacutec mảnh

Chờ cho gọi 0 từ

trecircn

sndpkt = make_pkt(0 data checksum)udt_send(sndpkt)

rdt_send(data)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) || isACK(rcvpkt1) )

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt0)

Chờ cho ACK

0

gửi phacircn mảnhFSM

Chờ cho gọi

0 từ dưới

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp has_seq1(rcvpkt)

extract(rcvpktdata)deliver_data(data)sndpkt = make_pkt(ACK1 chksum)udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp (corrupt(rcvpkt) || has_seq1(rcvpkt))

udt_send(sndpkt)

nhận phacircn mảnhFSM

Transport Layer 3-37

rdt30 caacutec kecircnh với lỗi vagrave mất maacutet

Giả định mới kecircnh ưu tiecircn cũng coacute thể lagravem mất caacutec goacutei (dữ liệu hoặc caacutec ACK) checksum số thứ tự

caacutec ACK caacutec việc truyền lại sẽ hỗ trợ nhưng khocircng đủ

Caacutech tiếp cận người gửi chờ ACK trong khoảng thời gian ldquochấp nhận đượcrdquo

truyền lại nếu khocircng nhận ACK trong khoảng thời gian nagravey

nếu goacutei (hoặc ACK) chỉ trễ (khocircng mất) truyền lại sẽ gacircy trugraveng

nhưng dugraveng số thứ tự sẽ giải quyết được

người nhận phải xaacutec định số thứ tự của goacutei vừa gửi ACK

cần bộ định thigrave đếm lugravei

Transport Layer 3-38

rdt30 gửi

sndpkt = make_pkt(0 data checksum)udt_send(sndpkt)start_timer

rdt_send(data)

Chờ cho

ACK 0

rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) ||isACK(rcvpkt1) )

Chờ cho gọi 1 từ trecircn

sndpkt = make_pkt(1 data checksum)udt_send(sndpkt)start_timer

rdt_send(data)

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt0)

rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) ||isACK(rcvpkt0) )

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt1)

stop_timerstop_timer

udt_send(sndpkt)start_timer

timeout

udt_send(sndpkt)start_timer

timeout

rdt_rcv(rcvpkt)

Chờ cho gọi 0 từ trecircn

Chờ cho

ACK 1

rdt_rcv(rcvpkt)

Transport Layer 3-39

hagravenh động của rdt30

Transport Layer 3-40

hagravenh động của rdt30

Transport Layer 3-41

Hiệu suất của rdt30

rdt30 lagravem việc được nhưng đaacutenh giaacute hiệu suất hơi rắc rối viacute dụ liecircn kết 1 Gbps trễ lan truyền giữa hai đầu cuối lagrave 15

ms goacutei 1KB

T truyền = 8kbpkt109 bsec

= 8 microsec

U sender độ khả dụng ndash

U sender

= 008

30008 = 000027

microseconds

L R

RTT + L R =

L (độ dagravei goacutei tiacutenh bằng bits)R (tốc độ truyền bps)

=

goacutei 1KB mỗi 30 msec -gt 33kBs trecircn đường truyền 1 Gbps giao thức network hạn chế việc dugraveng caacutec tagravei nguyecircn vật

lyacute

Transport Layer 3-42

rdt30 hoạt động dừng-vagrave-chờ

goacutei đầu tiecircn đatilde truyền t = 0

gửi nhận

RTT

goacutei cuối cugraveng đatilde truyền t = L R

goacutei đầu tiecircn đatilde đếngoacutei cuối cugraveng đatilde đến gửi ACK

ACK đến gửi goacutei kế tiếp t = RTT + L R

U sender

= 008

30008 = 000027

microseconds

L R

RTT + L R =

Transport Layer 3-43

Caacutec giao thức Pipelined

Pipelining người gửi cho pheacutep gửi nhiều goacutei đồng thời khocircng cần chờ baacuteo nhận được nhoacutem caacutec số thứ tự phải tăng dần phải coacute bộ nhớ đệm tại nơi gửi vagravehoặc nơi nhận

hai dạng phổ biến của caacutec giao thức pipelined go-Back-N Lặp coacute lựa chọn

Transport Layer 3-44

Pipelining độ khả dụng tăng

goacutei đầu tiecircn đatilde truyền t = 0

sender receiver

RTT

goacutei cuối cugraveng đatilde truyền t = L R

goacutei đầu tiecircn đatilde đếngoacutei cuối cugraveng đatilde đến gửi ACK

ACK đến gửi goacuteikế tiếp t = RTT + L R

bit cuối của goacutei thứ 2 đến gửi ACKbit cuối của goacutei thứ 3 đến gửi ACK

U sender

= 024

30008 = 00008

microseconds

3 L R

RTT + L R =

Độ khả dụng tăng lecircngấp 3 lần

Transport Layer 3-45

Go-Back-NBecircn gửi k-bit số thứ tự trong header của goacutei ldquocửa sổrdquo tăng lecircn đến N cho pheacutep gửi caacutec goacutei liecircn tục khocircng cần ACK

ACK(n) ACKs tất cả caacutec goacutei đến chứa số thứ tự n ndash ldquoACK tiacutech lũyrdquo coacute thể nhận caacutec ACK trugraveng lặp (xem becircn nhận)

định thigrave cho mỗi goacutei trecircn đường truyền timeout(n) gửi lại goacutei n vagrave tất cả caacutec goacutei coacute số thứ tự cao

hơn trong cửa sổ

Transport Layer 3-46

GBN becircn gửi mở rộng FSM

chờ start_timerudt_send(sndpkt[base])udt_send(sndpkt[base+1])hellipudt_send(sndpkt[nextseqnum-1])

timeout

rdt_send(data)

if (nextseqnum lt base+N) sndpkt[nextseqnum] = make_pkt(nextseqnumdatachksum) udt_send(sndpkt[nextseqnum]) if (base == nextseqnum) start_timer nextseqnum++ else refuse_data(data)

base = getacknum(rcvpkt)+1If (base == nextseqnum) stop_timer else start_timer

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)

base=1nextseqnum=1

rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)

Transport Layer 3-47

GBN becircn nhận mở rộng FSM

ACK-duy nhất luocircn luocircn gửi ACK cho goacutei đatilde nhận đuacuteng với số thứ tự xếp hạng cao nhất coacute thể sinh ra caacutec ACK trugraveng nhau chỉ cần nhớ expectedseqnum

goacutei khocircng theo thứ tự hủy -gt khocircng nhận vagraveo bộ đệm gửi lại ACK với số thứ tự xếp hạng cao nhất

chờ

udt_send(sndpkt)

default

rdt_rcv(rcvpkt) ampamp notcurrupt(rcvpkt) ampamp hasseqnum(rcvpktexpectedseqnum)

extract(rcvpktdata)deliver_data(data)sndpkt = make_pkt(expectedseqnumACKchksum)udt_send(sndpkt)expectedseqnum++

expectedseqnum=1sndpkt = make_pkt(expectedseqnumACKchksum)

Transport Layer 3-48

GBN hoạt động

Transport Layer 3-49

Lặp coacute lựa chọn

becircn nhận thocircng baacuteo đatilde nhận đuacuteng tất cả từng goacutei một đệm (buffer) caacutec goacutei nếu cần thiết

becircn gửi chỉ gửi lại caacutec goacutei nagraveo khocircng nhận được ACK becircn gửi định thigrave đối với mỗi goacutei khocircng gửi ACK

cửa sổ becircn gửi N số thứ tự liecircn tục hạn chế số thứ tự caacutec goacutei khocircng gửi ACK

Transport Layer 3-50

Lặp coacute lựa chọn caacutec cửa sổ gửi nhận

Transport Layer 3-51

Lặp coacute lựa chọn

dữ liệu từ lớp trecircn nếu số thứ tự kế tiếp sẵn

sagraveng trong cửa sổ gửi goacutei

timeout(n) gửi lại goacutei n taacutei khởi tạo

bộ định thigrave

ACK(n) trong [sendbasesendbase+N]

đaacutenh dấu goacutei n lagrave đatilde nhận nếu goacutei khocircng ACK coacute n

nhỏ nhất dịch chuyển cửa sổ base đến số thứ tự khocircng ACK kế tiếp

Gửigoacutei n trong [rcvbase

rcvbase+N-1]

gửi ACK(n) khocircng thứ tự đệm

(buffer) coacute thứ tự truyền (cũng

truyền caacutec goacutei đatilde đệm coacute thứ tự) dịch chuyển cửa sổ đến goacutei chưa nhận kế tiếp

goacutei n trong [rcvbase-Nrcvbase-1]

ACK(n)

ngược lại lờ đi

Nhận

Transport Layer 3-52

Hoạt động của lặp coacute lựa chọn

Transport Layer 3-53

Lặp coacute lựa chọntigravenh trạng khoacute giải quyếtViacute dụ Số thứ tự 0 1 2 3 Kiacutech thước cửa sổ = 3

becircn nhận khocircng thấy sự khaacutec nhau trong 2 tigravenh huống

chuyển khocircng chiacutenh xaacutec dữ liệu trugraveng lặp như dữ liệu mới trong (a)

Hỏi quan hệ giữa datildey số thứ tự vagrave kiacutech thước cửa sổ

Transport Layer 3-54

Chương 3 Nội dung trigravenh bagravey

31 Caacutec dịch vụ lớp Transport

32 Multiplexing vagrave demultiplexing

33 Vận chuyển khocircng kết nối UDP

34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy

35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối

36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn

37 Điều khiển tắc nghẽn TCP

Transport Layer 3-55

TCP Tổng quan RFCs 793 1122 1323 2018 2581

dữ liệu full duplex luồng dữ liệu đi 2 chiều

trong cugraveng một kết nối MSS maximum

segment size ndash kiacutech thước đoạn tối đa

hướng kết nối bắt tay (trao đổi caacutec

thocircng điệp điều khiển) trạng thaacutei becircn gửi becircn nhận trước khi trao đổi dữ liệu

điều khiển luồng becircn gửi sẽ khocircng lấn aacutet

becircn nhận

point-to-point một becircn gửi một becircn

nhận tin cậy dograveng byte coacute

thứ tự khocircng ldquoranh giới thocircng

điệprdquo kecircnh liecircn lạc

TCP điều khiển luồng vagrave tắc nghẽn thiết lập kiacutech thước cửa sổ

caacutec bộ đệm gửi amp nhận

socketdoor

T C Psend buffer

T C Preceive buffer

socketdoor

segm ent

applicationwrites data

applicationreads data

Transport Layer 3-56

TCP cấu truacutec đoạn

port nguồn port điacutech

32 bits

dữ liệu ứng dụng(độ dagravei thay đổi)

số thứ tự

số ACKcửa sổ nhận

con trỏ URGchecksum

FSRPAUheadlen

notused

Tugravey chọn (độ dagravei thay đổi)

URG dữ liệu khẩn cấp(thường khocircng dugraveng)

ACK ACK hợp lệ

PSH push data now(thường khocircng dugraveng)

RST SYN FINthiết lập kết nối

(caacutec lệnh thiết lậpchia nhỏ)

số byte becircn nhận sẵn sagraveng chấp nhận

đếm bởi số bytecủa dữ liệu

Internetchecksum

(giống UDP)

Transport Layer 3-57

Caacutec số thứ tự TCP vagrave ACKCaacutec số thứ tự

dograveng byte ldquođaacutenh sốrdquo byte đầu tiecircn trong dữ liệu của đoạn

caacutec ACK số thứ tự của byte

kế tiếp được chờ đợi từ phiacutea becircn kia

ACK tiacutech lũyHỏi lagravem thế nagraveo becircn

nhận quản lyacute caacutec đoạn khocircng thứ tự Trả lời TCP khocircng

đề cập tugravey thuộc người hiện thực

Host A Host B

Seq=42 ACK=79 data = lsquoCrsquo

Seq=79 ACK=43 data = lsquoCrsquo

Seq=43 ACK=80

UsernhậplsquoCrsquo

host ACKsnhận phản hồi

lsquoCrsquo

host ACKsbaacuteo nhận

lsquoCrsquo phản hồingược lại lsquoCrsquo

timetigravenh huống telnet đơn giản

Transport Layer 3-58

TCP Round Trip Time vagraveTimeout

Hỏi Lagravem thế nagraveo để thiết lập giaacute trị TCP timeout

dagravei hơn RTT khaacutec với RTT

quaacute ngắn timeout sớm truyền lại khocircng

cần thiết quaacute dagravei phản ứng

chậm đối với việc mất maacutet goacutei

Hỏi Lagravem thế nagraveo để thiết lập RTT

SampleRTT thời gian được đo từ khi truyền đoạn đến khi baacuteo nhận ACK lờ đi việc truyền lại

SampleRTT sẽ thay đổi muốn ước lượng RTT ldquomượt hơnrdquo tiacutenh trung bigravenh một số giaacute

trị đo được gần đoacute khocircng chỉ SampleRTT hiện tại

Transport Layer 3-59

TCP Round Trip Time vagrave Timeout

EstimatedRTT = (1- )EstimatedRTT + SampleRTT

giaacute trị đặc trưng = 0125

Transport Layer 3-60

Viacute dụ đaacutenh giaacute RTTRTT gaiacsumassedu to fantasiaeurecomfr

100

150

200

250

300

350

1 8 15 22 29 36 43 50 57 64 71 78 85 92 99 106

time (seconnds)

RTT

(mill

isec

onds

)

SampleRTT Estimated RTT

Transport Layer 3-61

TCP Round Trip Time vagrave Timeout

Thiết lập timeout EstimtedRTT cộng ldquohệ số dự trữ an toagravenrdquo

sự biến thiecircn lớn trong EstimatedRTT -gt hệ số dự trữ an toagraven lớn hơn ước lượng đầu tiecircn về sự biến thiecircn của SampleRTT từ EstimatedRTT

TimeoutInterval = EstimatedRTT + 4DevRTT

DevRTT = (1-)DevRTT + |SampleRTT-EstimatedRTT|

(tiecircu biểu = 025)

Sau đoacute thiết lập timeout interval

Transport Layer 3-62

TCP truyền dữ liệu tin cậy

TCP tạo dịch vụ rdt trecircn dịch vụ khocircng tin cậy IP

caacutec đoạn Pipelined caacutec ACK tiacutech lũy TCP dugraveng bộ định thigrave

truyền lại đơn

Truyền lại được kiacutech hoạt bởi caacutec sự kiện timeout caacutec ack trugraveng lặp

luacutec đầu khảo saacutet caacutec becircn gửi TCP đơn giản lờ đi caacutec ack trugraveng lặp lờ đi điều khiển luồng

điều khiển tắc nghẽn

Transport Layer 3-63

TCP caacutec sự kiệndữ liệu đatilde nhận từ ứng

dụng tạo đoạn với số thứ

tự của noacute số thứ tự lagrave số theo

byte dữ liệu đầu tiecircn khởi động bộ định thigrave

nếu chưa chạy khoảng thời gian hết

hạn TimeOutInterval

timeout gửi lại đoạn nagraveo gacircy

ra timeout khởi động lại bộ định

thigrave Ack đatilde nhận

cập nhật caacutei gigrave sẽ được ACK

khởi động bộ định thigrave nếu coacute caacutec đoạn cograven chờ

Transport Layer 3-64

TCP becircn gửi(đơn giản)

NextSeqNum = InitialSeqNum SendBase = InitialSeqNum

loop (forever) switch(event)

event data received from application above create TCP segment with sequence number NextSeqNum if (timer currently not running) start timer pass segment to IP NextSeqNum = NextSeqNum + length(data)

event timer timeout retransmit not-yet-acknowledged segment with smallest sequence number start timer

event ACK received with ACK field value of y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer

end of loop forever

Chuacute thiacutechbull SendBase-1 byte vừa được ACK tiacutech lũy Viacute dụbull SendBase-1 = 71y= 73 vigrave thế becircn nhận muốn 73+ y gt SendBase vigrave thế dữ liệu mới được chấp nhận

Transport Layer 3-65

TCP caacutec tigravenh huống truyền lại

Host A

Seq=100 20 bytes data

ACK=100

timetimeout sớm

Host B

Seq=92 8 bytes data

ACK=120

Seq=92 8 bytes data

Seq=

92

tim

eout

ACK=120

Host A

Seq=92 8 bytes data

ACK=100

loss

tim

eout

tigravenh huống mất ACK

Host B

X

Seq=92 8 bytes data

ACK=100

time

Seq=

92

tim

eout

SendBase= 100

SendBase= 120

SendBase= 120

Sendbase= 100

Transport Layer 3-66

TCP caacutec tigravenh huống truyền lại (tt)Host A

Seq=92 8 bytes data

ACK=100

loss

tim

eout

Cumulative ACK scenario

Host B

X

Seq=100 20 bytes data

ACK=120

time

SendBase= 120

Transport Layer 3-67

TCP sinh ra ACK [RFC 1122 RFC 2581]

Sự kiện tại becircn nhận

Đoạn đến với đuacuteng số thứ tự mong muốn Tất cả dữ liệu đếnđatilde được ACK

Đoạn đến với đuacuteng số thứ tự mong muốn Một đoạn khaacutec đangchờ ACK

Caacutec đoạn đến khocircng thứ tựlớn hơn số thứ tự đoạn mong muốnCoacute khoảng trống

Đoạn đếnlấp đầy từng phần hoặc toagraven bộkhoảng trống

TCP becircn nhận hagravenh động

ACK trễ Chờ đến 500mscho đoạn kế tiếp Nếu khocircng coacute đoạnkế tiếp gửi ACK

Gửi ngay một ACK tiacutech lũy chấp nhậncho cả caacutec đoạn theo thứ tự

Gửi ngay ACK trugraveng lặp chỉ thị số thứ tựđoạn của byte kế tiếp đang mong chờ

Gửi ngay ACK với điều kiện lagrave đoạnbắt đầu ngay điểm coacute khoảng trống

Transport Layer 3-68

Truyền lại nhanh

Chu kỳ Time-out thường tương đối dagravei độ trễ dagravei trước khi gửi

lại goacutei đatilde mất

Xaacutec nhận caacutec đoạn đatilde mất bằng caacutec ACK trugraveng lặp becircn gửi thường gửi

nhiều đoạn song song Nếu đoạn bị mất sẽ

xảy ra tigravenh trạng giống như nhiều ACK trugraveng nhau

Nếu becircn gửi nhận 3 ACK của cugraveng một dữ liệu noacute cho lagrave đoạn sau dữ liệu đatilde ACK bị mất Truyền lại nhanh gửi

lại đoạn trước khi bộ định thigrave hết hạn

Transport Layer 3-69

sự kiện ACK đatilde nhận với trường lagrave y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer else increment count of dup ACKs received for y if (count of dup ACKs received for y = 3) resend segment with sequence number y

Giải thuật truyền lại nhanh

một ACK trugraveng lặp cho đoạn đatilde được ACK

Truyền lại nhanh

Transport Layer 3-70

Chương 3 Nội dung trigravenh bagravey

31 Caacutec dịch vụ lớp Transport

32 Multiplexing vagrave demultiplexing

33 Vận chuyển khocircng kết nối UDP

34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy

35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối

36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn

37 Điều khiển tắc nghẽn TCP

Transport Layer 3-71

TCP điều khiển luồng

becircn nhận của kết nối TCP coacute một bộ đệm nhận

dịch vụ so trugraveng tốc độ so trugraveng tốc độ gửi với tốc độ nhận của ứng dụng

tiến trigravenh ứng dụng coacute thể chậm tại luacutec đọc bộ đệm

becircn gửi sẽ khocircng lagravem tragraven bộ đệm vigrave truyền quaacute nhiều vagrave

quaacute nhanh

điều khiển luồng

Transport Layer 3-72

TCP điều khiển luồng caacutech lagravem

(Giả sử becircn nhận TCP loại bỏ caacutec đoạn khocircng coacute thứ tự)

dự phograveng trong bộ đệm= RcvWindow

= RcvBuffer-[LastByteRcvd - LastByteRead]

Becircn nhận thocircng baacuteo khoảng dự trữ nhờ giaacute trị RcvWindow trong caacutec đoạn

Becircn gửi hạn chế dữ liệu khocircng được ACK vagraveo RcvWindow bảo đảm bộ đệm nhận

khocircng tragraven

Transport Layer 3-73

Chương 3 Nội dung trigravenh bagravey

31 Caacutec dịch vụ lớp Transport

32 Multiplexing vagrave demultiplexing

33 Vận chuyển khocircng kết nối UDP

34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy

35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối

36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn

37 Điều khiển tắc nghẽn TCP

Transport Layer 3-74

TCP quản lyacute kết nối

Chuacute yacute Becircn gửi vagrave becircn nhận TCP thiết lập ldquokết nốirdquo trước khi trao đổi dữ liệu

khởi tạo caacutec biến TCP caacutec số thứ tự đoạn thocircng tin caacutec bộ đệm điều

khiển luồng (như RcvWindow)

client người khởi xướng kết nối

Socket clientSocket = new Socket(hostnameport

number) server được tiếp xuacutec bởi

client Socket connectionSocket =

welcomeSocketaccept()

3 phương phaacutep bắt tay

Bước 1 client host gửi đoạnTCP SYN đến server xaacutec định số thứ tự khởi đầu khocircng phải dữ liệu

Bước 2 server host nhận SYN trả lời với đoạn SYNACK

server cấp phaacutet caacutec bộ đệm

xaacutec định số thứ tự khởi đầuBước 3 client nhận SYNACK trả

lời với đoạn ACK (coacute thể chứa dữ liệu)

Transport Layer 3-75

TCP quản lyacute kết nối (tt)

Đoacuteng một kết nối

client đoacuteng socket clientSocketclose()

Bước 1 client gửi đoạn điều khiển TCP FIN đến server

Bước 2 server nhận FIN trả lời với ACK Đoacuteng kết nối gửi FIN

client

FIN

server

ACK

ACK

FIN

đoacuteng

đoacuteng

đatilde đoacutengthời g

ian c

hờ

Transport Layer 3-76

TCP quản lyacute kết nối (tt)

Bước 3 client nhận FIN trả lời với ACK

Trong khoảng ldquothời gian chờrdquo ndash sẽ phản hồi với ACK để nhận caacutec FIN

Bước 4 server nhận ACK Kết nối đatilde đoacuteng

Chuacute yacute với một sửa đổi nhỏ coacute thể quản lyacute nhiều FIN đồng thời

client

FIN

server

ACK

ACK

FIN

đang đoacuteng

đang đoacuteng

đatilde đoacuteng

thời g

ian c

hờ

đatilde đoacuteng

Transport Layer 3-77

TCP quản lyacute kết nối (tt)

chu kỳ sống củaTCP client

chu kỳ sống củaTCP server

Transport Layer 3-78

Chương 3 Nội dung trigravenh bagravey

31 Caacutec dịch vụ lớp Transport

32 Multiplexing vagrave demultiplexing

33 Vận chuyển khocircng kết nối UDP

34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy

35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối

36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn

37 Điều khiển tắc nghẽn TCP

Transport Layer 3-79

Caacutec nguyecircn lyacute điều khiển tắc nghẽn

Tắc nghẽn ldquoquaacute nhiều nguồn gửi quaacute nhanh vagrave quaacute nhiều

dữ liệu đến mạngrdquo khaacutec với điều khiển luồng caacutec biểu hiện

caacutec goacutei bị mất (tragraven bộ đệm tại caacutec router) caacutec độ trễ quaacute dagravei (xếp hagraveng trong bộ đệm

của router) lagrave 1 trong 10 vấn đề nan giải nhất

Transport Layer 3-80

Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 1

2 gửi 2 nhận 1 router caacutec bộ

đệm khocircng giới hạn

khocircng coacute truyền lại

caacutec độ trễ lớn hơn khi tắc nghẽn

năng suất coacute thể đạt tối đa

unlimited shared output link buffers

Host Ain original data

Host B

out

Transport Layer 3-81

Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 2

1 router caacutec bộ đệm coacute giới hạn becircn gửi truyền lại caacutec goacutei đatilde mất

chia sẻ vocirc hạncaacutec bộ đệm ouput

Host A in dữ liệu gốc

Host B

out

in dữ liệu gốc cugraveng với dữ liệu truyền lại

Transport Layer 3-82

Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 2 luocircn luocircn

truyền lại ldquohoagraven toagravenrdquo chỉ khi mất maacutet

truyền lại vigrave trễ (khocircng mất) lagravem cho lớn hơn với cugraveng

in

out

=

in

out

gt

in

out

ldquocaacutec chi phiacuterdquo của tắc nghẽn nhiều việc (truyền lại) caacutec truyền lại khocircng cần thiết liecircn kết nhiều bản sao của

goacutei

R2

R2in

ou

t

b

R2

R2in

ou

t

a

R2

R2in

ou

t

c

R4

R3

Transport Layer 3-83

Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 3 4 người gửi caacutec đường qua nhiều hop timeouttruyền lại

in

Hỏi điều gigrave xảy ra nếu vagrave tăng lecircn

in

chia sẻ vocirc hạncaacutec bộ đệm ouput

Host Ain dữ liệu gốc

Host B

out

in dữ liệu gốc cugraveng với dữ liệu truyền lại

Transport Layer 3-84

Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 3

ldquochi phiacuterdquo khaacutec của tắc nghẽn khi caacutec goacutei bị bỏ bất kỳ ldquokhả năng truyền

upstream dugraveng cho goacutei đoacute sẽ bị latildeng phiacuterdquo

Host A

Host B

o

u

t

Transport Layer 3-85

Caacutec caacutech tiếp cận đối với điều khiển tắc nghẽn

điều khiển tắc nghẽn end-end

khocircng coacute phản hồi rotilde ragraveng từ mạng

tắc nghẽn được suy ra từ việc quan saacutet caacutec hệ thống đầu cuối coacute mất maacutet trễ

tiếp cận được quản lyacute bởi TCP

điều khiển tắc nghẽn coacute sự hỗ trợ của mạng

caacutec router cung cấp phản hồi về caacutec hệ thống đầu cuối 1 bit duy nhất chỉ thị

tắc nghẽn (SNA DECbit TCPIP ECN ATM)

tốc độ sẽ gửi được xaacutec định rotilde ragraveng

2 caacutech

Transport Layer 3-86

Viacute dụ điều khiển tắc nghẽn ATM ABR

ABR tốc độ bit sẵn sagraveng

ldquodịch vụ mềm dẻordquo nếu đường gửi ldquochưa

hếtrdquo becircn gửi sẽ dugraveng

băng thocircng sẵn sagraveng nếu đường gửi tắc

nghẽn becircn gửi điều tiết với

tốc độ tối thiểu

RM (resource management)

gửi bởi becircn gửi rải raacutec với caacutec ocirc dữ liệu

caacutec bit trong ocirc thiết lập bởi caacutec switch bit NI khocircng tăng tốc độ

(tắc nghẽn nhẹ) bit CI tắc nghẽn rotilde rệt

Caacutec ocirc RM được trả về becircn gửi từ becircn nhận với nguyecircn vẹn caacutec bit

Transport Layer 3-87

Viacute dụ điều khiển tắc nghẽn ATM ABR

trường 2-byte ER trong ocirc RM switch đatilde tắc nghẽn coacute thể coacute giaacute trị ER thấp hơn trong ocirc tốc độ gửi do đoacute coacute thể được hỗ trợ tối đa trecircn đường

EFCI bit trong caacutec ocirc dữ liệu được cagravei giaacute trị 1 trong switch đatilde tắc nghẽn nếu ocirc dữ liệu đứng trước ocirc RM coacute cagravei EFCI becircn gửi sẽ cagravei

bit CI trong ocirc RM trả về

Transport Layer 3-88

Chương 3 Nội dung trigravenh bagravey

31 Caacutec dịch vụ lớp Transport

32 Multiplexing vagrave demultiplexing

33 Vận chuyển khocircng kết nối UDP

34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy

35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối

36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn

37 Điều khiển tắc nghẽn TCP

Transport Layer 3-89

TCP điều khiển tắc nghẽn additive tăng lecircn multiplicative giảm xuống

8 Kbytes

16 Kbytes

24 Kbytes

time

congestionwindow

Caacutech tiếp cận tăng tốc độ truyền (kiacutech thước cửa sổ) tigravem khả năng băng thocircng coacute thể cho đến khi coacute mất maacutet xảy ra additive tăng lecircn tăng CongWin bởi 1 MSS

mỗi RTT cho đến khi coacute mất maacutet xảy ra multiplicative giảm xuống bỏ CongWin trong

nửa giai đoạn sau khi mất maacutet

timekiacutech

thư

ớc

cửa

sổ

tắc

nghẽ

n

Tigravem kiếm băng thocircng

Transport Layer 3-90

TCP điều khiển tắc nghẽn chi tiết

becircn gửi hạn chế việc truyền LastByteSent-LastByteAcked

CongWin Cocircng thức

CongWin thay đổi chức năng lagrave nhận biết tắc nghẽn trecircn mạng

Lagravem thế nagraveo becircn gửi nhận biết tắc nghẽn

mất maacutet xảy ra = timeout hoặc 3 ack trugraveng lặp

becircn gửi giảm tốc độ (CongWin) sau khi mất maacutet xảy ra

3 cơ chế AIMD khởi động chậm thận trọng sau khi coacute

caacutec sự kiện timeout

tốc độ = CongWin

RTT Bytess

Transport Layer 3-91

TCP khởi động chậm

Khi kết nối bắt đầu CongWin = 1 MSS Viacute dụ MSS = 500 bytes

amp RTT = 200 ms tốc độ khởi tạo = 20

kbps

băng thocircng sẵn sagraveng coacute thể gtgt MSSRTT mong muốn nhanh

choacuteng tăng tốc lecircn tốc độ coacute thể đaacutep ứng

Khi kết nối bắt đầu tăng tốc lecircn rất nhanh cho đến khi sự cố mất maacutet xảy ra đầu tiecircn

Transport Layer 3-92

TCP khởi động chậm (tt)

Khi kết nối bắt đầu tăng tốc lecircn rất nhanh cho đến khi sự cố mất maacutet xảy ra đầu tiecircn nhacircn đocirci CongWin mỗi

RTT hoagraven thagravenh nhờ tăng CongWin ứng với mỗi ACK đatilde nhận

Tổng kết tốc độ khởi đầu lagrave chậm nhưng sau đoacute tăng tốc rất nhanh

Host A

1 đoạn

RTT

Host B

thời gian

2 đoạn

4 đoạn

Transport Layer 3-93

Tinh chếHỏi Khi nagraveo việc tăng

tốc trở thagravenh tuyến tiacutenh

Trả lời Khi CongWin đạt đến 12 giaacute trị của noacute trước khi timeout

Hiện thực Ngưỡng thay đổi Tại thời điểm coacute sự cố

mất maacutet ngưỡng được cagravei giaacute trị bằng frac12 của CongWin ngay trước đoacute

Transport Layer 3-94

Tinh chế nhận biết mất maacutet

Sau 3 ACK trugraveng lặp CongWin sẽ giảm 12 kiacutech thước cửa sổ

tăng tuyến tiacutenh nhưng sau sự cố

timeout CongWin thay giaacute trị

bằng 1 MSS kiacutech thước cửa sổ

tăng cấp lũy thừa khi đến một ngưỡng

thigrave tăng tuyến tiacutenh

3 ACK trugraveng nhau chỉ ra khả năng truyền của mạng timeout chỉ thị ldquonhiều cảnh baacuteordquo về tigravenh huống tắc nghẽn

Nguyecircn lyacute

Transport Layer 3-95

Tổng kết TCP điều khiển tắc nghẽn

Khi CongWin dưới Threshold becircn gửi đang trong giai đoạn khởi động chậm kiacutech thước cửa sổ tăng nhanh theo cấp lũy thừa

Khi CongWin trecircn Threshold becircn gửi đang trong giai đoạn traacutenh tắc nghẽn kiacutech thước cửa sổ tăng nhanh theo cấp tuyến tiacutenh

Khi coacute 3 ACK trugraveng lặp xảy ra Threshold = CongWin2 vagrave CongWin = Threshold

Khi timeout xảy ra Threshold = CongWin2 vagrave CongWin = 1 MSS

Transport Layer 3-96

TCP điều khiển tắc nghẽn becircn gửi

Trạng thaacutei Sự kiện TCP becircn gửi hagravenh động Diễn giải

Slow Start (SS)-Khởi động chậm

ACK baacuteo nhận cho dữ liệu chưa ACK trước đoacute

CongWin = CongWin + MSS If (CongWin gt Threshold) cagravei đặt trạng thaacutei ldquoTraacutenh tắc nghẽnrdquo

Hậu quả lagravem tăng gấp đocirci CongWin mỗi RTT

CongestionAvoidance (CA) ndashTraacutenh tắc nghẽn

ACK baacuteo nhận cho dữ liệu chưa ACK trước đoacute

CongWin = CongWin+MSS (MSSCongWin)

Additive tăng lecircn lagravem tăng CongWin lecircn 1 MSS mỗi RTT

SS hoặc CA Sự cố mất maacutet xảy ra khi thấy coacute 3 ACK trugraveng lặp

Threshold = CongWin2 CongWin = Thresholdcagravei đặt trạng thaacutei ldquoTraacutenh tắc nghẽnrdquo

Khocirci phục nhanh hiện thực giảm xuống multiplicative CongWin sẽ khocircng giảm xuống dưới 1 MSS

SS hoặc CA Timeout Threshold = CongWin2 CongWin = 1 MSScagravei đặt trạng thaacutei ldquoKhởi động chậmrdquo

Vagraveo chế độ ldquoKhởi động chậmrdquo

SS hoặc CA ACK trugraveng lặp

Đếm ACK tăng lecircn cho đoạn vừa được ACK

CongWin vagrave Threshold khocircng thay đổi

Transport Layer 3-97

TCP throughput

Throughout trung bigravenh của TCP biểu diễn qua kiacutech thước của sổ vagrave RTT Bỏ qua trạng thaacutei ldquoKhởi động chậmrdquo

Cho W lagrave kiacutech thước cửa sổ khi coacute mất maacutet xảy ra

Khi kiacutech thước cửa sổ = W lưu lượng = WRTT

Chỉ ngay sau khi mất maacutet cửa sổ giảm xuống = W2 lưu lượng = W2RTT

throughout trung bigravenh 075 WRTT

Transport Layer 3-98

TCP tương lai

Viacute dụ caacutec đoạn dagravei 1500 byte RTT 100ms lưu lượng 10 Gbps

Kiacutech thước cửa sổ yecircu cầu W = 83333 đoạn trecircn đường truyền

Lưu lượng trong caacutec trường hợp mất maacutet

L = 210-10

Phiecircn bản mới của TCP dagravenh cho nhu cầu tốc độ cao

LRTT

MSS221

Transport Layer 3-99

Mục tiecircu nếu K phiecircn lagravem việc TCP chia sẻ kết nối cổ chai của băng thocircng lagrave R mỗi phiecircn coacute tốc độ trung bigravenh lagrave RK

TCP kết nối 1

router cổ chaikhả năng R

TCP kết nối 2

TCP tiacutenh cocircng bằng

Transport Layer 3-100

Tại sao phải TCP cocircng bằng

2 phiecircn lagravem việc cạnh tranh nhau Additive tăng lưu lượng tăng multiplicative giảm lưu lượng tương xứng

R

R

chia sẻ băng thocircng bằng nhau

Connection 1 throughputConnect

ion 2

th

roughput

traacutenh tắc nghẽn additive tăng lecircnmất maacutet giảm cửa sổ bằng 12

traacutenh tắc nghẽn additive tăng lecircnmất maacutet giảm cửa sổ bằng 12

Transport Layer 3-101

TCP tiacutenh cocircng bằng (tt)

Tiacutenh cocircng bằng amp UDP nhiều ứng dụng

thường khocircng dugraveng TCP khocircng muốn tốc độ bị

điều tiết do điều khiển tắc nghẽn

Thay bằng dugraveng UDP truyền audiovideo với

tốc độ ổn định chịu được mất maacutet

Nghiecircn cứu giao thức thacircn thiện với TCP

Tiacutenh cocircng bằng amp caacutec kết nối TCP song song

khocircng coacute gigrave ngăn cản việc ứng dụng mở caacutec kết nối song song giữa 2 host

Trigravenh duyệt Web lagravem giống như thế

Viacute dụ tốc độ R hỗ trợ 9 kết nối ứng dụng mới yecircu cầu 1

TCP coacute tốc độ R10 ứng dụng mới yecircu cầu 11

TCP coacute tốc độ R2

Transport Layer 3-102

Mocirc higravenh trễ

Hỏi Mất bao lacircu để nhận 1 đối tượng từ Web server sau khi gửi yecircu cầu

Bỏ qua tắc nghẽn trễ bị ảnh hưởng bởi

thiết lập kết nối TCP trễ truyền dữ liệu khởi động chậm

Notation caacutec giả định Giả sử một kết nối giữa

client vagrave server coacute tốc độ R

S MSS (bits) O kiacutech thước đối tượng

(bits) khocircng truyền lại (khocircng

mất maacutet khocircng hỏng)

Kiacutech thước cửa sổ Giả định 1 cửa sổ tắc

nghẽn cố định coacute W đoạn Sau đoacute cửa sổ thay đổi

mocirc higravenh khởi động chậm

Transport Layer 3-103

Cửa sổ tắc nghẽn cố định (1)

Trường hợp đầu tiecircnWSR gt RTT + SR cho

đoạn đầu tiecircn trong cửa sổ trả về trước khi cửa sổ dữ liệu gửi ACK

trễ = 2RTT + OR

Transport Layer 3-104

Cửa sổ tắc nghẽn cố định (2)

Trường hợp thứ hai WSR lt RTT + SR sent

chờ cho ACK sau khi gửi dữ liệu

trễ = 2RTT + OR+ (K-1)[SR + RTT - WSR]

Transport Layer 3-105

TCP Mocirc higravenh trễ Khởi động chậm (1)

Bacircy giờ giả sử kiacutech thước cửa sổ tăng lecircn tugravey theo quaacute trigravenh khởi động chậm

Độ trễ của một đối tượng sẽ lagrave

R

S

R

SRTTP

R

ORTTLatency P )12(2

trong đoacute P lagrave số lần TCP rảnh ở tại server

1min KQP

- trong đoacute Q lagrave số lần server rảnh nếu đối tượng đatilde khởi tạo kiacutech thước

- vagrave K lagrave số lượng cửa sổ bao trugravem đối tượng

Transport Layer 3-106

TCP Mocirc higravenh trễ Khởi động chậm (2)

RTT

initia te TCPconnection

requestobject

first w indow= S R

second w indow= 2S R

third w indow= 4S R

fourth w indow= 8S R

com pletetransm issionobject

delivered

tim e atc lient

tim e atserver

Viacute dụbull OS = 15 đoạnbull K = 4 cửa sổbull Q = 2bull P = minK-1Q = 2

Server rảnh P=2 lần

Caacutec thagravenh phần trễbull 2 RTT dagravenh cho thiết lập kết nối vagrave yecircu cầubull OR để truyền đối tượngbullthời gian server rảnh bởi vigrave khởi động chậm

Server rảnh P = minK-1Q lần

Transport Layer 3-107

TCP Mocirc higravenh trễ(3)

R

S

R

SRTTPRTT

R

O

R

SRTT

R

SRTT

R

O

idleTimeRTTR

O

P

kP

k

P

pp

)12(][2

]2[2

2delay

1

1

1

th window after the timeidle 2 1 kR

SRTT

R

S k

ementacknowledg receivesserver until

segment send tostartsserver when from time RTTR

S

window kth the transmit totime2 1

R

Sk

RTT

initia te TCPconnection

requestobject

first w indow= S R

second w indow= 2S R

third w indow= 4S R

fourth w indow= 8S R

com pletetransm issionobject

delivered

tim e atc lient

tim e atserver

Transport Layer 3-108

TCP Mocirc higravenh trễ (4)

)1(log

)1(logmin

12min

222min

222min

2

2

110

110

S

OS

Okk

S

Ok

SOk

OSSSkK

k

k

k

caacutech tiacutenh toaacuten Q tương tự (xem HW)

K = số lượng cửa sổ bao trugravem đối tượngLagravem thế nagraveo tiacutenh được K

Transport Layer 3-109

HTTP Mocirc higravenh Giả sử trang Web chứa

1 trang HTML (kiacutech thước O bits) M higravenh ảnh (mỗi caacutei kiacutech thướcO bits)

HTTP khocircng bền vững M+1 TCP kết nối Thời gian đaacutep ứng = (M+1)OR + (M+1)2RTT + tổng số thời

gian rảnh HTTP bền vững

2 RTT để yecircu cầu vagrave nhận file HTML 1 RTT để yecircu cầu vagrave nhận M higravenh ảnh Thời gian đaacutep ứng = (M+1)OR + 3RTT + tổng số thời gian

rảnh HTTP khocircng bền vững với X kết nối song song

Giả sử MX lagrave số nguyecircn 1 TCP kết nối cho file MX thiết lập caacutec kết nối song song cho caacutec higravenh ảnh Thời gian đaacutep ứng = (M+1)OR + (MX + 1)2RTT + tổng số

thời gian rảnh

Transport Layer 3-110

02468

101214161820

28Kbps

100Kbps

1Mbps

10Mbps

non-persistent

persistent

parallel non-persistent

HTTP thời gian đaacutep ứng (giacircy)RTT = 100 msec O = 5 Kbytes M=10 vagrave X=5

Với băng thocircng thấp thời gian kết nối amp đaacutep ứng trội hơn thời gian truyền

Caacutec kết nối bền vững chỉ cho sự cải thiện khocircng đaacuteng kể trecircn caacutec kết nối song song

Transport Layer 3-111

0

10

20

30

40

50

60

70

28Kbps

100Kbps

1Mbps

10Mbps

non-persistent

persistent

parallel non-persistent

HTTP thời gian đaacutep ứng (giacircy)

RTT =1 sec O = 5 Kbytes M=10 and X=5

Với RTT lớn hơn thời gian đaacutep ứng trội hơn thời gian trễ chờ thiết lập kết nốiTCP amp khởi động chậm Caacutec kết nối bền vững bacircy giờ cho thấy cải thiện rotilde rệt đặc biệtvới caacutec mạng băng thocircng cao

Transport Layer 3-112

Chương 3 Tổng kết caacutec nguyecircn lyacute của caacutec

dịch vụ lớp transport multiplexing

demultiplexing truyền dữ liệu tin cậy điều khiển luồng điều khiển tắc nghẽn

khởi tạo vagrave hiện thực trong Internet UDP TCP

Tiếp theo nghiecircn cứu xong

caacutec vấn đề ldquongoagravei biecircnrdquo (caacutec lớp application transport)

chuẩn bị vagraveo phần ldquolotildeirdquo của mạng

  • Slide 1
  • Chương 3 Lớp Transport
  • Chương 3 Nội dung trigravenh bagravey
  • Caacutec dịch vụ vagrave giao thức Transport
  • Lớp Transport với lớp network
  • Caacutec giao thức lớp transport trecircn Internet
  • Slide 7
  • Multiplexingdemultiplexing
  • Demultiplexing lagravem việc như thế nagraveo
  • Demultiplexing khocircng kết nối
  • Demultiplexing khocircng kết nối (tiếp)
  • Demultiplexing hướng kết nối
  • Demultiplexing hướng kết nối (tiếp)
  • Demultiplexing hướng kết nối Threaded Web Server
  • Slide 15
  • UDP User Datagram Protocol [RFC 768]
  • UDP (tt)
  • UDP checksum
  • Viacute dụ Checksum
  • Slide 20
  • Caacutec nguyecircn lyacute truyền dữ liệu tin cậy
  • Slide 22
  • Slide 23
  • Truyền dữ liệu tin cậy
  • Slide 25
  • Rdt10 truyền dữ liệu tin cậy trecircn 1 kecircnh truyền tin cậy
  • Rdt20 kecircnh với caacutec lỗi
  • rdt20 đặc tả FSM
  • rdt20 hoạt động khi khocircng lỗi
  • rdt20 hoạt động khi coacute lỗi
  • rdt20 coacute lỗ hổng nghiecircm trọng
  • rdt21 người gửi quản lyacute caacutec ACKNAK bị hỏng
  • Slide 33
  • rdt21 thảo luận
  • rdt22 một giao thức khocircng cần NAK
  • rdt22 gửi nhận caacutec mảnh
  • rdt30 caacutec kecircnh với lỗi vagrave mất maacutet
  • rdt30 gửi
  • hagravenh động của rdt30
  • Slide 40
  • Hiệu suất của rdt30
  • rdt30 hoạt động dừng-vagrave-chờ
  • Caacutec giao thức Pipelined
  • Pipelining độ khả dụng tăng
  • Go-Back-N
  • GBN becircn gửi mở rộng FSM
  • GBN becircn nhận mở rộng FSM
  • GBN hoạt động
  • Lặp coacute lựa chọn
  • Lặp coacute lựa chọn caacutec cửa sổ gửi nhận
  • Slide 51
  • Hoạt động của lặp coacute lựa chọn
  • Lặp coacute lựa chọn tigravenh trạng khoacute giải quyết
  • Slide 54
  • TCP Tổng quan RFCs 793 1122 1323 2018 2581
  • TCP cấu truacutec đoạn
  • Caacutec số thứ tự TCP vagrave ACK
  • TCP Round Trip Time vagraveTimeout
  • TCP Round Trip Time vagrave Timeout
  • Viacute dụ đaacutenh giaacute RTT
  • Slide 61
  • TCP truyền dữ liệu tin cậy
  • TCP caacutec sự kiện
  • TCP becircn gửi (đơn giản)
  • TCP caacutec tigravenh huống truyền lại
  • TCP caacutec tigravenh huống truyền lại (tt)
  • TCP sinh ra ACK [RFC 1122 RFC 2581]
  • Truyền lại nhanh
  • Giải thuật truyền lại nhanh
  • Slide 70
  • TCP điều khiển luồng
  • TCP điều khiển luồng caacutech lagravem
  • Slide 73
  • TCP quản lyacute kết nối
  • TCP quản lyacute kết nối (tt)
  • Slide 76
  • Slide 77
  • Slide 78
  • Caacutec nguyecircn lyacute điều khiển tắc nghẽn
  • Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 1
  • Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 2
  • Slide 82
  • Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 3
  • Slide 84
  • Caacutec caacutech tiếp cận đối với điều khiển tắc nghẽn
  • Viacute dụ điều khiển tắc nghẽn ATM ABR
  • Slide 87
  • Slide 88
  • TCP điều khiển tắc nghẽn additive tăng lecircn multiplicative giảm xuống
  • TCP điều khiển tắc nghẽn chi tiết
  • TCP khởi động chậm
  • TCP khởi động chậm (tt)
  • Tinh chế
  • Tinh chế nhận biết mất maacutet
  • Tổng kết TCP điều khiển tắc nghẽn
  • TCP điều khiển tắc nghẽn becircn gửi
  • TCP throughput
  • TCP tương lai
  • TCP tiacutenh cocircng bằng
  • Tại sao phải TCP cocircng bằng
  • TCP tiacutenh cocircng bằng (tt)
  • Mocirc higravenh trễ
  • Cửa sổ tắc nghẽn cố định (1)
  • Cửa sổ tắc nghẽn cố định (2)
  • TCP Mocirc higravenh trễ Khởi động chậm (1)
  • TCP Mocirc higravenh trễ Khởi động chậm (2)
  • TCP Mocirc higravenh trễ(3)
  • TCP Mocirc higravenh trễ (4)
  • HTTP Mocirc higravenh
  • Slide 110
  • Slide 111
  • Chương 3 Tổng kết

Transport Layer 3-22

Caacutec nguyecircn lyacute truyền dữ liệu tin cậy quan trọng trong caacutec lớp application transport link lagrave danh saacutech 10 vấn đề quan trọng nhất của mạng

caacutec đặc thugrave của kecircnh truyền khocircng tin cậy sẽ xaacutec định sự phức tạp của giao thức truyền dữ liệu data transfer protocol (rdt)

Transport Layer 3-23

Caacutec nguyecircn lyacute truyền dữ liệu tin cậy quan trọng trong caacutec lớp application transport link lagrave danh saacutech 10 vấn đề quan trọng nhất của mạng

caacutec đặc thugrave của kecircnh truyền khocircng tin cậy sẽ xaacutec định sự phức tạp của giao thức truyền dữ liệu data transfer protocol (rdt)

Transport Layer 3-24

Truyền dữ liệu tin cậy

sendside

receiveside

rdt_send() được gọi bởi lớp app Chuyển dữ liệu cần truyền

đến lớp cao hơn becircn nhận

udt_send() được gọi bởi rdt để truyền caacutec goacutei trecircn kecircnh khocircng tin cậy đến nơi

nhận

rdt_rcv() được gọi khi goacutei đến kecircnh becircn nhận

deliver_data() được gọi bởi rdt để truyền dữ liệu

đến lớp cao hơn

Transport Layer 3-25

Truyền dữ liệu tin cậy

Sẽ chỉ xem xeacutet truyền dữ liệu theo 1 hướng duy

nhất nhưng điều khiển luồng thocircng tin sẽ theo cả 2

chiều

dugraveng maacutey trạng thaacutei hữu hạn (finite state machines-FSM) để xaacutec định người gửi người nhận

trthaacutei1

trthaacutei2

sự kiện gacircy ra trạng thaacutei truyềncaacutec hagravenh động xảy ra khi truyền

trạng thaacutei khi ở ldquotrạng thaacuteirdquo nagravey thigrave

trạng thaacutei kế tiếp duy nhất được xaacutec định bởi sự kiện kế

tiếp

sự kiệncaacutec hagravenh động

Transport Layer 3-26

Rdt10 truyền dữ liệu tin cậy trecircn 1 kecircnh truyền tin cậy

kecircnh ưu tiecircn tin cậy hoagraven toagraven khocircng coacute caacutec lỗi khocircng mất maacutet caacutec goacutei

caacutec FSM phacircn biệt cho người gửi người nhận người gửi gửi dữ liệu vagraveo kecircnh ưu tiecircn người nhận nhận dữ liệu từ kecircnh ưu tiecircn

chờ gọi từ lớp trecircn packet = make_pkt(data)

udt_send(packet)

rdt_send(data)

extract (packetdata)deliver_data(data)

chờ gọi từ lớp dưới

rdt_rcv(packet)

người gửi người nhận

Transport Layer 3-27

Rdt20 kecircnh với caacutec lỗi

kecircnh ưu tiecircn coacute thể bật lecircn một số bit trong goacutei checksum để kiểm tra caacutec lỗi

Hỏi lagravem sao khocirci phục caacutec lỗi acknowledgements (ACKs) becircn nhận rotilde ragraveng thocircng

baacuteo cho becircn gửi rằng quaacute trigravenh nhận goacutei tốt negative acknowledgements (NAKs) becircn nhận rotilde ragraveng

thocircng baacuteo cho becircn gửi rằng quaacute trigravenh nhận goacutei coacute lỗi người gửi gửi lại goacutei nagraveo được xaacutec nhận lagrave NAK

caacutec cơ chế mới trong rdt20 (sau rdt10) kiểm tra lỗi nhận phản hồi caacutec thocircng điệp điều khiển (ACKNAK)

becircn nhận becircn gửi

Transport Layer 3-28

rdt20 đặc tả FSM

chờ gọi từ lớp trecircn

snkpkt = make_pkt(data checksum)udt_send(sndpkt)

extract(rcvpktdata)deliver_data(data)udt_send(ACK)

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)

rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp isNAK(rcvpkt)

udt_send(NAK)

rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)

chờ ACK hoặc NAK

chờ gọi từ lớp dưới

người gửi

người nhậnrdt_send(data)

Transport Layer 3-29

rdt20 hoạt động khi khocircng lỗi

chờ gọi từ lớp dưới

snkpkt = make_pkt(data checksum)udt_send(sndpkt)

extract(rcvpktdata)deliver_data(data)udt_send(ACK)

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)

rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp isNAK(rcvpkt)

udt_send(NAK)

rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)

chờ ACK hoặc NAK

chờ gọi từ lớp dưới

rdt_send(data)

Transport Layer 3-30

rdt20 hoạt động khi coacute lỗi

chờ gọi từ lớp dưới

snkpkt = make_pkt(data checksum)udt_send(sndpkt)

extract(rcvpktdata)deliver_data(data)udt_send(ACK)

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)

rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp isNAK(rcvpkt)

udt_send(NAK)

rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)

chờ ACK hoặc NAK

chờ gọi từ lớp dưới

rdt_send(data)

Transport Layer 3-31

rdt20 coacute lỗ hổng nghiecircm trọngĐiều gigrave xảy ra nếu

ACKNAK bị hỏng người gửi khocircng biết điều

gigrave đatilde xảy ra tại becircn nhận

khocircng thể đơn phương truyền lại khả năng trugraveng lặp

Quản lyacute trugraveng lặp người gửi truyền lại goacutei

hiện tại nếu ACKNAK bị hỏng

người gửi thecircm số thứ tự vagraveo mỗi goacutei

người nhận hủy (khocircng nhận) goacutei trugraveng lặp

Người gửi gửi 1 goacutei sau đoacute dừng lại chờ phản hồitừ người nhận

dừng vagrave chờ

Transport Layer 3-32

rdt21 người gửi quản lyacute caacutec ACKNAK bị hỏng

chờ gọi 0 từ lớp trecircn

sndpkt = make_pkt(0 data checksum)udt_send(sndpkt)

rdt_send(data)

chờ ACK hoặc NAK

0 udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) ||isNAK(rcvpkt) )

sndpkt = make_pkt(1 data checksum)udt_send(sndpkt)

rdt_send(data)

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) ||isNAK(rcvpkt) )

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt)

chờ gọi 1 từ lớp trecircn

chờ ACK hoặc NAK

1

Transport Layer 3-33

rdt21 người gửi quản lyacute caacutec ACKNAK bị hỏng

chờ 0 từ dưới

sndpkt = make_pkt(NAK chksum)udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp not corrupt(rcvpkt) ampamp has_seq0(rcvpkt)

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp has_seq1(rcvpkt)

extract(rcvpktdata)deliver_data(data)sndpkt = make_pkt(ACK chksum)udt_send(sndpkt)

chờ 1 từ dưới

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp has_seq0(rcvpkt)

extract(rcvpktdata)deliver_data(data)sndpkt = make_pkt(ACK chksum)udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp (corrupt(rcvpkt)

sndpkt = make_pkt(ACK chksum)udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp not corrupt(rcvpkt) ampamp has_seq1(rcvpkt)

rdt_rcv(rcvpkt) ampamp (corrupt(rcvpkt)

sndpkt = make_pkt(ACK chksum)udt_send(sndpkt)

sndpkt = make_pkt(NAK chksum)udt_send(sndpkt)

Transport Layer 3-34

rdt21 thảo luận

người gửi số thứ tự thecircm vagraveo

goacutei chỉ cần hai số thứ tự

(01) lagrave đủ Tại sao phải kiểm tra nếu việc

nhận ACKNAK bị hỏng

số trạng thaacutei tăng lecircn 2 lần trạng thaacutei phải ldquonhớrdquo

goacutei ldquohiện tạirdquo coacute số thứ tự lagrave 0 hay 1

người nhận phải kiểm tra coacute

nhận trugraveng goacutei khocircng trạng thaacutei chỉ rotilde coacute

hay khocircng mong chờ số thứ tự 0 hoặc 1

chuacute yacute người nhận khocircng biết ACKNAK vừa rồi của noacute coacute được người gửi nhận tốt hay khocircng

Transport Layer 3-35

rdt22 một giao thức khocircng cần NAK

chức năng giống như rdt21 chỉ dugraveng caacutec ACK thay cho NAK người nhận gửi ACK cho goacutei vừa

rồi đatilde nhận tốt người nhận phải rotilde ragraveng chegraven số thứ tự của goacutei vừa ACK

trugraveng ACK tại người gửi hậu quả giống như hagravenh động của NAK truyền lại goacutei vừa rồi

Transport Layer 3-36

rdt22 gửi nhận caacutec mảnh

Chờ cho gọi 0 từ

trecircn

sndpkt = make_pkt(0 data checksum)udt_send(sndpkt)

rdt_send(data)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) || isACK(rcvpkt1) )

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt0)

Chờ cho ACK

0

gửi phacircn mảnhFSM

Chờ cho gọi

0 từ dưới

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp has_seq1(rcvpkt)

extract(rcvpktdata)deliver_data(data)sndpkt = make_pkt(ACK1 chksum)udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp (corrupt(rcvpkt) || has_seq1(rcvpkt))

udt_send(sndpkt)

nhận phacircn mảnhFSM

Transport Layer 3-37

rdt30 caacutec kecircnh với lỗi vagrave mất maacutet

Giả định mới kecircnh ưu tiecircn cũng coacute thể lagravem mất caacutec goacutei (dữ liệu hoặc caacutec ACK) checksum số thứ tự

caacutec ACK caacutec việc truyền lại sẽ hỗ trợ nhưng khocircng đủ

Caacutech tiếp cận người gửi chờ ACK trong khoảng thời gian ldquochấp nhận đượcrdquo

truyền lại nếu khocircng nhận ACK trong khoảng thời gian nagravey

nếu goacutei (hoặc ACK) chỉ trễ (khocircng mất) truyền lại sẽ gacircy trugraveng

nhưng dugraveng số thứ tự sẽ giải quyết được

người nhận phải xaacutec định số thứ tự của goacutei vừa gửi ACK

cần bộ định thigrave đếm lugravei

Transport Layer 3-38

rdt30 gửi

sndpkt = make_pkt(0 data checksum)udt_send(sndpkt)start_timer

rdt_send(data)

Chờ cho

ACK 0

rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) ||isACK(rcvpkt1) )

Chờ cho gọi 1 từ trecircn

sndpkt = make_pkt(1 data checksum)udt_send(sndpkt)start_timer

rdt_send(data)

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt0)

rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) ||isACK(rcvpkt0) )

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt1)

stop_timerstop_timer

udt_send(sndpkt)start_timer

timeout

udt_send(sndpkt)start_timer

timeout

rdt_rcv(rcvpkt)

Chờ cho gọi 0 từ trecircn

Chờ cho

ACK 1

rdt_rcv(rcvpkt)

Transport Layer 3-39

hagravenh động của rdt30

Transport Layer 3-40

hagravenh động của rdt30

Transport Layer 3-41

Hiệu suất của rdt30

rdt30 lagravem việc được nhưng đaacutenh giaacute hiệu suất hơi rắc rối viacute dụ liecircn kết 1 Gbps trễ lan truyền giữa hai đầu cuối lagrave 15

ms goacutei 1KB

T truyền = 8kbpkt109 bsec

= 8 microsec

U sender độ khả dụng ndash

U sender

= 008

30008 = 000027

microseconds

L R

RTT + L R =

L (độ dagravei goacutei tiacutenh bằng bits)R (tốc độ truyền bps)

=

goacutei 1KB mỗi 30 msec -gt 33kBs trecircn đường truyền 1 Gbps giao thức network hạn chế việc dugraveng caacutec tagravei nguyecircn vật

lyacute

Transport Layer 3-42

rdt30 hoạt động dừng-vagrave-chờ

goacutei đầu tiecircn đatilde truyền t = 0

gửi nhận

RTT

goacutei cuối cugraveng đatilde truyền t = L R

goacutei đầu tiecircn đatilde đếngoacutei cuối cugraveng đatilde đến gửi ACK

ACK đến gửi goacutei kế tiếp t = RTT + L R

U sender

= 008

30008 = 000027

microseconds

L R

RTT + L R =

Transport Layer 3-43

Caacutec giao thức Pipelined

Pipelining người gửi cho pheacutep gửi nhiều goacutei đồng thời khocircng cần chờ baacuteo nhận được nhoacutem caacutec số thứ tự phải tăng dần phải coacute bộ nhớ đệm tại nơi gửi vagravehoặc nơi nhận

hai dạng phổ biến của caacutec giao thức pipelined go-Back-N Lặp coacute lựa chọn

Transport Layer 3-44

Pipelining độ khả dụng tăng

goacutei đầu tiecircn đatilde truyền t = 0

sender receiver

RTT

goacutei cuối cugraveng đatilde truyền t = L R

goacutei đầu tiecircn đatilde đếngoacutei cuối cugraveng đatilde đến gửi ACK

ACK đến gửi goacuteikế tiếp t = RTT + L R

bit cuối của goacutei thứ 2 đến gửi ACKbit cuối của goacutei thứ 3 đến gửi ACK

U sender

= 024

30008 = 00008

microseconds

3 L R

RTT + L R =

Độ khả dụng tăng lecircngấp 3 lần

Transport Layer 3-45

Go-Back-NBecircn gửi k-bit số thứ tự trong header của goacutei ldquocửa sổrdquo tăng lecircn đến N cho pheacutep gửi caacutec goacutei liecircn tục khocircng cần ACK

ACK(n) ACKs tất cả caacutec goacutei đến chứa số thứ tự n ndash ldquoACK tiacutech lũyrdquo coacute thể nhận caacutec ACK trugraveng lặp (xem becircn nhận)

định thigrave cho mỗi goacutei trecircn đường truyền timeout(n) gửi lại goacutei n vagrave tất cả caacutec goacutei coacute số thứ tự cao

hơn trong cửa sổ

Transport Layer 3-46

GBN becircn gửi mở rộng FSM

chờ start_timerudt_send(sndpkt[base])udt_send(sndpkt[base+1])hellipudt_send(sndpkt[nextseqnum-1])

timeout

rdt_send(data)

if (nextseqnum lt base+N) sndpkt[nextseqnum] = make_pkt(nextseqnumdatachksum) udt_send(sndpkt[nextseqnum]) if (base == nextseqnum) start_timer nextseqnum++ else refuse_data(data)

base = getacknum(rcvpkt)+1If (base == nextseqnum) stop_timer else start_timer

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)

base=1nextseqnum=1

rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)

Transport Layer 3-47

GBN becircn nhận mở rộng FSM

ACK-duy nhất luocircn luocircn gửi ACK cho goacutei đatilde nhận đuacuteng với số thứ tự xếp hạng cao nhất coacute thể sinh ra caacutec ACK trugraveng nhau chỉ cần nhớ expectedseqnum

goacutei khocircng theo thứ tự hủy -gt khocircng nhận vagraveo bộ đệm gửi lại ACK với số thứ tự xếp hạng cao nhất

chờ

udt_send(sndpkt)

default

rdt_rcv(rcvpkt) ampamp notcurrupt(rcvpkt) ampamp hasseqnum(rcvpktexpectedseqnum)

extract(rcvpktdata)deliver_data(data)sndpkt = make_pkt(expectedseqnumACKchksum)udt_send(sndpkt)expectedseqnum++

expectedseqnum=1sndpkt = make_pkt(expectedseqnumACKchksum)

Transport Layer 3-48

GBN hoạt động

Transport Layer 3-49

Lặp coacute lựa chọn

becircn nhận thocircng baacuteo đatilde nhận đuacuteng tất cả từng goacutei một đệm (buffer) caacutec goacutei nếu cần thiết

becircn gửi chỉ gửi lại caacutec goacutei nagraveo khocircng nhận được ACK becircn gửi định thigrave đối với mỗi goacutei khocircng gửi ACK

cửa sổ becircn gửi N số thứ tự liecircn tục hạn chế số thứ tự caacutec goacutei khocircng gửi ACK

Transport Layer 3-50

Lặp coacute lựa chọn caacutec cửa sổ gửi nhận

Transport Layer 3-51

Lặp coacute lựa chọn

dữ liệu từ lớp trecircn nếu số thứ tự kế tiếp sẵn

sagraveng trong cửa sổ gửi goacutei

timeout(n) gửi lại goacutei n taacutei khởi tạo

bộ định thigrave

ACK(n) trong [sendbasesendbase+N]

đaacutenh dấu goacutei n lagrave đatilde nhận nếu goacutei khocircng ACK coacute n

nhỏ nhất dịch chuyển cửa sổ base đến số thứ tự khocircng ACK kế tiếp

Gửigoacutei n trong [rcvbase

rcvbase+N-1]

gửi ACK(n) khocircng thứ tự đệm

(buffer) coacute thứ tự truyền (cũng

truyền caacutec goacutei đatilde đệm coacute thứ tự) dịch chuyển cửa sổ đến goacutei chưa nhận kế tiếp

goacutei n trong [rcvbase-Nrcvbase-1]

ACK(n)

ngược lại lờ đi

Nhận

Transport Layer 3-52

Hoạt động của lặp coacute lựa chọn

Transport Layer 3-53

Lặp coacute lựa chọntigravenh trạng khoacute giải quyếtViacute dụ Số thứ tự 0 1 2 3 Kiacutech thước cửa sổ = 3

becircn nhận khocircng thấy sự khaacutec nhau trong 2 tigravenh huống

chuyển khocircng chiacutenh xaacutec dữ liệu trugraveng lặp như dữ liệu mới trong (a)

Hỏi quan hệ giữa datildey số thứ tự vagrave kiacutech thước cửa sổ

Transport Layer 3-54

Chương 3 Nội dung trigravenh bagravey

31 Caacutec dịch vụ lớp Transport

32 Multiplexing vagrave demultiplexing

33 Vận chuyển khocircng kết nối UDP

34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy

35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối

36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn

37 Điều khiển tắc nghẽn TCP

Transport Layer 3-55

TCP Tổng quan RFCs 793 1122 1323 2018 2581

dữ liệu full duplex luồng dữ liệu đi 2 chiều

trong cugraveng một kết nối MSS maximum

segment size ndash kiacutech thước đoạn tối đa

hướng kết nối bắt tay (trao đổi caacutec

thocircng điệp điều khiển) trạng thaacutei becircn gửi becircn nhận trước khi trao đổi dữ liệu

điều khiển luồng becircn gửi sẽ khocircng lấn aacutet

becircn nhận

point-to-point một becircn gửi một becircn

nhận tin cậy dograveng byte coacute

thứ tự khocircng ldquoranh giới thocircng

điệprdquo kecircnh liecircn lạc

TCP điều khiển luồng vagrave tắc nghẽn thiết lập kiacutech thước cửa sổ

caacutec bộ đệm gửi amp nhận

socketdoor

T C Psend buffer

T C Preceive buffer

socketdoor

segm ent

applicationwrites data

applicationreads data

Transport Layer 3-56

TCP cấu truacutec đoạn

port nguồn port điacutech

32 bits

dữ liệu ứng dụng(độ dagravei thay đổi)

số thứ tự

số ACKcửa sổ nhận

con trỏ URGchecksum

FSRPAUheadlen

notused

Tugravey chọn (độ dagravei thay đổi)

URG dữ liệu khẩn cấp(thường khocircng dugraveng)

ACK ACK hợp lệ

PSH push data now(thường khocircng dugraveng)

RST SYN FINthiết lập kết nối

(caacutec lệnh thiết lậpchia nhỏ)

số byte becircn nhận sẵn sagraveng chấp nhận

đếm bởi số bytecủa dữ liệu

Internetchecksum

(giống UDP)

Transport Layer 3-57

Caacutec số thứ tự TCP vagrave ACKCaacutec số thứ tự

dograveng byte ldquođaacutenh sốrdquo byte đầu tiecircn trong dữ liệu của đoạn

caacutec ACK số thứ tự của byte

kế tiếp được chờ đợi từ phiacutea becircn kia

ACK tiacutech lũyHỏi lagravem thế nagraveo becircn

nhận quản lyacute caacutec đoạn khocircng thứ tự Trả lời TCP khocircng

đề cập tugravey thuộc người hiện thực

Host A Host B

Seq=42 ACK=79 data = lsquoCrsquo

Seq=79 ACK=43 data = lsquoCrsquo

Seq=43 ACK=80

UsernhậplsquoCrsquo

host ACKsnhận phản hồi

lsquoCrsquo

host ACKsbaacuteo nhận

lsquoCrsquo phản hồingược lại lsquoCrsquo

timetigravenh huống telnet đơn giản

Transport Layer 3-58

TCP Round Trip Time vagraveTimeout

Hỏi Lagravem thế nagraveo để thiết lập giaacute trị TCP timeout

dagravei hơn RTT khaacutec với RTT

quaacute ngắn timeout sớm truyền lại khocircng

cần thiết quaacute dagravei phản ứng

chậm đối với việc mất maacutet goacutei

Hỏi Lagravem thế nagraveo để thiết lập RTT

SampleRTT thời gian được đo từ khi truyền đoạn đến khi baacuteo nhận ACK lờ đi việc truyền lại

SampleRTT sẽ thay đổi muốn ước lượng RTT ldquomượt hơnrdquo tiacutenh trung bigravenh một số giaacute

trị đo được gần đoacute khocircng chỉ SampleRTT hiện tại

Transport Layer 3-59

TCP Round Trip Time vagrave Timeout

EstimatedRTT = (1- )EstimatedRTT + SampleRTT

giaacute trị đặc trưng = 0125

Transport Layer 3-60

Viacute dụ đaacutenh giaacute RTTRTT gaiacsumassedu to fantasiaeurecomfr

100

150

200

250

300

350

1 8 15 22 29 36 43 50 57 64 71 78 85 92 99 106

time (seconnds)

RTT

(mill

isec

onds

)

SampleRTT Estimated RTT

Transport Layer 3-61

TCP Round Trip Time vagrave Timeout

Thiết lập timeout EstimtedRTT cộng ldquohệ số dự trữ an toagravenrdquo

sự biến thiecircn lớn trong EstimatedRTT -gt hệ số dự trữ an toagraven lớn hơn ước lượng đầu tiecircn về sự biến thiecircn của SampleRTT từ EstimatedRTT

TimeoutInterval = EstimatedRTT + 4DevRTT

DevRTT = (1-)DevRTT + |SampleRTT-EstimatedRTT|

(tiecircu biểu = 025)

Sau đoacute thiết lập timeout interval

Transport Layer 3-62

TCP truyền dữ liệu tin cậy

TCP tạo dịch vụ rdt trecircn dịch vụ khocircng tin cậy IP

caacutec đoạn Pipelined caacutec ACK tiacutech lũy TCP dugraveng bộ định thigrave

truyền lại đơn

Truyền lại được kiacutech hoạt bởi caacutec sự kiện timeout caacutec ack trugraveng lặp

luacutec đầu khảo saacutet caacutec becircn gửi TCP đơn giản lờ đi caacutec ack trugraveng lặp lờ đi điều khiển luồng

điều khiển tắc nghẽn

Transport Layer 3-63

TCP caacutec sự kiệndữ liệu đatilde nhận từ ứng

dụng tạo đoạn với số thứ

tự của noacute số thứ tự lagrave số theo

byte dữ liệu đầu tiecircn khởi động bộ định thigrave

nếu chưa chạy khoảng thời gian hết

hạn TimeOutInterval

timeout gửi lại đoạn nagraveo gacircy

ra timeout khởi động lại bộ định

thigrave Ack đatilde nhận

cập nhật caacutei gigrave sẽ được ACK

khởi động bộ định thigrave nếu coacute caacutec đoạn cograven chờ

Transport Layer 3-64

TCP becircn gửi(đơn giản)

NextSeqNum = InitialSeqNum SendBase = InitialSeqNum

loop (forever) switch(event)

event data received from application above create TCP segment with sequence number NextSeqNum if (timer currently not running) start timer pass segment to IP NextSeqNum = NextSeqNum + length(data)

event timer timeout retransmit not-yet-acknowledged segment with smallest sequence number start timer

event ACK received with ACK field value of y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer

end of loop forever

Chuacute thiacutechbull SendBase-1 byte vừa được ACK tiacutech lũy Viacute dụbull SendBase-1 = 71y= 73 vigrave thế becircn nhận muốn 73+ y gt SendBase vigrave thế dữ liệu mới được chấp nhận

Transport Layer 3-65

TCP caacutec tigravenh huống truyền lại

Host A

Seq=100 20 bytes data

ACK=100

timetimeout sớm

Host B

Seq=92 8 bytes data

ACK=120

Seq=92 8 bytes data

Seq=

92

tim

eout

ACK=120

Host A

Seq=92 8 bytes data

ACK=100

loss

tim

eout

tigravenh huống mất ACK

Host B

X

Seq=92 8 bytes data

ACK=100

time

Seq=

92

tim

eout

SendBase= 100

SendBase= 120

SendBase= 120

Sendbase= 100

Transport Layer 3-66

TCP caacutec tigravenh huống truyền lại (tt)Host A

Seq=92 8 bytes data

ACK=100

loss

tim

eout

Cumulative ACK scenario

Host B

X

Seq=100 20 bytes data

ACK=120

time

SendBase= 120

Transport Layer 3-67

TCP sinh ra ACK [RFC 1122 RFC 2581]

Sự kiện tại becircn nhận

Đoạn đến với đuacuteng số thứ tự mong muốn Tất cả dữ liệu đếnđatilde được ACK

Đoạn đến với đuacuteng số thứ tự mong muốn Một đoạn khaacutec đangchờ ACK

Caacutec đoạn đến khocircng thứ tựlớn hơn số thứ tự đoạn mong muốnCoacute khoảng trống

Đoạn đếnlấp đầy từng phần hoặc toagraven bộkhoảng trống

TCP becircn nhận hagravenh động

ACK trễ Chờ đến 500mscho đoạn kế tiếp Nếu khocircng coacute đoạnkế tiếp gửi ACK

Gửi ngay một ACK tiacutech lũy chấp nhậncho cả caacutec đoạn theo thứ tự

Gửi ngay ACK trugraveng lặp chỉ thị số thứ tựđoạn của byte kế tiếp đang mong chờ

Gửi ngay ACK với điều kiện lagrave đoạnbắt đầu ngay điểm coacute khoảng trống

Transport Layer 3-68

Truyền lại nhanh

Chu kỳ Time-out thường tương đối dagravei độ trễ dagravei trước khi gửi

lại goacutei đatilde mất

Xaacutec nhận caacutec đoạn đatilde mất bằng caacutec ACK trugraveng lặp becircn gửi thường gửi

nhiều đoạn song song Nếu đoạn bị mất sẽ

xảy ra tigravenh trạng giống như nhiều ACK trugraveng nhau

Nếu becircn gửi nhận 3 ACK của cugraveng một dữ liệu noacute cho lagrave đoạn sau dữ liệu đatilde ACK bị mất Truyền lại nhanh gửi

lại đoạn trước khi bộ định thigrave hết hạn

Transport Layer 3-69

sự kiện ACK đatilde nhận với trường lagrave y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer else increment count of dup ACKs received for y if (count of dup ACKs received for y = 3) resend segment with sequence number y

Giải thuật truyền lại nhanh

một ACK trugraveng lặp cho đoạn đatilde được ACK

Truyền lại nhanh

Transport Layer 3-70

Chương 3 Nội dung trigravenh bagravey

31 Caacutec dịch vụ lớp Transport

32 Multiplexing vagrave demultiplexing

33 Vận chuyển khocircng kết nối UDP

34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy

35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối

36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn

37 Điều khiển tắc nghẽn TCP

Transport Layer 3-71

TCP điều khiển luồng

becircn nhận của kết nối TCP coacute một bộ đệm nhận

dịch vụ so trugraveng tốc độ so trugraveng tốc độ gửi với tốc độ nhận của ứng dụng

tiến trigravenh ứng dụng coacute thể chậm tại luacutec đọc bộ đệm

becircn gửi sẽ khocircng lagravem tragraven bộ đệm vigrave truyền quaacute nhiều vagrave

quaacute nhanh

điều khiển luồng

Transport Layer 3-72

TCP điều khiển luồng caacutech lagravem

(Giả sử becircn nhận TCP loại bỏ caacutec đoạn khocircng coacute thứ tự)

dự phograveng trong bộ đệm= RcvWindow

= RcvBuffer-[LastByteRcvd - LastByteRead]

Becircn nhận thocircng baacuteo khoảng dự trữ nhờ giaacute trị RcvWindow trong caacutec đoạn

Becircn gửi hạn chế dữ liệu khocircng được ACK vagraveo RcvWindow bảo đảm bộ đệm nhận

khocircng tragraven

Transport Layer 3-73

Chương 3 Nội dung trigravenh bagravey

31 Caacutec dịch vụ lớp Transport

32 Multiplexing vagrave demultiplexing

33 Vận chuyển khocircng kết nối UDP

34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy

35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối

36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn

37 Điều khiển tắc nghẽn TCP

Transport Layer 3-74

TCP quản lyacute kết nối

Chuacute yacute Becircn gửi vagrave becircn nhận TCP thiết lập ldquokết nốirdquo trước khi trao đổi dữ liệu

khởi tạo caacutec biến TCP caacutec số thứ tự đoạn thocircng tin caacutec bộ đệm điều

khiển luồng (như RcvWindow)

client người khởi xướng kết nối

Socket clientSocket = new Socket(hostnameport

number) server được tiếp xuacutec bởi

client Socket connectionSocket =

welcomeSocketaccept()

3 phương phaacutep bắt tay

Bước 1 client host gửi đoạnTCP SYN đến server xaacutec định số thứ tự khởi đầu khocircng phải dữ liệu

Bước 2 server host nhận SYN trả lời với đoạn SYNACK

server cấp phaacutet caacutec bộ đệm

xaacutec định số thứ tự khởi đầuBước 3 client nhận SYNACK trả

lời với đoạn ACK (coacute thể chứa dữ liệu)

Transport Layer 3-75

TCP quản lyacute kết nối (tt)

Đoacuteng một kết nối

client đoacuteng socket clientSocketclose()

Bước 1 client gửi đoạn điều khiển TCP FIN đến server

Bước 2 server nhận FIN trả lời với ACK Đoacuteng kết nối gửi FIN

client

FIN

server

ACK

ACK

FIN

đoacuteng

đoacuteng

đatilde đoacutengthời g

ian c

hờ

Transport Layer 3-76

TCP quản lyacute kết nối (tt)

Bước 3 client nhận FIN trả lời với ACK

Trong khoảng ldquothời gian chờrdquo ndash sẽ phản hồi với ACK để nhận caacutec FIN

Bước 4 server nhận ACK Kết nối đatilde đoacuteng

Chuacute yacute với một sửa đổi nhỏ coacute thể quản lyacute nhiều FIN đồng thời

client

FIN

server

ACK

ACK

FIN

đang đoacuteng

đang đoacuteng

đatilde đoacuteng

thời g

ian c

hờ

đatilde đoacuteng

Transport Layer 3-77

TCP quản lyacute kết nối (tt)

chu kỳ sống củaTCP client

chu kỳ sống củaTCP server

Transport Layer 3-78

Chương 3 Nội dung trigravenh bagravey

31 Caacutec dịch vụ lớp Transport

32 Multiplexing vagrave demultiplexing

33 Vận chuyển khocircng kết nối UDP

34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy

35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối

36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn

37 Điều khiển tắc nghẽn TCP

Transport Layer 3-79

Caacutec nguyecircn lyacute điều khiển tắc nghẽn

Tắc nghẽn ldquoquaacute nhiều nguồn gửi quaacute nhanh vagrave quaacute nhiều

dữ liệu đến mạngrdquo khaacutec với điều khiển luồng caacutec biểu hiện

caacutec goacutei bị mất (tragraven bộ đệm tại caacutec router) caacutec độ trễ quaacute dagravei (xếp hagraveng trong bộ đệm

của router) lagrave 1 trong 10 vấn đề nan giải nhất

Transport Layer 3-80

Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 1

2 gửi 2 nhận 1 router caacutec bộ

đệm khocircng giới hạn

khocircng coacute truyền lại

caacutec độ trễ lớn hơn khi tắc nghẽn

năng suất coacute thể đạt tối đa

unlimited shared output link buffers

Host Ain original data

Host B

out

Transport Layer 3-81

Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 2

1 router caacutec bộ đệm coacute giới hạn becircn gửi truyền lại caacutec goacutei đatilde mất

chia sẻ vocirc hạncaacutec bộ đệm ouput

Host A in dữ liệu gốc

Host B

out

in dữ liệu gốc cugraveng với dữ liệu truyền lại

Transport Layer 3-82

Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 2 luocircn luocircn

truyền lại ldquohoagraven toagravenrdquo chỉ khi mất maacutet

truyền lại vigrave trễ (khocircng mất) lagravem cho lớn hơn với cugraveng

in

out

=

in

out

gt

in

out

ldquocaacutec chi phiacuterdquo của tắc nghẽn nhiều việc (truyền lại) caacutec truyền lại khocircng cần thiết liecircn kết nhiều bản sao của

goacutei

R2

R2in

ou

t

b

R2

R2in

ou

t

a

R2

R2in

ou

t

c

R4

R3

Transport Layer 3-83

Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 3 4 người gửi caacutec đường qua nhiều hop timeouttruyền lại

in

Hỏi điều gigrave xảy ra nếu vagrave tăng lecircn

in

chia sẻ vocirc hạncaacutec bộ đệm ouput

Host Ain dữ liệu gốc

Host B

out

in dữ liệu gốc cugraveng với dữ liệu truyền lại

Transport Layer 3-84

Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 3

ldquochi phiacuterdquo khaacutec của tắc nghẽn khi caacutec goacutei bị bỏ bất kỳ ldquokhả năng truyền

upstream dugraveng cho goacutei đoacute sẽ bị latildeng phiacuterdquo

Host A

Host B

o

u

t

Transport Layer 3-85

Caacutec caacutech tiếp cận đối với điều khiển tắc nghẽn

điều khiển tắc nghẽn end-end

khocircng coacute phản hồi rotilde ragraveng từ mạng

tắc nghẽn được suy ra từ việc quan saacutet caacutec hệ thống đầu cuối coacute mất maacutet trễ

tiếp cận được quản lyacute bởi TCP

điều khiển tắc nghẽn coacute sự hỗ trợ của mạng

caacutec router cung cấp phản hồi về caacutec hệ thống đầu cuối 1 bit duy nhất chỉ thị

tắc nghẽn (SNA DECbit TCPIP ECN ATM)

tốc độ sẽ gửi được xaacutec định rotilde ragraveng

2 caacutech

Transport Layer 3-86

Viacute dụ điều khiển tắc nghẽn ATM ABR

ABR tốc độ bit sẵn sagraveng

ldquodịch vụ mềm dẻordquo nếu đường gửi ldquochưa

hếtrdquo becircn gửi sẽ dugraveng

băng thocircng sẵn sagraveng nếu đường gửi tắc

nghẽn becircn gửi điều tiết với

tốc độ tối thiểu

RM (resource management)

gửi bởi becircn gửi rải raacutec với caacutec ocirc dữ liệu

caacutec bit trong ocirc thiết lập bởi caacutec switch bit NI khocircng tăng tốc độ

(tắc nghẽn nhẹ) bit CI tắc nghẽn rotilde rệt

Caacutec ocirc RM được trả về becircn gửi từ becircn nhận với nguyecircn vẹn caacutec bit

Transport Layer 3-87

Viacute dụ điều khiển tắc nghẽn ATM ABR

trường 2-byte ER trong ocirc RM switch đatilde tắc nghẽn coacute thể coacute giaacute trị ER thấp hơn trong ocirc tốc độ gửi do đoacute coacute thể được hỗ trợ tối đa trecircn đường

EFCI bit trong caacutec ocirc dữ liệu được cagravei giaacute trị 1 trong switch đatilde tắc nghẽn nếu ocirc dữ liệu đứng trước ocirc RM coacute cagravei EFCI becircn gửi sẽ cagravei

bit CI trong ocirc RM trả về

Transport Layer 3-88

Chương 3 Nội dung trigravenh bagravey

31 Caacutec dịch vụ lớp Transport

32 Multiplexing vagrave demultiplexing

33 Vận chuyển khocircng kết nối UDP

34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy

35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối

36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn

37 Điều khiển tắc nghẽn TCP

Transport Layer 3-89

TCP điều khiển tắc nghẽn additive tăng lecircn multiplicative giảm xuống

8 Kbytes

16 Kbytes

24 Kbytes

time

congestionwindow

Caacutech tiếp cận tăng tốc độ truyền (kiacutech thước cửa sổ) tigravem khả năng băng thocircng coacute thể cho đến khi coacute mất maacutet xảy ra additive tăng lecircn tăng CongWin bởi 1 MSS

mỗi RTT cho đến khi coacute mất maacutet xảy ra multiplicative giảm xuống bỏ CongWin trong

nửa giai đoạn sau khi mất maacutet

timekiacutech

thư

ớc

cửa

sổ

tắc

nghẽ

n

Tigravem kiếm băng thocircng

Transport Layer 3-90

TCP điều khiển tắc nghẽn chi tiết

becircn gửi hạn chế việc truyền LastByteSent-LastByteAcked

CongWin Cocircng thức

CongWin thay đổi chức năng lagrave nhận biết tắc nghẽn trecircn mạng

Lagravem thế nagraveo becircn gửi nhận biết tắc nghẽn

mất maacutet xảy ra = timeout hoặc 3 ack trugraveng lặp

becircn gửi giảm tốc độ (CongWin) sau khi mất maacutet xảy ra

3 cơ chế AIMD khởi động chậm thận trọng sau khi coacute

caacutec sự kiện timeout

tốc độ = CongWin

RTT Bytess

Transport Layer 3-91

TCP khởi động chậm

Khi kết nối bắt đầu CongWin = 1 MSS Viacute dụ MSS = 500 bytes

amp RTT = 200 ms tốc độ khởi tạo = 20

kbps

băng thocircng sẵn sagraveng coacute thể gtgt MSSRTT mong muốn nhanh

choacuteng tăng tốc lecircn tốc độ coacute thể đaacutep ứng

Khi kết nối bắt đầu tăng tốc lecircn rất nhanh cho đến khi sự cố mất maacutet xảy ra đầu tiecircn

Transport Layer 3-92

TCP khởi động chậm (tt)

Khi kết nối bắt đầu tăng tốc lecircn rất nhanh cho đến khi sự cố mất maacutet xảy ra đầu tiecircn nhacircn đocirci CongWin mỗi

RTT hoagraven thagravenh nhờ tăng CongWin ứng với mỗi ACK đatilde nhận

Tổng kết tốc độ khởi đầu lagrave chậm nhưng sau đoacute tăng tốc rất nhanh

Host A

1 đoạn

RTT

Host B

thời gian

2 đoạn

4 đoạn

Transport Layer 3-93

Tinh chếHỏi Khi nagraveo việc tăng

tốc trở thagravenh tuyến tiacutenh

Trả lời Khi CongWin đạt đến 12 giaacute trị của noacute trước khi timeout

Hiện thực Ngưỡng thay đổi Tại thời điểm coacute sự cố

mất maacutet ngưỡng được cagravei giaacute trị bằng frac12 của CongWin ngay trước đoacute

Transport Layer 3-94

Tinh chế nhận biết mất maacutet

Sau 3 ACK trugraveng lặp CongWin sẽ giảm 12 kiacutech thước cửa sổ

tăng tuyến tiacutenh nhưng sau sự cố

timeout CongWin thay giaacute trị

bằng 1 MSS kiacutech thước cửa sổ

tăng cấp lũy thừa khi đến một ngưỡng

thigrave tăng tuyến tiacutenh

3 ACK trugraveng nhau chỉ ra khả năng truyền của mạng timeout chỉ thị ldquonhiều cảnh baacuteordquo về tigravenh huống tắc nghẽn

Nguyecircn lyacute

Transport Layer 3-95

Tổng kết TCP điều khiển tắc nghẽn

Khi CongWin dưới Threshold becircn gửi đang trong giai đoạn khởi động chậm kiacutech thước cửa sổ tăng nhanh theo cấp lũy thừa

Khi CongWin trecircn Threshold becircn gửi đang trong giai đoạn traacutenh tắc nghẽn kiacutech thước cửa sổ tăng nhanh theo cấp tuyến tiacutenh

Khi coacute 3 ACK trugraveng lặp xảy ra Threshold = CongWin2 vagrave CongWin = Threshold

Khi timeout xảy ra Threshold = CongWin2 vagrave CongWin = 1 MSS

Transport Layer 3-96

TCP điều khiển tắc nghẽn becircn gửi

Trạng thaacutei Sự kiện TCP becircn gửi hagravenh động Diễn giải

Slow Start (SS)-Khởi động chậm

ACK baacuteo nhận cho dữ liệu chưa ACK trước đoacute

CongWin = CongWin + MSS If (CongWin gt Threshold) cagravei đặt trạng thaacutei ldquoTraacutenh tắc nghẽnrdquo

Hậu quả lagravem tăng gấp đocirci CongWin mỗi RTT

CongestionAvoidance (CA) ndashTraacutenh tắc nghẽn

ACK baacuteo nhận cho dữ liệu chưa ACK trước đoacute

CongWin = CongWin+MSS (MSSCongWin)

Additive tăng lecircn lagravem tăng CongWin lecircn 1 MSS mỗi RTT

SS hoặc CA Sự cố mất maacutet xảy ra khi thấy coacute 3 ACK trugraveng lặp

Threshold = CongWin2 CongWin = Thresholdcagravei đặt trạng thaacutei ldquoTraacutenh tắc nghẽnrdquo

Khocirci phục nhanh hiện thực giảm xuống multiplicative CongWin sẽ khocircng giảm xuống dưới 1 MSS

SS hoặc CA Timeout Threshold = CongWin2 CongWin = 1 MSScagravei đặt trạng thaacutei ldquoKhởi động chậmrdquo

Vagraveo chế độ ldquoKhởi động chậmrdquo

SS hoặc CA ACK trugraveng lặp

Đếm ACK tăng lecircn cho đoạn vừa được ACK

CongWin vagrave Threshold khocircng thay đổi

Transport Layer 3-97

TCP throughput

Throughout trung bigravenh của TCP biểu diễn qua kiacutech thước của sổ vagrave RTT Bỏ qua trạng thaacutei ldquoKhởi động chậmrdquo

Cho W lagrave kiacutech thước cửa sổ khi coacute mất maacutet xảy ra

Khi kiacutech thước cửa sổ = W lưu lượng = WRTT

Chỉ ngay sau khi mất maacutet cửa sổ giảm xuống = W2 lưu lượng = W2RTT

throughout trung bigravenh 075 WRTT

Transport Layer 3-98

TCP tương lai

Viacute dụ caacutec đoạn dagravei 1500 byte RTT 100ms lưu lượng 10 Gbps

Kiacutech thước cửa sổ yecircu cầu W = 83333 đoạn trecircn đường truyền

Lưu lượng trong caacutec trường hợp mất maacutet

L = 210-10

Phiecircn bản mới của TCP dagravenh cho nhu cầu tốc độ cao

LRTT

MSS221

Transport Layer 3-99

Mục tiecircu nếu K phiecircn lagravem việc TCP chia sẻ kết nối cổ chai của băng thocircng lagrave R mỗi phiecircn coacute tốc độ trung bigravenh lagrave RK

TCP kết nối 1

router cổ chaikhả năng R

TCP kết nối 2

TCP tiacutenh cocircng bằng

Transport Layer 3-100

Tại sao phải TCP cocircng bằng

2 phiecircn lagravem việc cạnh tranh nhau Additive tăng lưu lượng tăng multiplicative giảm lưu lượng tương xứng

R

R

chia sẻ băng thocircng bằng nhau

Connection 1 throughputConnect

ion 2

th

roughput

traacutenh tắc nghẽn additive tăng lecircnmất maacutet giảm cửa sổ bằng 12

traacutenh tắc nghẽn additive tăng lecircnmất maacutet giảm cửa sổ bằng 12

Transport Layer 3-101

TCP tiacutenh cocircng bằng (tt)

Tiacutenh cocircng bằng amp UDP nhiều ứng dụng

thường khocircng dugraveng TCP khocircng muốn tốc độ bị

điều tiết do điều khiển tắc nghẽn

Thay bằng dugraveng UDP truyền audiovideo với

tốc độ ổn định chịu được mất maacutet

Nghiecircn cứu giao thức thacircn thiện với TCP

Tiacutenh cocircng bằng amp caacutec kết nối TCP song song

khocircng coacute gigrave ngăn cản việc ứng dụng mở caacutec kết nối song song giữa 2 host

Trigravenh duyệt Web lagravem giống như thế

Viacute dụ tốc độ R hỗ trợ 9 kết nối ứng dụng mới yecircu cầu 1

TCP coacute tốc độ R10 ứng dụng mới yecircu cầu 11

TCP coacute tốc độ R2

Transport Layer 3-102

Mocirc higravenh trễ

Hỏi Mất bao lacircu để nhận 1 đối tượng từ Web server sau khi gửi yecircu cầu

Bỏ qua tắc nghẽn trễ bị ảnh hưởng bởi

thiết lập kết nối TCP trễ truyền dữ liệu khởi động chậm

Notation caacutec giả định Giả sử một kết nối giữa

client vagrave server coacute tốc độ R

S MSS (bits) O kiacutech thước đối tượng

(bits) khocircng truyền lại (khocircng

mất maacutet khocircng hỏng)

Kiacutech thước cửa sổ Giả định 1 cửa sổ tắc

nghẽn cố định coacute W đoạn Sau đoacute cửa sổ thay đổi

mocirc higravenh khởi động chậm

Transport Layer 3-103

Cửa sổ tắc nghẽn cố định (1)

Trường hợp đầu tiecircnWSR gt RTT + SR cho

đoạn đầu tiecircn trong cửa sổ trả về trước khi cửa sổ dữ liệu gửi ACK

trễ = 2RTT + OR

Transport Layer 3-104

Cửa sổ tắc nghẽn cố định (2)

Trường hợp thứ hai WSR lt RTT + SR sent

chờ cho ACK sau khi gửi dữ liệu

trễ = 2RTT + OR+ (K-1)[SR + RTT - WSR]

Transport Layer 3-105

TCP Mocirc higravenh trễ Khởi động chậm (1)

Bacircy giờ giả sử kiacutech thước cửa sổ tăng lecircn tugravey theo quaacute trigravenh khởi động chậm

Độ trễ của một đối tượng sẽ lagrave

R

S

R

SRTTP

R

ORTTLatency P )12(2

trong đoacute P lagrave số lần TCP rảnh ở tại server

1min KQP

- trong đoacute Q lagrave số lần server rảnh nếu đối tượng đatilde khởi tạo kiacutech thước

- vagrave K lagrave số lượng cửa sổ bao trugravem đối tượng

Transport Layer 3-106

TCP Mocirc higravenh trễ Khởi động chậm (2)

RTT

initia te TCPconnection

requestobject

first w indow= S R

second w indow= 2S R

third w indow= 4S R

fourth w indow= 8S R

com pletetransm issionobject

delivered

tim e atc lient

tim e atserver

Viacute dụbull OS = 15 đoạnbull K = 4 cửa sổbull Q = 2bull P = minK-1Q = 2

Server rảnh P=2 lần

Caacutec thagravenh phần trễbull 2 RTT dagravenh cho thiết lập kết nối vagrave yecircu cầubull OR để truyền đối tượngbullthời gian server rảnh bởi vigrave khởi động chậm

Server rảnh P = minK-1Q lần

Transport Layer 3-107

TCP Mocirc higravenh trễ(3)

R

S

R

SRTTPRTT

R

O

R

SRTT

R

SRTT

R

O

idleTimeRTTR

O

P

kP

k

P

pp

)12(][2

]2[2

2delay

1

1

1

th window after the timeidle 2 1 kR

SRTT

R

S k

ementacknowledg receivesserver until

segment send tostartsserver when from time RTTR

S

window kth the transmit totime2 1

R

Sk

RTT

initia te TCPconnection

requestobject

first w indow= S R

second w indow= 2S R

third w indow= 4S R

fourth w indow= 8S R

com pletetransm issionobject

delivered

tim e atc lient

tim e atserver

Transport Layer 3-108

TCP Mocirc higravenh trễ (4)

)1(log

)1(logmin

12min

222min

222min

2

2

110

110

S

OS

Okk

S

Ok

SOk

OSSSkK

k

k

k

caacutech tiacutenh toaacuten Q tương tự (xem HW)

K = số lượng cửa sổ bao trugravem đối tượngLagravem thế nagraveo tiacutenh được K

Transport Layer 3-109

HTTP Mocirc higravenh Giả sử trang Web chứa

1 trang HTML (kiacutech thước O bits) M higravenh ảnh (mỗi caacutei kiacutech thướcO bits)

HTTP khocircng bền vững M+1 TCP kết nối Thời gian đaacutep ứng = (M+1)OR + (M+1)2RTT + tổng số thời

gian rảnh HTTP bền vững

2 RTT để yecircu cầu vagrave nhận file HTML 1 RTT để yecircu cầu vagrave nhận M higravenh ảnh Thời gian đaacutep ứng = (M+1)OR + 3RTT + tổng số thời gian

rảnh HTTP khocircng bền vững với X kết nối song song

Giả sử MX lagrave số nguyecircn 1 TCP kết nối cho file MX thiết lập caacutec kết nối song song cho caacutec higravenh ảnh Thời gian đaacutep ứng = (M+1)OR + (MX + 1)2RTT + tổng số

thời gian rảnh

Transport Layer 3-110

02468

101214161820

28Kbps

100Kbps

1Mbps

10Mbps

non-persistent

persistent

parallel non-persistent

HTTP thời gian đaacutep ứng (giacircy)RTT = 100 msec O = 5 Kbytes M=10 vagrave X=5

Với băng thocircng thấp thời gian kết nối amp đaacutep ứng trội hơn thời gian truyền

Caacutec kết nối bền vững chỉ cho sự cải thiện khocircng đaacuteng kể trecircn caacutec kết nối song song

Transport Layer 3-111

0

10

20

30

40

50

60

70

28Kbps

100Kbps

1Mbps

10Mbps

non-persistent

persistent

parallel non-persistent

HTTP thời gian đaacutep ứng (giacircy)

RTT =1 sec O = 5 Kbytes M=10 and X=5

Với RTT lớn hơn thời gian đaacutep ứng trội hơn thời gian trễ chờ thiết lập kết nốiTCP amp khởi động chậm Caacutec kết nối bền vững bacircy giờ cho thấy cải thiện rotilde rệt đặc biệtvới caacutec mạng băng thocircng cao

Transport Layer 3-112

Chương 3 Tổng kết caacutec nguyecircn lyacute của caacutec

dịch vụ lớp transport multiplexing

demultiplexing truyền dữ liệu tin cậy điều khiển luồng điều khiển tắc nghẽn

khởi tạo vagrave hiện thực trong Internet UDP TCP

Tiếp theo nghiecircn cứu xong

caacutec vấn đề ldquongoagravei biecircnrdquo (caacutec lớp application transport)

chuẩn bị vagraveo phần ldquolotildeirdquo của mạng

  • Slide 1
  • Chương 3 Lớp Transport
  • Chương 3 Nội dung trigravenh bagravey
  • Caacutec dịch vụ vagrave giao thức Transport
  • Lớp Transport với lớp network
  • Caacutec giao thức lớp transport trecircn Internet
  • Slide 7
  • Multiplexingdemultiplexing
  • Demultiplexing lagravem việc như thế nagraveo
  • Demultiplexing khocircng kết nối
  • Demultiplexing khocircng kết nối (tiếp)
  • Demultiplexing hướng kết nối
  • Demultiplexing hướng kết nối (tiếp)
  • Demultiplexing hướng kết nối Threaded Web Server
  • Slide 15
  • UDP User Datagram Protocol [RFC 768]
  • UDP (tt)
  • UDP checksum
  • Viacute dụ Checksum
  • Slide 20
  • Caacutec nguyecircn lyacute truyền dữ liệu tin cậy
  • Slide 22
  • Slide 23
  • Truyền dữ liệu tin cậy
  • Slide 25
  • Rdt10 truyền dữ liệu tin cậy trecircn 1 kecircnh truyền tin cậy
  • Rdt20 kecircnh với caacutec lỗi
  • rdt20 đặc tả FSM
  • rdt20 hoạt động khi khocircng lỗi
  • rdt20 hoạt động khi coacute lỗi
  • rdt20 coacute lỗ hổng nghiecircm trọng
  • rdt21 người gửi quản lyacute caacutec ACKNAK bị hỏng
  • Slide 33
  • rdt21 thảo luận
  • rdt22 một giao thức khocircng cần NAK
  • rdt22 gửi nhận caacutec mảnh
  • rdt30 caacutec kecircnh với lỗi vagrave mất maacutet
  • rdt30 gửi
  • hagravenh động của rdt30
  • Slide 40
  • Hiệu suất của rdt30
  • rdt30 hoạt động dừng-vagrave-chờ
  • Caacutec giao thức Pipelined
  • Pipelining độ khả dụng tăng
  • Go-Back-N
  • GBN becircn gửi mở rộng FSM
  • GBN becircn nhận mở rộng FSM
  • GBN hoạt động
  • Lặp coacute lựa chọn
  • Lặp coacute lựa chọn caacutec cửa sổ gửi nhận
  • Slide 51
  • Hoạt động của lặp coacute lựa chọn
  • Lặp coacute lựa chọn tigravenh trạng khoacute giải quyết
  • Slide 54
  • TCP Tổng quan RFCs 793 1122 1323 2018 2581
  • TCP cấu truacutec đoạn
  • Caacutec số thứ tự TCP vagrave ACK
  • TCP Round Trip Time vagraveTimeout
  • TCP Round Trip Time vagrave Timeout
  • Viacute dụ đaacutenh giaacute RTT
  • Slide 61
  • TCP truyền dữ liệu tin cậy
  • TCP caacutec sự kiện
  • TCP becircn gửi (đơn giản)
  • TCP caacutec tigravenh huống truyền lại
  • TCP caacutec tigravenh huống truyền lại (tt)
  • TCP sinh ra ACK [RFC 1122 RFC 2581]
  • Truyền lại nhanh
  • Giải thuật truyền lại nhanh
  • Slide 70
  • TCP điều khiển luồng
  • TCP điều khiển luồng caacutech lagravem
  • Slide 73
  • TCP quản lyacute kết nối
  • TCP quản lyacute kết nối (tt)
  • Slide 76
  • Slide 77
  • Slide 78
  • Caacutec nguyecircn lyacute điều khiển tắc nghẽn
  • Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 1
  • Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 2
  • Slide 82
  • Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 3
  • Slide 84
  • Caacutec caacutech tiếp cận đối với điều khiển tắc nghẽn
  • Viacute dụ điều khiển tắc nghẽn ATM ABR
  • Slide 87
  • Slide 88
  • TCP điều khiển tắc nghẽn additive tăng lecircn multiplicative giảm xuống
  • TCP điều khiển tắc nghẽn chi tiết
  • TCP khởi động chậm
  • TCP khởi động chậm (tt)
  • Tinh chế
  • Tinh chế nhận biết mất maacutet
  • Tổng kết TCP điều khiển tắc nghẽn
  • TCP điều khiển tắc nghẽn becircn gửi
  • TCP throughput
  • TCP tương lai
  • TCP tiacutenh cocircng bằng
  • Tại sao phải TCP cocircng bằng
  • TCP tiacutenh cocircng bằng (tt)
  • Mocirc higravenh trễ
  • Cửa sổ tắc nghẽn cố định (1)
  • Cửa sổ tắc nghẽn cố định (2)
  • TCP Mocirc higravenh trễ Khởi động chậm (1)
  • TCP Mocirc higravenh trễ Khởi động chậm (2)
  • TCP Mocirc higravenh trễ(3)
  • TCP Mocirc higravenh trễ (4)
  • HTTP Mocirc higravenh
  • Slide 110
  • Slide 111
  • Chương 3 Tổng kết

Transport Layer 3-23

Caacutec nguyecircn lyacute truyền dữ liệu tin cậy quan trọng trong caacutec lớp application transport link lagrave danh saacutech 10 vấn đề quan trọng nhất của mạng

caacutec đặc thugrave của kecircnh truyền khocircng tin cậy sẽ xaacutec định sự phức tạp của giao thức truyền dữ liệu data transfer protocol (rdt)

Transport Layer 3-24

Truyền dữ liệu tin cậy

sendside

receiveside

rdt_send() được gọi bởi lớp app Chuyển dữ liệu cần truyền

đến lớp cao hơn becircn nhận

udt_send() được gọi bởi rdt để truyền caacutec goacutei trecircn kecircnh khocircng tin cậy đến nơi

nhận

rdt_rcv() được gọi khi goacutei đến kecircnh becircn nhận

deliver_data() được gọi bởi rdt để truyền dữ liệu

đến lớp cao hơn

Transport Layer 3-25

Truyền dữ liệu tin cậy

Sẽ chỉ xem xeacutet truyền dữ liệu theo 1 hướng duy

nhất nhưng điều khiển luồng thocircng tin sẽ theo cả 2

chiều

dugraveng maacutey trạng thaacutei hữu hạn (finite state machines-FSM) để xaacutec định người gửi người nhận

trthaacutei1

trthaacutei2

sự kiện gacircy ra trạng thaacutei truyềncaacutec hagravenh động xảy ra khi truyền

trạng thaacutei khi ở ldquotrạng thaacuteirdquo nagravey thigrave

trạng thaacutei kế tiếp duy nhất được xaacutec định bởi sự kiện kế

tiếp

sự kiệncaacutec hagravenh động

Transport Layer 3-26

Rdt10 truyền dữ liệu tin cậy trecircn 1 kecircnh truyền tin cậy

kecircnh ưu tiecircn tin cậy hoagraven toagraven khocircng coacute caacutec lỗi khocircng mất maacutet caacutec goacutei

caacutec FSM phacircn biệt cho người gửi người nhận người gửi gửi dữ liệu vagraveo kecircnh ưu tiecircn người nhận nhận dữ liệu từ kecircnh ưu tiecircn

chờ gọi từ lớp trecircn packet = make_pkt(data)

udt_send(packet)

rdt_send(data)

extract (packetdata)deliver_data(data)

chờ gọi từ lớp dưới

rdt_rcv(packet)

người gửi người nhận

Transport Layer 3-27

Rdt20 kecircnh với caacutec lỗi

kecircnh ưu tiecircn coacute thể bật lecircn một số bit trong goacutei checksum để kiểm tra caacutec lỗi

Hỏi lagravem sao khocirci phục caacutec lỗi acknowledgements (ACKs) becircn nhận rotilde ragraveng thocircng

baacuteo cho becircn gửi rằng quaacute trigravenh nhận goacutei tốt negative acknowledgements (NAKs) becircn nhận rotilde ragraveng

thocircng baacuteo cho becircn gửi rằng quaacute trigravenh nhận goacutei coacute lỗi người gửi gửi lại goacutei nagraveo được xaacutec nhận lagrave NAK

caacutec cơ chế mới trong rdt20 (sau rdt10) kiểm tra lỗi nhận phản hồi caacutec thocircng điệp điều khiển (ACKNAK)

becircn nhận becircn gửi

Transport Layer 3-28

rdt20 đặc tả FSM

chờ gọi từ lớp trecircn

snkpkt = make_pkt(data checksum)udt_send(sndpkt)

extract(rcvpktdata)deliver_data(data)udt_send(ACK)

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)

rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp isNAK(rcvpkt)

udt_send(NAK)

rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)

chờ ACK hoặc NAK

chờ gọi từ lớp dưới

người gửi

người nhậnrdt_send(data)

Transport Layer 3-29

rdt20 hoạt động khi khocircng lỗi

chờ gọi từ lớp dưới

snkpkt = make_pkt(data checksum)udt_send(sndpkt)

extract(rcvpktdata)deliver_data(data)udt_send(ACK)

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)

rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp isNAK(rcvpkt)

udt_send(NAK)

rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)

chờ ACK hoặc NAK

chờ gọi từ lớp dưới

rdt_send(data)

Transport Layer 3-30

rdt20 hoạt động khi coacute lỗi

chờ gọi từ lớp dưới

snkpkt = make_pkt(data checksum)udt_send(sndpkt)

extract(rcvpktdata)deliver_data(data)udt_send(ACK)

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)

rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp isNAK(rcvpkt)

udt_send(NAK)

rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)

chờ ACK hoặc NAK

chờ gọi từ lớp dưới

rdt_send(data)

Transport Layer 3-31

rdt20 coacute lỗ hổng nghiecircm trọngĐiều gigrave xảy ra nếu

ACKNAK bị hỏng người gửi khocircng biết điều

gigrave đatilde xảy ra tại becircn nhận

khocircng thể đơn phương truyền lại khả năng trugraveng lặp

Quản lyacute trugraveng lặp người gửi truyền lại goacutei

hiện tại nếu ACKNAK bị hỏng

người gửi thecircm số thứ tự vagraveo mỗi goacutei

người nhận hủy (khocircng nhận) goacutei trugraveng lặp

Người gửi gửi 1 goacutei sau đoacute dừng lại chờ phản hồitừ người nhận

dừng vagrave chờ

Transport Layer 3-32

rdt21 người gửi quản lyacute caacutec ACKNAK bị hỏng

chờ gọi 0 từ lớp trecircn

sndpkt = make_pkt(0 data checksum)udt_send(sndpkt)

rdt_send(data)

chờ ACK hoặc NAK

0 udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) ||isNAK(rcvpkt) )

sndpkt = make_pkt(1 data checksum)udt_send(sndpkt)

rdt_send(data)

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) ||isNAK(rcvpkt) )

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt)

chờ gọi 1 từ lớp trecircn

chờ ACK hoặc NAK

1

Transport Layer 3-33

rdt21 người gửi quản lyacute caacutec ACKNAK bị hỏng

chờ 0 từ dưới

sndpkt = make_pkt(NAK chksum)udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp not corrupt(rcvpkt) ampamp has_seq0(rcvpkt)

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp has_seq1(rcvpkt)

extract(rcvpktdata)deliver_data(data)sndpkt = make_pkt(ACK chksum)udt_send(sndpkt)

chờ 1 từ dưới

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp has_seq0(rcvpkt)

extract(rcvpktdata)deliver_data(data)sndpkt = make_pkt(ACK chksum)udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp (corrupt(rcvpkt)

sndpkt = make_pkt(ACK chksum)udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp not corrupt(rcvpkt) ampamp has_seq1(rcvpkt)

rdt_rcv(rcvpkt) ampamp (corrupt(rcvpkt)

sndpkt = make_pkt(ACK chksum)udt_send(sndpkt)

sndpkt = make_pkt(NAK chksum)udt_send(sndpkt)

Transport Layer 3-34

rdt21 thảo luận

người gửi số thứ tự thecircm vagraveo

goacutei chỉ cần hai số thứ tự

(01) lagrave đủ Tại sao phải kiểm tra nếu việc

nhận ACKNAK bị hỏng

số trạng thaacutei tăng lecircn 2 lần trạng thaacutei phải ldquonhớrdquo

goacutei ldquohiện tạirdquo coacute số thứ tự lagrave 0 hay 1

người nhận phải kiểm tra coacute

nhận trugraveng goacutei khocircng trạng thaacutei chỉ rotilde coacute

hay khocircng mong chờ số thứ tự 0 hoặc 1

chuacute yacute người nhận khocircng biết ACKNAK vừa rồi của noacute coacute được người gửi nhận tốt hay khocircng

Transport Layer 3-35

rdt22 một giao thức khocircng cần NAK

chức năng giống như rdt21 chỉ dugraveng caacutec ACK thay cho NAK người nhận gửi ACK cho goacutei vừa

rồi đatilde nhận tốt người nhận phải rotilde ragraveng chegraven số thứ tự của goacutei vừa ACK

trugraveng ACK tại người gửi hậu quả giống như hagravenh động của NAK truyền lại goacutei vừa rồi

Transport Layer 3-36

rdt22 gửi nhận caacutec mảnh

Chờ cho gọi 0 từ

trecircn

sndpkt = make_pkt(0 data checksum)udt_send(sndpkt)

rdt_send(data)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) || isACK(rcvpkt1) )

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt0)

Chờ cho ACK

0

gửi phacircn mảnhFSM

Chờ cho gọi

0 từ dưới

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp has_seq1(rcvpkt)

extract(rcvpktdata)deliver_data(data)sndpkt = make_pkt(ACK1 chksum)udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp (corrupt(rcvpkt) || has_seq1(rcvpkt))

udt_send(sndpkt)

nhận phacircn mảnhFSM

Transport Layer 3-37

rdt30 caacutec kecircnh với lỗi vagrave mất maacutet

Giả định mới kecircnh ưu tiecircn cũng coacute thể lagravem mất caacutec goacutei (dữ liệu hoặc caacutec ACK) checksum số thứ tự

caacutec ACK caacutec việc truyền lại sẽ hỗ trợ nhưng khocircng đủ

Caacutech tiếp cận người gửi chờ ACK trong khoảng thời gian ldquochấp nhận đượcrdquo

truyền lại nếu khocircng nhận ACK trong khoảng thời gian nagravey

nếu goacutei (hoặc ACK) chỉ trễ (khocircng mất) truyền lại sẽ gacircy trugraveng

nhưng dugraveng số thứ tự sẽ giải quyết được

người nhận phải xaacutec định số thứ tự của goacutei vừa gửi ACK

cần bộ định thigrave đếm lugravei

Transport Layer 3-38

rdt30 gửi

sndpkt = make_pkt(0 data checksum)udt_send(sndpkt)start_timer

rdt_send(data)

Chờ cho

ACK 0

rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) ||isACK(rcvpkt1) )

Chờ cho gọi 1 từ trecircn

sndpkt = make_pkt(1 data checksum)udt_send(sndpkt)start_timer

rdt_send(data)

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt0)

rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) ||isACK(rcvpkt0) )

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt1)

stop_timerstop_timer

udt_send(sndpkt)start_timer

timeout

udt_send(sndpkt)start_timer

timeout

rdt_rcv(rcvpkt)

Chờ cho gọi 0 từ trecircn

Chờ cho

ACK 1

rdt_rcv(rcvpkt)

Transport Layer 3-39

hagravenh động của rdt30

Transport Layer 3-40

hagravenh động của rdt30

Transport Layer 3-41

Hiệu suất của rdt30

rdt30 lagravem việc được nhưng đaacutenh giaacute hiệu suất hơi rắc rối viacute dụ liecircn kết 1 Gbps trễ lan truyền giữa hai đầu cuối lagrave 15

ms goacutei 1KB

T truyền = 8kbpkt109 bsec

= 8 microsec

U sender độ khả dụng ndash

U sender

= 008

30008 = 000027

microseconds

L R

RTT + L R =

L (độ dagravei goacutei tiacutenh bằng bits)R (tốc độ truyền bps)

=

goacutei 1KB mỗi 30 msec -gt 33kBs trecircn đường truyền 1 Gbps giao thức network hạn chế việc dugraveng caacutec tagravei nguyecircn vật

lyacute

Transport Layer 3-42

rdt30 hoạt động dừng-vagrave-chờ

goacutei đầu tiecircn đatilde truyền t = 0

gửi nhận

RTT

goacutei cuối cugraveng đatilde truyền t = L R

goacutei đầu tiecircn đatilde đếngoacutei cuối cugraveng đatilde đến gửi ACK

ACK đến gửi goacutei kế tiếp t = RTT + L R

U sender

= 008

30008 = 000027

microseconds

L R

RTT + L R =

Transport Layer 3-43

Caacutec giao thức Pipelined

Pipelining người gửi cho pheacutep gửi nhiều goacutei đồng thời khocircng cần chờ baacuteo nhận được nhoacutem caacutec số thứ tự phải tăng dần phải coacute bộ nhớ đệm tại nơi gửi vagravehoặc nơi nhận

hai dạng phổ biến của caacutec giao thức pipelined go-Back-N Lặp coacute lựa chọn

Transport Layer 3-44

Pipelining độ khả dụng tăng

goacutei đầu tiecircn đatilde truyền t = 0

sender receiver

RTT

goacutei cuối cugraveng đatilde truyền t = L R

goacutei đầu tiecircn đatilde đếngoacutei cuối cugraveng đatilde đến gửi ACK

ACK đến gửi goacuteikế tiếp t = RTT + L R

bit cuối của goacutei thứ 2 đến gửi ACKbit cuối của goacutei thứ 3 đến gửi ACK

U sender

= 024

30008 = 00008

microseconds

3 L R

RTT + L R =

Độ khả dụng tăng lecircngấp 3 lần

Transport Layer 3-45

Go-Back-NBecircn gửi k-bit số thứ tự trong header của goacutei ldquocửa sổrdquo tăng lecircn đến N cho pheacutep gửi caacutec goacutei liecircn tục khocircng cần ACK

ACK(n) ACKs tất cả caacutec goacutei đến chứa số thứ tự n ndash ldquoACK tiacutech lũyrdquo coacute thể nhận caacutec ACK trugraveng lặp (xem becircn nhận)

định thigrave cho mỗi goacutei trecircn đường truyền timeout(n) gửi lại goacutei n vagrave tất cả caacutec goacutei coacute số thứ tự cao

hơn trong cửa sổ

Transport Layer 3-46

GBN becircn gửi mở rộng FSM

chờ start_timerudt_send(sndpkt[base])udt_send(sndpkt[base+1])hellipudt_send(sndpkt[nextseqnum-1])

timeout

rdt_send(data)

if (nextseqnum lt base+N) sndpkt[nextseqnum] = make_pkt(nextseqnumdatachksum) udt_send(sndpkt[nextseqnum]) if (base == nextseqnum) start_timer nextseqnum++ else refuse_data(data)

base = getacknum(rcvpkt)+1If (base == nextseqnum) stop_timer else start_timer

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)

base=1nextseqnum=1

rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)

Transport Layer 3-47

GBN becircn nhận mở rộng FSM

ACK-duy nhất luocircn luocircn gửi ACK cho goacutei đatilde nhận đuacuteng với số thứ tự xếp hạng cao nhất coacute thể sinh ra caacutec ACK trugraveng nhau chỉ cần nhớ expectedseqnum

goacutei khocircng theo thứ tự hủy -gt khocircng nhận vagraveo bộ đệm gửi lại ACK với số thứ tự xếp hạng cao nhất

chờ

udt_send(sndpkt)

default

rdt_rcv(rcvpkt) ampamp notcurrupt(rcvpkt) ampamp hasseqnum(rcvpktexpectedseqnum)

extract(rcvpktdata)deliver_data(data)sndpkt = make_pkt(expectedseqnumACKchksum)udt_send(sndpkt)expectedseqnum++

expectedseqnum=1sndpkt = make_pkt(expectedseqnumACKchksum)

Transport Layer 3-48

GBN hoạt động

Transport Layer 3-49

Lặp coacute lựa chọn

becircn nhận thocircng baacuteo đatilde nhận đuacuteng tất cả từng goacutei một đệm (buffer) caacutec goacutei nếu cần thiết

becircn gửi chỉ gửi lại caacutec goacutei nagraveo khocircng nhận được ACK becircn gửi định thigrave đối với mỗi goacutei khocircng gửi ACK

cửa sổ becircn gửi N số thứ tự liecircn tục hạn chế số thứ tự caacutec goacutei khocircng gửi ACK

Transport Layer 3-50

Lặp coacute lựa chọn caacutec cửa sổ gửi nhận

Transport Layer 3-51

Lặp coacute lựa chọn

dữ liệu từ lớp trecircn nếu số thứ tự kế tiếp sẵn

sagraveng trong cửa sổ gửi goacutei

timeout(n) gửi lại goacutei n taacutei khởi tạo

bộ định thigrave

ACK(n) trong [sendbasesendbase+N]

đaacutenh dấu goacutei n lagrave đatilde nhận nếu goacutei khocircng ACK coacute n

nhỏ nhất dịch chuyển cửa sổ base đến số thứ tự khocircng ACK kế tiếp

Gửigoacutei n trong [rcvbase

rcvbase+N-1]

gửi ACK(n) khocircng thứ tự đệm

(buffer) coacute thứ tự truyền (cũng

truyền caacutec goacutei đatilde đệm coacute thứ tự) dịch chuyển cửa sổ đến goacutei chưa nhận kế tiếp

goacutei n trong [rcvbase-Nrcvbase-1]

ACK(n)

ngược lại lờ đi

Nhận

Transport Layer 3-52

Hoạt động của lặp coacute lựa chọn

Transport Layer 3-53

Lặp coacute lựa chọntigravenh trạng khoacute giải quyếtViacute dụ Số thứ tự 0 1 2 3 Kiacutech thước cửa sổ = 3

becircn nhận khocircng thấy sự khaacutec nhau trong 2 tigravenh huống

chuyển khocircng chiacutenh xaacutec dữ liệu trugraveng lặp như dữ liệu mới trong (a)

Hỏi quan hệ giữa datildey số thứ tự vagrave kiacutech thước cửa sổ

Transport Layer 3-54

Chương 3 Nội dung trigravenh bagravey

31 Caacutec dịch vụ lớp Transport

32 Multiplexing vagrave demultiplexing

33 Vận chuyển khocircng kết nối UDP

34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy

35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối

36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn

37 Điều khiển tắc nghẽn TCP

Transport Layer 3-55

TCP Tổng quan RFCs 793 1122 1323 2018 2581

dữ liệu full duplex luồng dữ liệu đi 2 chiều

trong cugraveng một kết nối MSS maximum

segment size ndash kiacutech thước đoạn tối đa

hướng kết nối bắt tay (trao đổi caacutec

thocircng điệp điều khiển) trạng thaacutei becircn gửi becircn nhận trước khi trao đổi dữ liệu

điều khiển luồng becircn gửi sẽ khocircng lấn aacutet

becircn nhận

point-to-point một becircn gửi một becircn

nhận tin cậy dograveng byte coacute

thứ tự khocircng ldquoranh giới thocircng

điệprdquo kecircnh liecircn lạc

TCP điều khiển luồng vagrave tắc nghẽn thiết lập kiacutech thước cửa sổ

caacutec bộ đệm gửi amp nhận

socketdoor

T C Psend buffer

T C Preceive buffer

socketdoor

segm ent

applicationwrites data

applicationreads data

Transport Layer 3-56

TCP cấu truacutec đoạn

port nguồn port điacutech

32 bits

dữ liệu ứng dụng(độ dagravei thay đổi)

số thứ tự

số ACKcửa sổ nhận

con trỏ URGchecksum

FSRPAUheadlen

notused

Tugravey chọn (độ dagravei thay đổi)

URG dữ liệu khẩn cấp(thường khocircng dugraveng)

ACK ACK hợp lệ

PSH push data now(thường khocircng dugraveng)

RST SYN FINthiết lập kết nối

(caacutec lệnh thiết lậpchia nhỏ)

số byte becircn nhận sẵn sagraveng chấp nhận

đếm bởi số bytecủa dữ liệu

Internetchecksum

(giống UDP)

Transport Layer 3-57

Caacutec số thứ tự TCP vagrave ACKCaacutec số thứ tự

dograveng byte ldquođaacutenh sốrdquo byte đầu tiecircn trong dữ liệu của đoạn

caacutec ACK số thứ tự của byte

kế tiếp được chờ đợi từ phiacutea becircn kia

ACK tiacutech lũyHỏi lagravem thế nagraveo becircn

nhận quản lyacute caacutec đoạn khocircng thứ tự Trả lời TCP khocircng

đề cập tugravey thuộc người hiện thực

Host A Host B

Seq=42 ACK=79 data = lsquoCrsquo

Seq=79 ACK=43 data = lsquoCrsquo

Seq=43 ACK=80

UsernhậplsquoCrsquo

host ACKsnhận phản hồi

lsquoCrsquo

host ACKsbaacuteo nhận

lsquoCrsquo phản hồingược lại lsquoCrsquo

timetigravenh huống telnet đơn giản

Transport Layer 3-58

TCP Round Trip Time vagraveTimeout

Hỏi Lagravem thế nagraveo để thiết lập giaacute trị TCP timeout

dagravei hơn RTT khaacutec với RTT

quaacute ngắn timeout sớm truyền lại khocircng

cần thiết quaacute dagravei phản ứng

chậm đối với việc mất maacutet goacutei

Hỏi Lagravem thế nagraveo để thiết lập RTT

SampleRTT thời gian được đo từ khi truyền đoạn đến khi baacuteo nhận ACK lờ đi việc truyền lại

SampleRTT sẽ thay đổi muốn ước lượng RTT ldquomượt hơnrdquo tiacutenh trung bigravenh một số giaacute

trị đo được gần đoacute khocircng chỉ SampleRTT hiện tại

Transport Layer 3-59

TCP Round Trip Time vagrave Timeout

EstimatedRTT = (1- )EstimatedRTT + SampleRTT

giaacute trị đặc trưng = 0125

Transport Layer 3-60

Viacute dụ đaacutenh giaacute RTTRTT gaiacsumassedu to fantasiaeurecomfr

100

150

200

250

300

350

1 8 15 22 29 36 43 50 57 64 71 78 85 92 99 106

time (seconnds)

RTT

(mill

isec

onds

)

SampleRTT Estimated RTT

Transport Layer 3-61

TCP Round Trip Time vagrave Timeout

Thiết lập timeout EstimtedRTT cộng ldquohệ số dự trữ an toagravenrdquo

sự biến thiecircn lớn trong EstimatedRTT -gt hệ số dự trữ an toagraven lớn hơn ước lượng đầu tiecircn về sự biến thiecircn của SampleRTT từ EstimatedRTT

TimeoutInterval = EstimatedRTT + 4DevRTT

DevRTT = (1-)DevRTT + |SampleRTT-EstimatedRTT|

(tiecircu biểu = 025)

Sau đoacute thiết lập timeout interval

Transport Layer 3-62

TCP truyền dữ liệu tin cậy

TCP tạo dịch vụ rdt trecircn dịch vụ khocircng tin cậy IP

caacutec đoạn Pipelined caacutec ACK tiacutech lũy TCP dugraveng bộ định thigrave

truyền lại đơn

Truyền lại được kiacutech hoạt bởi caacutec sự kiện timeout caacutec ack trugraveng lặp

luacutec đầu khảo saacutet caacutec becircn gửi TCP đơn giản lờ đi caacutec ack trugraveng lặp lờ đi điều khiển luồng

điều khiển tắc nghẽn

Transport Layer 3-63

TCP caacutec sự kiệndữ liệu đatilde nhận từ ứng

dụng tạo đoạn với số thứ

tự của noacute số thứ tự lagrave số theo

byte dữ liệu đầu tiecircn khởi động bộ định thigrave

nếu chưa chạy khoảng thời gian hết

hạn TimeOutInterval

timeout gửi lại đoạn nagraveo gacircy

ra timeout khởi động lại bộ định

thigrave Ack đatilde nhận

cập nhật caacutei gigrave sẽ được ACK

khởi động bộ định thigrave nếu coacute caacutec đoạn cograven chờ

Transport Layer 3-64

TCP becircn gửi(đơn giản)

NextSeqNum = InitialSeqNum SendBase = InitialSeqNum

loop (forever) switch(event)

event data received from application above create TCP segment with sequence number NextSeqNum if (timer currently not running) start timer pass segment to IP NextSeqNum = NextSeqNum + length(data)

event timer timeout retransmit not-yet-acknowledged segment with smallest sequence number start timer

event ACK received with ACK field value of y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer

end of loop forever

Chuacute thiacutechbull SendBase-1 byte vừa được ACK tiacutech lũy Viacute dụbull SendBase-1 = 71y= 73 vigrave thế becircn nhận muốn 73+ y gt SendBase vigrave thế dữ liệu mới được chấp nhận

Transport Layer 3-65

TCP caacutec tigravenh huống truyền lại

Host A

Seq=100 20 bytes data

ACK=100

timetimeout sớm

Host B

Seq=92 8 bytes data

ACK=120

Seq=92 8 bytes data

Seq=

92

tim

eout

ACK=120

Host A

Seq=92 8 bytes data

ACK=100

loss

tim

eout

tigravenh huống mất ACK

Host B

X

Seq=92 8 bytes data

ACK=100

time

Seq=

92

tim

eout

SendBase= 100

SendBase= 120

SendBase= 120

Sendbase= 100

Transport Layer 3-66

TCP caacutec tigravenh huống truyền lại (tt)Host A

Seq=92 8 bytes data

ACK=100

loss

tim

eout

Cumulative ACK scenario

Host B

X

Seq=100 20 bytes data

ACK=120

time

SendBase= 120

Transport Layer 3-67

TCP sinh ra ACK [RFC 1122 RFC 2581]

Sự kiện tại becircn nhận

Đoạn đến với đuacuteng số thứ tự mong muốn Tất cả dữ liệu đếnđatilde được ACK

Đoạn đến với đuacuteng số thứ tự mong muốn Một đoạn khaacutec đangchờ ACK

Caacutec đoạn đến khocircng thứ tựlớn hơn số thứ tự đoạn mong muốnCoacute khoảng trống

Đoạn đếnlấp đầy từng phần hoặc toagraven bộkhoảng trống

TCP becircn nhận hagravenh động

ACK trễ Chờ đến 500mscho đoạn kế tiếp Nếu khocircng coacute đoạnkế tiếp gửi ACK

Gửi ngay một ACK tiacutech lũy chấp nhậncho cả caacutec đoạn theo thứ tự

Gửi ngay ACK trugraveng lặp chỉ thị số thứ tựđoạn của byte kế tiếp đang mong chờ

Gửi ngay ACK với điều kiện lagrave đoạnbắt đầu ngay điểm coacute khoảng trống

Transport Layer 3-68

Truyền lại nhanh

Chu kỳ Time-out thường tương đối dagravei độ trễ dagravei trước khi gửi

lại goacutei đatilde mất

Xaacutec nhận caacutec đoạn đatilde mất bằng caacutec ACK trugraveng lặp becircn gửi thường gửi

nhiều đoạn song song Nếu đoạn bị mất sẽ

xảy ra tigravenh trạng giống như nhiều ACK trugraveng nhau

Nếu becircn gửi nhận 3 ACK của cugraveng một dữ liệu noacute cho lagrave đoạn sau dữ liệu đatilde ACK bị mất Truyền lại nhanh gửi

lại đoạn trước khi bộ định thigrave hết hạn

Transport Layer 3-69

sự kiện ACK đatilde nhận với trường lagrave y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer else increment count of dup ACKs received for y if (count of dup ACKs received for y = 3) resend segment with sequence number y

Giải thuật truyền lại nhanh

một ACK trugraveng lặp cho đoạn đatilde được ACK

Truyền lại nhanh

Transport Layer 3-70

Chương 3 Nội dung trigravenh bagravey

31 Caacutec dịch vụ lớp Transport

32 Multiplexing vagrave demultiplexing

33 Vận chuyển khocircng kết nối UDP

34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy

35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối

36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn

37 Điều khiển tắc nghẽn TCP

Transport Layer 3-71

TCP điều khiển luồng

becircn nhận của kết nối TCP coacute một bộ đệm nhận

dịch vụ so trugraveng tốc độ so trugraveng tốc độ gửi với tốc độ nhận của ứng dụng

tiến trigravenh ứng dụng coacute thể chậm tại luacutec đọc bộ đệm

becircn gửi sẽ khocircng lagravem tragraven bộ đệm vigrave truyền quaacute nhiều vagrave

quaacute nhanh

điều khiển luồng

Transport Layer 3-72

TCP điều khiển luồng caacutech lagravem

(Giả sử becircn nhận TCP loại bỏ caacutec đoạn khocircng coacute thứ tự)

dự phograveng trong bộ đệm= RcvWindow

= RcvBuffer-[LastByteRcvd - LastByteRead]

Becircn nhận thocircng baacuteo khoảng dự trữ nhờ giaacute trị RcvWindow trong caacutec đoạn

Becircn gửi hạn chế dữ liệu khocircng được ACK vagraveo RcvWindow bảo đảm bộ đệm nhận

khocircng tragraven

Transport Layer 3-73

Chương 3 Nội dung trigravenh bagravey

31 Caacutec dịch vụ lớp Transport

32 Multiplexing vagrave demultiplexing

33 Vận chuyển khocircng kết nối UDP

34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy

35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối

36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn

37 Điều khiển tắc nghẽn TCP

Transport Layer 3-74

TCP quản lyacute kết nối

Chuacute yacute Becircn gửi vagrave becircn nhận TCP thiết lập ldquokết nốirdquo trước khi trao đổi dữ liệu

khởi tạo caacutec biến TCP caacutec số thứ tự đoạn thocircng tin caacutec bộ đệm điều

khiển luồng (như RcvWindow)

client người khởi xướng kết nối

Socket clientSocket = new Socket(hostnameport

number) server được tiếp xuacutec bởi

client Socket connectionSocket =

welcomeSocketaccept()

3 phương phaacutep bắt tay

Bước 1 client host gửi đoạnTCP SYN đến server xaacutec định số thứ tự khởi đầu khocircng phải dữ liệu

Bước 2 server host nhận SYN trả lời với đoạn SYNACK

server cấp phaacutet caacutec bộ đệm

xaacutec định số thứ tự khởi đầuBước 3 client nhận SYNACK trả

lời với đoạn ACK (coacute thể chứa dữ liệu)

Transport Layer 3-75

TCP quản lyacute kết nối (tt)

Đoacuteng một kết nối

client đoacuteng socket clientSocketclose()

Bước 1 client gửi đoạn điều khiển TCP FIN đến server

Bước 2 server nhận FIN trả lời với ACK Đoacuteng kết nối gửi FIN

client

FIN

server

ACK

ACK

FIN

đoacuteng

đoacuteng

đatilde đoacutengthời g

ian c

hờ

Transport Layer 3-76

TCP quản lyacute kết nối (tt)

Bước 3 client nhận FIN trả lời với ACK

Trong khoảng ldquothời gian chờrdquo ndash sẽ phản hồi với ACK để nhận caacutec FIN

Bước 4 server nhận ACK Kết nối đatilde đoacuteng

Chuacute yacute với một sửa đổi nhỏ coacute thể quản lyacute nhiều FIN đồng thời

client

FIN

server

ACK

ACK

FIN

đang đoacuteng

đang đoacuteng

đatilde đoacuteng

thời g

ian c

hờ

đatilde đoacuteng

Transport Layer 3-77

TCP quản lyacute kết nối (tt)

chu kỳ sống củaTCP client

chu kỳ sống củaTCP server

Transport Layer 3-78

Chương 3 Nội dung trigravenh bagravey

31 Caacutec dịch vụ lớp Transport

32 Multiplexing vagrave demultiplexing

33 Vận chuyển khocircng kết nối UDP

34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy

35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối

36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn

37 Điều khiển tắc nghẽn TCP

Transport Layer 3-79

Caacutec nguyecircn lyacute điều khiển tắc nghẽn

Tắc nghẽn ldquoquaacute nhiều nguồn gửi quaacute nhanh vagrave quaacute nhiều

dữ liệu đến mạngrdquo khaacutec với điều khiển luồng caacutec biểu hiện

caacutec goacutei bị mất (tragraven bộ đệm tại caacutec router) caacutec độ trễ quaacute dagravei (xếp hagraveng trong bộ đệm

của router) lagrave 1 trong 10 vấn đề nan giải nhất

Transport Layer 3-80

Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 1

2 gửi 2 nhận 1 router caacutec bộ

đệm khocircng giới hạn

khocircng coacute truyền lại

caacutec độ trễ lớn hơn khi tắc nghẽn

năng suất coacute thể đạt tối đa

unlimited shared output link buffers

Host Ain original data

Host B

out

Transport Layer 3-81

Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 2

1 router caacutec bộ đệm coacute giới hạn becircn gửi truyền lại caacutec goacutei đatilde mất

chia sẻ vocirc hạncaacutec bộ đệm ouput

Host A in dữ liệu gốc

Host B

out

in dữ liệu gốc cugraveng với dữ liệu truyền lại

Transport Layer 3-82

Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 2 luocircn luocircn

truyền lại ldquohoagraven toagravenrdquo chỉ khi mất maacutet

truyền lại vigrave trễ (khocircng mất) lagravem cho lớn hơn với cugraveng

in

out

=

in

out

gt

in

out

ldquocaacutec chi phiacuterdquo của tắc nghẽn nhiều việc (truyền lại) caacutec truyền lại khocircng cần thiết liecircn kết nhiều bản sao của

goacutei

R2

R2in

ou

t

b

R2

R2in

ou

t

a

R2

R2in

ou

t

c

R4

R3

Transport Layer 3-83

Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 3 4 người gửi caacutec đường qua nhiều hop timeouttruyền lại

in

Hỏi điều gigrave xảy ra nếu vagrave tăng lecircn

in

chia sẻ vocirc hạncaacutec bộ đệm ouput

Host Ain dữ liệu gốc

Host B

out

in dữ liệu gốc cugraveng với dữ liệu truyền lại

Transport Layer 3-84

Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 3

ldquochi phiacuterdquo khaacutec của tắc nghẽn khi caacutec goacutei bị bỏ bất kỳ ldquokhả năng truyền

upstream dugraveng cho goacutei đoacute sẽ bị latildeng phiacuterdquo

Host A

Host B

o

u

t

Transport Layer 3-85

Caacutec caacutech tiếp cận đối với điều khiển tắc nghẽn

điều khiển tắc nghẽn end-end

khocircng coacute phản hồi rotilde ragraveng từ mạng

tắc nghẽn được suy ra từ việc quan saacutet caacutec hệ thống đầu cuối coacute mất maacutet trễ

tiếp cận được quản lyacute bởi TCP

điều khiển tắc nghẽn coacute sự hỗ trợ của mạng

caacutec router cung cấp phản hồi về caacutec hệ thống đầu cuối 1 bit duy nhất chỉ thị

tắc nghẽn (SNA DECbit TCPIP ECN ATM)

tốc độ sẽ gửi được xaacutec định rotilde ragraveng

2 caacutech

Transport Layer 3-86

Viacute dụ điều khiển tắc nghẽn ATM ABR

ABR tốc độ bit sẵn sagraveng

ldquodịch vụ mềm dẻordquo nếu đường gửi ldquochưa

hếtrdquo becircn gửi sẽ dugraveng

băng thocircng sẵn sagraveng nếu đường gửi tắc

nghẽn becircn gửi điều tiết với

tốc độ tối thiểu

RM (resource management)

gửi bởi becircn gửi rải raacutec với caacutec ocirc dữ liệu

caacutec bit trong ocirc thiết lập bởi caacutec switch bit NI khocircng tăng tốc độ

(tắc nghẽn nhẹ) bit CI tắc nghẽn rotilde rệt

Caacutec ocirc RM được trả về becircn gửi từ becircn nhận với nguyecircn vẹn caacutec bit

Transport Layer 3-87

Viacute dụ điều khiển tắc nghẽn ATM ABR

trường 2-byte ER trong ocirc RM switch đatilde tắc nghẽn coacute thể coacute giaacute trị ER thấp hơn trong ocirc tốc độ gửi do đoacute coacute thể được hỗ trợ tối đa trecircn đường

EFCI bit trong caacutec ocirc dữ liệu được cagravei giaacute trị 1 trong switch đatilde tắc nghẽn nếu ocirc dữ liệu đứng trước ocirc RM coacute cagravei EFCI becircn gửi sẽ cagravei

bit CI trong ocirc RM trả về

Transport Layer 3-88

Chương 3 Nội dung trigravenh bagravey

31 Caacutec dịch vụ lớp Transport

32 Multiplexing vagrave demultiplexing

33 Vận chuyển khocircng kết nối UDP

34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy

35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối

36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn

37 Điều khiển tắc nghẽn TCP

Transport Layer 3-89

TCP điều khiển tắc nghẽn additive tăng lecircn multiplicative giảm xuống

8 Kbytes

16 Kbytes

24 Kbytes

time

congestionwindow

Caacutech tiếp cận tăng tốc độ truyền (kiacutech thước cửa sổ) tigravem khả năng băng thocircng coacute thể cho đến khi coacute mất maacutet xảy ra additive tăng lecircn tăng CongWin bởi 1 MSS

mỗi RTT cho đến khi coacute mất maacutet xảy ra multiplicative giảm xuống bỏ CongWin trong

nửa giai đoạn sau khi mất maacutet

timekiacutech

thư

ớc

cửa

sổ

tắc

nghẽ

n

Tigravem kiếm băng thocircng

Transport Layer 3-90

TCP điều khiển tắc nghẽn chi tiết

becircn gửi hạn chế việc truyền LastByteSent-LastByteAcked

CongWin Cocircng thức

CongWin thay đổi chức năng lagrave nhận biết tắc nghẽn trecircn mạng

Lagravem thế nagraveo becircn gửi nhận biết tắc nghẽn

mất maacutet xảy ra = timeout hoặc 3 ack trugraveng lặp

becircn gửi giảm tốc độ (CongWin) sau khi mất maacutet xảy ra

3 cơ chế AIMD khởi động chậm thận trọng sau khi coacute

caacutec sự kiện timeout

tốc độ = CongWin

RTT Bytess

Transport Layer 3-91

TCP khởi động chậm

Khi kết nối bắt đầu CongWin = 1 MSS Viacute dụ MSS = 500 bytes

amp RTT = 200 ms tốc độ khởi tạo = 20

kbps

băng thocircng sẵn sagraveng coacute thể gtgt MSSRTT mong muốn nhanh

choacuteng tăng tốc lecircn tốc độ coacute thể đaacutep ứng

Khi kết nối bắt đầu tăng tốc lecircn rất nhanh cho đến khi sự cố mất maacutet xảy ra đầu tiecircn

Transport Layer 3-92

TCP khởi động chậm (tt)

Khi kết nối bắt đầu tăng tốc lecircn rất nhanh cho đến khi sự cố mất maacutet xảy ra đầu tiecircn nhacircn đocirci CongWin mỗi

RTT hoagraven thagravenh nhờ tăng CongWin ứng với mỗi ACK đatilde nhận

Tổng kết tốc độ khởi đầu lagrave chậm nhưng sau đoacute tăng tốc rất nhanh

Host A

1 đoạn

RTT

Host B

thời gian

2 đoạn

4 đoạn

Transport Layer 3-93

Tinh chếHỏi Khi nagraveo việc tăng

tốc trở thagravenh tuyến tiacutenh

Trả lời Khi CongWin đạt đến 12 giaacute trị của noacute trước khi timeout

Hiện thực Ngưỡng thay đổi Tại thời điểm coacute sự cố

mất maacutet ngưỡng được cagravei giaacute trị bằng frac12 của CongWin ngay trước đoacute

Transport Layer 3-94

Tinh chế nhận biết mất maacutet

Sau 3 ACK trugraveng lặp CongWin sẽ giảm 12 kiacutech thước cửa sổ

tăng tuyến tiacutenh nhưng sau sự cố

timeout CongWin thay giaacute trị

bằng 1 MSS kiacutech thước cửa sổ

tăng cấp lũy thừa khi đến một ngưỡng

thigrave tăng tuyến tiacutenh

3 ACK trugraveng nhau chỉ ra khả năng truyền của mạng timeout chỉ thị ldquonhiều cảnh baacuteordquo về tigravenh huống tắc nghẽn

Nguyecircn lyacute

Transport Layer 3-95

Tổng kết TCP điều khiển tắc nghẽn

Khi CongWin dưới Threshold becircn gửi đang trong giai đoạn khởi động chậm kiacutech thước cửa sổ tăng nhanh theo cấp lũy thừa

Khi CongWin trecircn Threshold becircn gửi đang trong giai đoạn traacutenh tắc nghẽn kiacutech thước cửa sổ tăng nhanh theo cấp tuyến tiacutenh

Khi coacute 3 ACK trugraveng lặp xảy ra Threshold = CongWin2 vagrave CongWin = Threshold

Khi timeout xảy ra Threshold = CongWin2 vagrave CongWin = 1 MSS

Transport Layer 3-96

TCP điều khiển tắc nghẽn becircn gửi

Trạng thaacutei Sự kiện TCP becircn gửi hagravenh động Diễn giải

Slow Start (SS)-Khởi động chậm

ACK baacuteo nhận cho dữ liệu chưa ACK trước đoacute

CongWin = CongWin + MSS If (CongWin gt Threshold) cagravei đặt trạng thaacutei ldquoTraacutenh tắc nghẽnrdquo

Hậu quả lagravem tăng gấp đocirci CongWin mỗi RTT

CongestionAvoidance (CA) ndashTraacutenh tắc nghẽn

ACK baacuteo nhận cho dữ liệu chưa ACK trước đoacute

CongWin = CongWin+MSS (MSSCongWin)

Additive tăng lecircn lagravem tăng CongWin lecircn 1 MSS mỗi RTT

SS hoặc CA Sự cố mất maacutet xảy ra khi thấy coacute 3 ACK trugraveng lặp

Threshold = CongWin2 CongWin = Thresholdcagravei đặt trạng thaacutei ldquoTraacutenh tắc nghẽnrdquo

Khocirci phục nhanh hiện thực giảm xuống multiplicative CongWin sẽ khocircng giảm xuống dưới 1 MSS

SS hoặc CA Timeout Threshold = CongWin2 CongWin = 1 MSScagravei đặt trạng thaacutei ldquoKhởi động chậmrdquo

Vagraveo chế độ ldquoKhởi động chậmrdquo

SS hoặc CA ACK trugraveng lặp

Đếm ACK tăng lecircn cho đoạn vừa được ACK

CongWin vagrave Threshold khocircng thay đổi

Transport Layer 3-97

TCP throughput

Throughout trung bigravenh của TCP biểu diễn qua kiacutech thước của sổ vagrave RTT Bỏ qua trạng thaacutei ldquoKhởi động chậmrdquo

Cho W lagrave kiacutech thước cửa sổ khi coacute mất maacutet xảy ra

Khi kiacutech thước cửa sổ = W lưu lượng = WRTT

Chỉ ngay sau khi mất maacutet cửa sổ giảm xuống = W2 lưu lượng = W2RTT

throughout trung bigravenh 075 WRTT

Transport Layer 3-98

TCP tương lai

Viacute dụ caacutec đoạn dagravei 1500 byte RTT 100ms lưu lượng 10 Gbps

Kiacutech thước cửa sổ yecircu cầu W = 83333 đoạn trecircn đường truyền

Lưu lượng trong caacutec trường hợp mất maacutet

L = 210-10

Phiecircn bản mới của TCP dagravenh cho nhu cầu tốc độ cao

LRTT

MSS221

Transport Layer 3-99

Mục tiecircu nếu K phiecircn lagravem việc TCP chia sẻ kết nối cổ chai của băng thocircng lagrave R mỗi phiecircn coacute tốc độ trung bigravenh lagrave RK

TCP kết nối 1

router cổ chaikhả năng R

TCP kết nối 2

TCP tiacutenh cocircng bằng

Transport Layer 3-100

Tại sao phải TCP cocircng bằng

2 phiecircn lagravem việc cạnh tranh nhau Additive tăng lưu lượng tăng multiplicative giảm lưu lượng tương xứng

R

R

chia sẻ băng thocircng bằng nhau

Connection 1 throughputConnect

ion 2

th

roughput

traacutenh tắc nghẽn additive tăng lecircnmất maacutet giảm cửa sổ bằng 12

traacutenh tắc nghẽn additive tăng lecircnmất maacutet giảm cửa sổ bằng 12

Transport Layer 3-101

TCP tiacutenh cocircng bằng (tt)

Tiacutenh cocircng bằng amp UDP nhiều ứng dụng

thường khocircng dugraveng TCP khocircng muốn tốc độ bị

điều tiết do điều khiển tắc nghẽn

Thay bằng dugraveng UDP truyền audiovideo với

tốc độ ổn định chịu được mất maacutet

Nghiecircn cứu giao thức thacircn thiện với TCP

Tiacutenh cocircng bằng amp caacutec kết nối TCP song song

khocircng coacute gigrave ngăn cản việc ứng dụng mở caacutec kết nối song song giữa 2 host

Trigravenh duyệt Web lagravem giống như thế

Viacute dụ tốc độ R hỗ trợ 9 kết nối ứng dụng mới yecircu cầu 1

TCP coacute tốc độ R10 ứng dụng mới yecircu cầu 11

TCP coacute tốc độ R2

Transport Layer 3-102

Mocirc higravenh trễ

Hỏi Mất bao lacircu để nhận 1 đối tượng từ Web server sau khi gửi yecircu cầu

Bỏ qua tắc nghẽn trễ bị ảnh hưởng bởi

thiết lập kết nối TCP trễ truyền dữ liệu khởi động chậm

Notation caacutec giả định Giả sử một kết nối giữa

client vagrave server coacute tốc độ R

S MSS (bits) O kiacutech thước đối tượng

(bits) khocircng truyền lại (khocircng

mất maacutet khocircng hỏng)

Kiacutech thước cửa sổ Giả định 1 cửa sổ tắc

nghẽn cố định coacute W đoạn Sau đoacute cửa sổ thay đổi

mocirc higravenh khởi động chậm

Transport Layer 3-103

Cửa sổ tắc nghẽn cố định (1)

Trường hợp đầu tiecircnWSR gt RTT + SR cho

đoạn đầu tiecircn trong cửa sổ trả về trước khi cửa sổ dữ liệu gửi ACK

trễ = 2RTT + OR

Transport Layer 3-104

Cửa sổ tắc nghẽn cố định (2)

Trường hợp thứ hai WSR lt RTT + SR sent

chờ cho ACK sau khi gửi dữ liệu

trễ = 2RTT + OR+ (K-1)[SR + RTT - WSR]

Transport Layer 3-105

TCP Mocirc higravenh trễ Khởi động chậm (1)

Bacircy giờ giả sử kiacutech thước cửa sổ tăng lecircn tugravey theo quaacute trigravenh khởi động chậm

Độ trễ của một đối tượng sẽ lagrave

R

S

R

SRTTP

R

ORTTLatency P )12(2

trong đoacute P lagrave số lần TCP rảnh ở tại server

1min KQP

- trong đoacute Q lagrave số lần server rảnh nếu đối tượng đatilde khởi tạo kiacutech thước

- vagrave K lagrave số lượng cửa sổ bao trugravem đối tượng

Transport Layer 3-106

TCP Mocirc higravenh trễ Khởi động chậm (2)

RTT

initia te TCPconnection

requestobject

first w indow= S R

second w indow= 2S R

third w indow= 4S R

fourth w indow= 8S R

com pletetransm issionobject

delivered

tim e atc lient

tim e atserver

Viacute dụbull OS = 15 đoạnbull K = 4 cửa sổbull Q = 2bull P = minK-1Q = 2

Server rảnh P=2 lần

Caacutec thagravenh phần trễbull 2 RTT dagravenh cho thiết lập kết nối vagrave yecircu cầubull OR để truyền đối tượngbullthời gian server rảnh bởi vigrave khởi động chậm

Server rảnh P = minK-1Q lần

Transport Layer 3-107

TCP Mocirc higravenh trễ(3)

R

S

R

SRTTPRTT

R

O

R

SRTT

R

SRTT

R

O

idleTimeRTTR

O

P

kP

k

P

pp

)12(][2

]2[2

2delay

1

1

1

th window after the timeidle 2 1 kR

SRTT

R

S k

ementacknowledg receivesserver until

segment send tostartsserver when from time RTTR

S

window kth the transmit totime2 1

R

Sk

RTT

initia te TCPconnection

requestobject

first w indow= S R

second w indow= 2S R

third w indow= 4S R

fourth w indow= 8S R

com pletetransm issionobject

delivered

tim e atc lient

tim e atserver

Transport Layer 3-108

TCP Mocirc higravenh trễ (4)

)1(log

)1(logmin

12min

222min

222min

2

2

110

110

S

OS

Okk

S

Ok

SOk

OSSSkK

k

k

k

caacutech tiacutenh toaacuten Q tương tự (xem HW)

K = số lượng cửa sổ bao trugravem đối tượngLagravem thế nagraveo tiacutenh được K

Transport Layer 3-109

HTTP Mocirc higravenh Giả sử trang Web chứa

1 trang HTML (kiacutech thước O bits) M higravenh ảnh (mỗi caacutei kiacutech thướcO bits)

HTTP khocircng bền vững M+1 TCP kết nối Thời gian đaacutep ứng = (M+1)OR + (M+1)2RTT + tổng số thời

gian rảnh HTTP bền vững

2 RTT để yecircu cầu vagrave nhận file HTML 1 RTT để yecircu cầu vagrave nhận M higravenh ảnh Thời gian đaacutep ứng = (M+1)OR + 3RTT + tổng số thời gian

rảnh HTTP khocircng bền vững với X kết nối song song

Giả sử MX lagrave số nguyecircn 1 TCP kết nối cho file MX thiết lập caacutec kết nối song song cho caacutec higravenh ảnh Thời gian đaacutep ứng = (M+1)OR + (MX + 1)2RTT + tổng số

thời gian rảnh

Transport Layer 3-110

02468

101214161820

28Kbps

100Kbps

1Mbps

10Mbps

non-persistent

persistent

parallel non-persistent

HTTP thời gian đaacutep ứng (giacircy)RTT = 100 msec O = 5 Kbytes M=10 vagrave X=5

Với băng thocircng thấp thời gian kết nối amp đaacutep ứng trội hơn thời gian truyền

Caacutec kết nối bền vững chỉ cho sự cải thiện khocircng đaacuteng kể trecircn caacutec kết nối song song

Transport Layer 3-111

0

10

20

30

40

50

60

70

28Kbps

100Kbps

1Mbps

10Mbps

non-persistent

persistent

parallel non-persistent

HTTP thời gian đaacutep ứng (giacircy)

RTT =1 sec O = 5 Kbytes M=10 and X=5

Với RTT lớn hơn thời gian đaacutep ứng trội hơn thời gian trễ chờ thiết lập kết nốiTCP amp khởi động chậm Caacutec kết nối bền vững bacircy giờ cho thấy cải thiện rotilde rệt đặc biệtvới caacutec mạng băng thocircng cao

Transport Layer 3-112

Chương 3 Tổng kết caacutec nguyecircn lyacute của caacutec

dịch vụ lớp transport multiplexing

demultiplexing truyền dữ liệu tin cậy điều khiển luồng điều khiển tắc nghẽn

khởi tạo vagrave hiện thực trong Internet UDP TCP

Tiếp theo nghiecircn cứu xong

caacutec vấn đề ldquongoagravei biecircnrdquo (caacutec lớp application transport)

chuẩn bị vagraveo phần ldquolotildeirdquo của mạng

  • Slide 1
  • Chương 3 Lớp Transport
  • Chương 3 Nội dung trigravenh bagravey
  • Caacutec dịch vụ vagrave giao thức Transport
  • Lớp Transport với lớp network
  • Caacutec giao thức lớp transport trecircn Internet
  • Slide 7
  • Multiplexingdemultiplexing
  • Demultiplexing lagravem việc như thế nagraveo
  • Demultiplexing khocircng kết nối
  • Demultiplexing khocircng kết nối (tiếp)
  • Demultiplexing hướng kết nối
  • Demultiplexing hướng kết nối (tiếp)
  • Demultiplexing hướng kết nối Threaded Web Server
  • Slide 15
  • UDP User Datagram Protocol [RFC 768]
  • UDP (tt)
  • UDP checksum
  • Viacute dụ Checksum
  • Slide 20
  • Caacutec nguyecircn lyacute truyền dữ liệu tin cậy
  • Slide 22
  • Slide 23
  • Truyền dữ liệu tin cậy
  • Slide 25
  • Rdt10 truyền dữ liệu tin cậy trecircn 1 kecircnh truyền tin cậy
  • Rdt20 kecircnh với caacutec lỗi
  • rdt20 đặc tả FSM
  • rdt20 hoạt động khi khocircng lỗi
  • rdt20 hoạt động khi coacute lỗi
  • rdt20 coacute lỗ hổng nghiecircm trọng
  • rdt21 người gửi quản lyacute caacutec ACKNAK bị hỏng
  • Slide 33
  • rdt21 thảo luận
  • rdt22 một giao thức khocircng cần NAK
  • rdt22 gửi nhận caacutec mảnh
  • rdt30 caacutec kecircnh với lỗi vagrave mất maacutet
  • rdt30 gửi
  • hagravenh động của rdt30
  • Slide 40
  • Hiệu suất của rdt30
  • rdt30 hoạt động dừng-vagrave-chờ
  • Caacutec giao thức Pipelined
  • Pipelining độ khả dụng tăng
  • Go-Back-N
  • GBN becircn gửi mở rộng FSM
  • GBN becircn nhận mở rộng FSM
  • GBN hoạt động
  • Lặp coacute lựa chọn
  • Lặp coacute lựa chọn caacutec cửa sổ gửi nhận
  • Slide 51
  • Hoạt động của lặp coacute lựa chọn
  • Lặp coacute lựa chọn tigravenh trạng khoacute giải quyết
  • Slide 54
  • TCP Tổng quan RFCs 793 1122 1323 2018 2581
  • TCP cấu truacutec đoạn
  • Caacutec số thứ tự TCP vagrave ACK
  • TCP Round Trip Time vagraveTimeout
  • TCP Round Trip Time vagrave Timeout
  • Viacute dụ đaacutenh giaacute RTT
  • Slide 61
  • TCP truyền dữ liệu tin cậy
  • TCP caacutec sự kiện
  • TCP becircn gửi (đơn giản)
  • TCP caacutec tigravenh huống truyền lại
  • TCP caacutec tigravenh huống truyền lại (tt)
  • TCP sinh ra ACK [RFC 1122 RFC 2581]
  • Truyền lại nhanh
  • Giải thuật truyền lại nhanh
  • Slide 70
  • TCP điều khiển luồng
  • TCP điều khiển luồng caacutech lagravem
  • Slide 73
  • TCP quản lyacute kết nối
  • TCP quản lyacute kết nối (tt)
  • Slide 76
  • Slide 77
  • Slide 78
  • Caacutec nguyecircn lyacute điều khiển tắc nghẽn
  • Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 1
  • Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 2
  • Slide 82
  • Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 3
  • Slide 84
  • Caacutec caacutech tiếp cận đối với điều khiển tắc nghẽn
  • Viacute dụ điều khiển tắc nghẽn ATM ABR
  • Slide 87
  • Slide 88
  • TCP điều khiển tắc nghẽn additive tăng lecircn multiplicative giảm xuống
  • TCP điều khiển tắc nghẽn chi tiết
  • TCP khởi động chậm
  • TCP khởi động chậm (tt)
  • Tinh chế
  • Tinh chế nhận biết mất maacutet
  • Tổng kết TCP điều khiển tắc nghẽn
  • TCP điều khiển tắc nghẽn becircn gửi
  • TCP throughput
  • TCP tương lai
  • TCP tiacutenh cocircng bằng
  • Tại sao phải TCP cocircng bằng
  • TCP tiacutenh cocircng bằng (tt)
  • Mocirc higravenh trễ
  • Cửa sổ tắc nghẽn cố định (1)
  • Cửa sổ tắc nghẽn cố định (2)
  • TCP Mocirc higravenh trễ Khởi động chậm (1)
  • TCP Mocirc higravenh trễ Khởi động chậm (2)
  • TCP Mocirc higravenh trễ(3)
  • TCP Mocirc higravenh trễ (4)
  • HTTP Mocirc higravenh
  • Slide 110
  • Slide 111
  • Chương 3 Tổng kết

Transport Layer 3-24

Truyền dữ liệu tin cậy

sendside

receiveside

rdt_send() được gọi bởi lớp app Chuyển dữ liệu cần truyền

đến lớp cao hơn becircn nhận

udt_send() được gọi bởi rdt để truyền caacutec goacutei trecircn kecircnh khocircng tin cậy đến nơi

nhận

rdt_rcv() được gọi khi goacutei đến kecircnh becircn nhận

deliver_data() được gọi bởi rdt để truyền dữ liệu

đến lớp cao hơn

Transport Layer 3-25

Truyền dữ liệu tin cậy

Sẽ chỉ xem xeacutet truyền dữ liệu theo 1 hướng duy

nhất nhưng điều khiển luồng thocircng tin sẽ theo cả 2

chiều

dugraveng maacutey trạng thaacutei hữu hạn (finite state machines-FSM) để xaacutec định người gửi người nhận

trthaacutei1

trthaacutei2

sự kiện gacircy ra trạng thaacutei truyềncaacutec hagravenh động xảy ra khi truyền

trạng thaacutei khi ở ldquotrạng thaacuteirdquo nagravey thigrave

trạng thaacutei kế tiếp duy nhất được xaacutec định bởi sự kiện kế

tiếp

sự kiệncaacutec hagravenh động

Transport Layer 3-26

Rdt10 truyền dữ liệu tin cậy trecircn 1 kecircnh truyền tin cậy

kecircnh ưu tiecircn tin cậy hoagraven toagraven khocircng coacute caacutec lỗi khocircng mất maacutet caacutec goacutei

caacutec FSM phacircn biệt cho người gửi người nhận người gửi gửi dữ liệu vagraveo kecircnh ưu tiecircn người nhận nhận dữ liệu từ kecircnh ưu tiecircn

chờ gọi từ lớp trecircn packet = make_pkt(data)

udt_send(packet)

rdt_send(data)

extract (packetdata)deliver_data(data)

chờ gọi từ lớp dưới

rdt_rcv(packet)

người gửi người nhận

Transport Layer 3-27

Rdt20 kecircnh với caacutec lỗi

kecircnh ưu tiecircn coacute thể bật lecircn một số bit trong goacutei checksum để kiểm tra caacutec lỗi

Hỏi lagravem sao khocirci phục caacutec lỗi acknowledgements (ACKs) becircn nhận rotilde ragraveng thocircng

baacuteo cho becircn gửi rằng quaacute trigravenh nhận goacutei tốt negative acknowledgements (NAKs) becircn nhận rotilde ragraveng

thocircng baacuteo cho becircn gửi rằng quaacute trigravenh nhận goacutei coacute lỗi người gửi gửi lại goacutei nagraveo được xaacutec nhận lagrave NAK

caacutec cơ chế mới trong rdt20 (sau rdt10) kiểm tra lỗi nhận phản hồi caacutec thocircng điệp điều khiển (ACKNAK)

becircn nhận becircn gửi

Transport Layer 3-28

rdt20 đặc tả FSM

chờ gọi từ lớp trecircn

snkpkt = make_pkt(data checksum)udt_send(sndpkt)

extract(rcvpktdata)deliver_data(data)udt_send(ACK)

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)

rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp isNAK(rcvpkt)

udt_send(NAK)

rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)

chờ ACK hoặc NAK

chờ gọi từ lớp dưới

người gửi

người nhậnrdt_send(data)

Transport Layer 3-29

rdt20 hoạt động khi khocircng lỗi

chờ gọi từ lớp dưới

snkpkt = make_pkt(data checksum)udt_send(sndpkt)

extract(rcvpktdata)deliver_data(data)udt_send(ACK)

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)

rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp isNAK(rcvpkt)

udt_send(NAK)

rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)

chờ ACK hoặc NAK

chờ gọi từ lớp dưới

rdt_send(data)

Transport Layer 3-30

rdt20 hoạt động khi coacute lỗi

chờ gọi từ lớp dưới

snkpkt = make_pkt(data checksum)udt_send(sndpkt)

extract(rcvpktdata)deliver_data(data)udt_send(ACK)

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)

rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp isNAK(rcvpkt)

udt_send(NAK)

rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)

chờ ACK hoặc NAK

chờ gọi từ lớp dưới

rdt_send(data)

Transport Layer 3-31

rdt20 coacute lỗ hổng nghiecircm trọngĐiều gigrave xảy ra nếu

ACKNAK bị hỏng người gửi khocircng biết điều

gigrave đatilde xảy ra tại becircn nhận

khocircng thể đơn phương truyền lại khả năng trugraveng lặp

Quản lyacute trugraveng lặp người gửi truyền lại goacutei

hiện tại nếu ACKNAK bị hỏng

người gửi thecircm số thứ tự vagraveo mỗi goacutei

người nhận hủy (khocircng nhận) goacutei trugraveng lặp

Người gửi gửi 1 goacutei sau đoacute dừng lại chờ phản hồitừ người nhận

dừng vagrave chờ

Transport Layer 3-32

rdt21 người gửi quản lyacute caacutec ACKNAK bị hỏng

chờ gọi 0 từ lớp trecircn

sndpkt = make_pkt(0 data checksum)udt_send(sndpkt)

rdt_send(data)

chờ ACK hoặc NAK

0 udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) ||isNAK(rcvpkt) )

sndpkt = make_pkt(1 data checksum)udt_send(sndpkt)

rdt_send(data)

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) ||isNAK(rcvpkt) )

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt)

chờ gọi 1 từ lớp trecircn

chờ ACK hoặc NAK

1

Transport Layer 3-33

rdt21 người gửi quản lyacute caacutec ACKNAK bị hỏng

chờ 0 từ dưới

sndpkt = make_pkt(NAK chksum)udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp not corrupt(rcvpkt) ampamp has_seq0(rcvpkt)

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp has_seq1(rcvpkt)

extract(rcvpktdata)deliver_data(data)sndpkt = make_pkt(ACK chksum)udt_send(sndpkt)

chờ 1 từ dưới

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp has_seq0(rcvpkt)

extract(rcvpktdata)deliver_data(data)sndpkt = make_pkt(ACK chksum)udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp (corrupt(rcvpkt)

sndpkt = make_pkt(ACK chksum)udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp not corrupt(rcvpkt) ampamp has_seq1(rcvpkt)

rdt_rcv(rcvpkt) ampamp (corrupt(rcvpkt)

sndpkt = make_pkt(ACK chksum)udt_send(sndpkt)

sndpkt = make_pkt(NAK chksum)udt_send(sndpkt)

Transport Layer 3-34

rdt21 thảo luận

người gửi số thứ tự thecircm vagraveo

goacutei chỉ cần hai số thứ tự

(01) lagrave đủ Tại sao phải kiểm tra nếu việc

nhận ACKNAK bị hỏng

số trạng thaacutei tăng lecircn 2 lần trạng thaacutei phải ldquonhớrdquo

goacutei ldquohiện tạirdquo coacute số thứ tự lagrave 0 hay 1

người nhận phải kiểm tra coacute

nhận trugraveng goacutei khocircng trạng thaacutei chỉ rotilde coacute

hay khocircng mong chờ số thứ tự 0 hoặc 1

chuacute yacute người nhận khocircng biết ACKNAK vừa rồi của noacute coacute được người gửi nhận tốt hay khocircng

Transport Layer 3-35

rdt22 một giao thức khocircng cần NAK

chức năng giống như rdt21 chỉ dugraveng caacutec ACK thay cho NAK người nhận gửi ACK cho goacutei vừa

rồi đatilde nhận tốt người nhận phải rotilde ragraveng chegraven số thứ tự của goacutei vừa ACK

trugraveng ACK tại người gửi hậu quả giống như hagravenh động của NAK truyền lại goacutei vừa rồi

Transport Layer 3-36

rdt22 gửi nhận caacutec mảnh

Chờ cho gọi 0 từ

trecircn

sndpkt = make_pkt(0 data checksum)udt_send(sndpkt)

rdt_send(data)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) || isACK(rcvpkt1) )

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt0)

Chờ cho ACK

0

gửi phacircn mảnhFSM

Chờ cho gọi

0 từ dưới

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp has_seq1(rcvpkt)

extract(rcvpktdata)deliver_data(data)sndpkt = make_pkt(ACK1 chksum)udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp (corrupt(rcvpkt) || has_seq1(rcvpkt))

udt_send(sndpkt)

nhận phacircn mảnhFSM

Transport Layer 3-37

rdt30 caacutec kecircnh với lỗi vagrave mất maacutet

Giả định mới kecircnh ưu tiecircn cũng coacute thể lagravem mất caacutec goacutei (dữ liệu hoặc caacutec ACK) checksum số thứ tự

caacutec ACK caacutec việc truyền lại sẽ hỗ trợ nhưng khocircng đủ

Caacutech tiếp cận người gửi chờ ACK trong khoảng thời gian ldquochấp nhận đượcrdquo

truyền lại nếu khocircng nhận ACK trong khoảng thời gian nagravey

nếu goacutei (hoặc ACK) chỉ trễ (khocircng mất) truyền lại sẽ gacircy trugraveng

nhưng dugraveng số thứ tự sẽ giải quyết được

người nhận phải xaacutec định số thứ tự của goacutei vừa gửi ACK

cần bộ định thigrave đếm lugravei

Transport Layer 3-38

rdt30 gửi

sndpkt = make_pkt(0 data checksum)udt_send(sndpkt)start_timer

rdt_send(data)

Chờ cho

ACK 0

rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) ||isACK(rcvpkt1) )

Chờ cho gọi 1 từ trecircn

sndpkt = make_pkt(1 data checksum)udt_send(sndpkt)start_timer

rdt_send(data)

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt0)

rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) ||isACK(rcvpkt0) )

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt1)

stop_timerstop_timer

udt_send(sndpkt)start_timer

timeout

udt_send(sndpkt)start_timer

timeout

rdt_rcv(rcvpkt)

Chờ cho gọi 0 từ trecircn

Chờ cho

ACK 1

rdt_rcv(rcvpkt)

Transport Layer 3-39

hagravenh động của rdt30

Transport Layer 3-40

hagravenh động của rdt30

Transport Layer 3-41

Hiệu suất của rdt30

rdt30 lagravem việc được nhưng đaacutenh giaacute hiệu suất hơi rắc rối viacute dụ liecircn kết 1 Gbps trễ lan truyền giữa hai đầu cuối lagrave 15

ms goacutei 1KB

T truyền = 8kbpkt109 bsec

= 8 microsec

U sender độ khả dụng ndash

U sender

= 008

30008 = 000027

microseconds

L R

RTT + L R =

L (độ dagravei goacutei tiacutenh bằng bits)R (tốc độ truyền bps)

=

goacutei 1KB mỗi 30 msec -gt 33kBs trecircn đường truyền 1 Gbps giao thức network hạn chế việc dugraveng caacutec tagravei nguyecircn vật

lyacute

Transport Layer 3-42

rdt30 hoạt động dừng-vagrave-chờ

goacutei đầu tiecircn đatilde truyền t = 0

gửi nhận

RTT

goacutei cuối cugraveng đatilde truyền t = L R

goacutei đầu tiecircn đatilde đếngoacutei cuối cugraveng đatilde đến gửi ACK

ACK đến gửi goacutei kế tiếp t = RTT + L R

U sender

= 008

30008 = 000027

microseconds

L R

RTT + L R =

Transport Layer 3-43

Caacutec giao thức Pipelined

Pipelining người gửi cho pheacutep gửi nhiều goacutei đồng thời khocircng cần chờ baacuteo nhận được nhoacutem caacutec số thứ tự phải tăng dần phải coacute bộ nhớ đệm tại nơi gửi vagravehoặc nơi nhận

hai dạng phổ biến của caacutec giao thức pipelined go-Back-N Lặp coacute lựa chọn

Transport Layer 3-44

Pipelining độ khả dụng tăng

goacutei đầu tiecircn đatilde truyền t = 0

sender receiver

RTT

goacutei cuối cugraveng đatilde truyền t = L R

goacutei đầu tiecircn đatilde đếngoacutei cuối cugraveng đatilde đến gửi ACK

ACK đến gửi goacuteikế tiếp t = RTT + L R

bit cuối của goacutei thứ 2 đến gửi ACKbit cuối của goacutei thứ 3 đến gửi ACK

U sender

= 024

30008 = 00008

microseconds

3 L R

RTT + L R =

Độ khả dụng tăng lecircngấp 3 lần

Transport Layer 3-45

Go-Back-NBecircn gửi k-bit số thứ tự trong header của goacutei ldquocửa sổrdquo tăng lecircn đến N cho pheacutep gửi caacutec goacutei liecircn tục khocircng cần ACK

ACK(n) ACKs tất cả caacutec goacutei đến chứa số thứ tự n ndash ldquoACK tiacutech lũyrdquo coacute thể nhận caacutec ACK trugraveng lặp (xem becircn nhận)

định thigrave cho mỗi goacutei trecircn đường truyền timeout(n) gửi lại goacutei n vagrave tất cả caacutec goacutei coacute số thứ tự cao

hơn trong cửa sổ

Transport Layer 3-46

GBN becircn gửi mở rộng FSM

chờ start_timerudt_send(sndpkt[base])udt_send(sndpkt[base+1])hellipudt_send(sndpkt[nextseqnum-1])

timeout

rdt_send(data)

if (nextseqnum lt base+N) sndpkt[nextseqnum] = make_pkt(nextseqnumdatachksum) udt_send(sndpkt[nextseqnum]) if (base == nextseqnum) start_timer nextseqnum++ else refuse_data(data)

base = getacknum(rcvpkt)+1If (base == nextseqnum) stop_timer else start_timer

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)

base=1nextseqnum=1

rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)

Transport Layer 3-47

GBN becircn nhận mở rộng FSM

ACK-duy nhất luocircn luocircn gửi ACK cho goacutei đatilde nhận đuacuteng với số thứ tự xếp hạng cao nhất coacute thể sinh ra caacutec ACK trugraveng nhau chỉ cần nhớ expectedseqnum

goacutei khocircng theo thứ tự hủy -gt khocircng nhận vagraveo bộ đệm gửi lại ACK với số thứ tự xếp hạng cao nhất

chờ

udt_send(sndpkt)

default

rdt_rcv(rcvpkt) ampamp notcurrupt(rcvpkt) ampamp hasseqnum(rcvpktexpectedseqnum)

extract(rcvpktdata)deliver_data(data)sndpkt = make_pkt(expectedseqnumACKchksum)udt_send(sndpkt)expectedseqnum++

expectedseqnum=1sndpkt = make_pkt(expectedseqnumACKchksum)

Transport Layer 3-48

GBN hoạt động

Transport Layer 3-49

Lặp coacute lựa chọn

becircn nhận thocircng baacuteo đatilde nhận đuacuteng tất cả từng goacutei một đệm (buffer) caacutec goacutei nếu cần thiết

becircn gửi chỉ gửi lại caacutec goacutei nagraveo khocircng nhận được ACK becircn gửi định thigrave đối với mỗi goacutei khocircng gửi ACK

cửa sổ becircn gửi N số thứ tự liecircn tục hạn chế số thứ tự caacutec goacutei khocircng gửi ACK

Transport Layer 3-50

Lặp coacute lựa chọn caacutec cửa sổ gửi nhận

Transport Layer 3-51

Lặp coacute lựa chọn

dữ liệu từ lớp trecircn nếu số thứ tự kế tiếp sẵn

sagraveng trong cửa sổ gửi goacutei

timeout(n) gửi lại goacutei n taacutei khởi tạo

bộ định thigrave

ACK(n) trong [sendbasesendbase+N]

đaacutenh dấu goacutei n lagrave đatilde nhận nếu goacutei khocircng ACK coacute n

nhỏ nhất dịch chuyển cửa sổ base đến số thứ tự khocircng ACK kế tiếp

Gửigoacutei n trong [rcvbase

rcvbase+N-1]

gửi ACK(n) khocircng thứ tự đệm

(buffer) coacute thứ tự truyền (cũng

truyền caacutec goacutei đatilde đệm coacute thứ tự) dịch chuyển cửa sổ đến goacutei chưa nhận kế tiếp

goacutei n trong [rcvbase-Nrcvbase-1]

ACK(n)

ngược lại lờ đi

Nhận

Transport Layer 3-52

Hoạt động của lặp coacute lựa chọn

Transport Layer 3-53

Lặp coacute lựa chọntigravenh trạng khoacute giải quyếtViacute dụ Số thứ tự 0 1 2 3 Kiacutech thước cửa sổ = 3

becircn nhận khocircng thấy sự khaacutec nhau trong 2 tigravenh huống

chuyển khocircng chiacutenh xaacutec dữ liệu trugraveng lặp như dữ liệu mới trong (a)

Hỏi quan hệ giữa datildey số thứ tự vagrave kiacutech thước cửa sổ

Transport Layer 3-54

Chương 3 Nội dung trigravenh bagravey

31 Caacutec dịch vụ lớp Transport

32 Multiplexing vagrave demultiplexing

33 Vận chuyển khocircng kết nối UDP

34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy

35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối

36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn

37 Điều khiển tắc nghẽn TCP

Transport Layer 3-55

TCP Tổng quan RFCs 793 1122 1323 2018 2581

dữ liệu full duplex luồng dữ liệu đi 2 chiều

trong cugraveng một kết nối MSS maximum

segment size ndash kiacutech thước đoạn tối đa

hướng kết nối bắt tay (trao đổi caacutec

thocircng điệp điều khiển) trạng thaacutei becircn gửi becircn nhận trước khi trao đổi dữ liệu

điều khiển luồng becircn gửi sẽ khocircng lấn aacutet

becircn nhận

point-to-point một becircn gửi một becircn

nhận tin cậy dograveng byte coacute

thứ tự khocircng ldquoranh giới thocircng

điệprdquo kecircnh liecircn lạc

TCP điều khiển luồng vagrave tắc nghẽn thiết lập kiacutech thước cửa sổ

caacutec bộ đệm gửi amp nhận

socketdoor

T C Psend buffer

T C Preceive buffer

socketdoor

segm ent

applicationwrites data

applicationreads data

Transport Layer 3-56

TCP cấu truacutec đoạn

port nguồn port điacutech

32 bits

dữ liệu ứng dụng(độ dagravei thay đổi)

số thứ tự

số ACKcửa sổ nhận

con trỏ URGchecksum

FSRPAUheadlen

notused

Tugravey chọn (độ dagravei thay đổi)

URG dữ liệu khẩn cấp(thường khocircng dugraveng)

ACK ACK hợp lệ

PSH push data now(thường khocircng dugraveng)

RST SYN FINthiết lập kết nối

(caacutec lệnh thiết lậpchia nhỏ)

số byte becircn nhận sẵn sagraveng chấp nhận

đếm bởi số bytecủa dữ liệu

Internetchecksum

(giống UDP)

Transport Layer 3-57

Caacutec số thứ tự TCP vagrave ACKCaacutec số thứ tự

dograveng byte ldquođaacutenh sốrdquo byte đầu tiecircn trong dữ liệu của đoạn

caacutec ACK số thứ tự của byte

kế tiếp được chờ đợi từ phiacutea becircn kia

ACK tiacutech lũyHỏi lagravem thế nagraveo becircn

nhận quản lyacute caacutec đoạn khocircng thứ tự Trả lời TCP khocircng

đề cập tugravey thuộc người hiện thực

Host A Host B

Seq=42 ACK=79 data = lsquoCrsquo

Seq=79 ACK=43 data = lsquoCrsquo

Seq=43 ACK=80

UsernhậplsquoCrsquo

host ACKsnhận phản hồi

lsquoCrsquo

host ACKsbaacuteo nhận

lsquoCrsquo phản hồingược lại lsquoCrsquo

timetigravenh huống telnet đơn giản

Transport Layer 3-58

TCP Round Trip Time vagraveTimeout

Hỏi Lagravem thế nagraveo để thiết lập giaacute trị TCP timeout

dagravei hơn RTT khaacutec với RTT

quaacute ngắn timeout sớm truyền lại khocircng

cần thiết quaacute dagravei phản ứng

chậm đối với việc mất maacutet goacutei

Hỏi Lagravem thế nagraveo để thiết lập RTT

SampleRTT thời gian được đo từ khi truyền đoạn đến khi baacuteo nhận ACK lờ đi việc truyền lại

SampleRTT sẽ thay đổi muốn ước lượng RTT ldquomượt hơnrdquo tiacutenh trung bigravenh một số giaacute

trị đo được gần đoacute khocircng chỉ SampleRTT hiện tại

Transport Layer 3-59

TCP Round Trip Time vagrave Timeout

EstimatedRTT = (1- )EstimatedRTT + SampleRTT

giaacute trị đặc trưng = 0125

Transport Layer 3-60

Viacute dụ đaacutenh giaacute RTTRTT gaiacsumassedu to fantasiaeurecomfr

100

150

200

250

300

350

1 8 15 22 29 36 43 50 57 64 71 78 85 92 99 106

time (seconnds)

RTT

(mill

isec

onds

)

SampleRTT Estimated RTT

Transport Layer 3-61

TCP Round Trip Time vagrave Timeout

Thiết lập timeout EstimtedRTT cộng ldquohệ số dự trữ an toagravenrdquo

sự biến thiecircn lớn trong EstimatedRTT -gt hệ số dự trữ an toagraven lớn hơn ước lượng đầu tiecircn về sự biến thiecircn của SampleRTT từ EstimatedRTT

TimeoutInterval = EstimatedRTT + 4DevRTT

DevRTT = (1-)DevRTT + |SampleRTT-EstimatedRTT|

(tiecircu biểu = 025)

Sau đoacute thiết lập timeout interval

Transport Layer 3-62

TCP truyền dữ liệu tin cậy

TCP tạo dịch vụ rdt trecircn dịch vụ khocircng tin cậy IP

caacutec đoạn Pipelined caacutec ACK tiacutech lũy TCP dugraveng bộ định thigrave

truyền lại đơn

Truyền lại được kiacutech hoạt bởi caacutec sự kiện timeout caacutec ack trugraveng lặp

luacutec đầu khảo saacutet caacutec becircn gửi TCP đơn giản lờ đi caacutec ack trugraveng lặp lờ đi điều khiển luồng

điều khiển tắc nghẽn

Transport Layer 3-63

TCP caacutec sự kiệndữ liệu đatilde nhận từ ứng

dụng tạo đoạn với số thứ

tự của noacute số thứ tự lagrave số theo

byte dữ liệu đầu tiecircn khởi động bộ định thigrave

nếu chưa chạy khoảng thời gian hết

hạn TimeOutInterval

timeout gửi lại đoạn nagraveo gacircy

ra timeout khởi động lại bộ định

thigrave Ack đatilde nhận

cập nhật caacutei gigrave sẽ được ACK

khởi động bộ định thigrave nếu coacute caacutec đoạn cograven chờ

Transport Layer 3-64

TCP becircn gửi(đơn giản)

NextSeqNum = InitialSeqNum SendBase = InitialSeqNum

loop (forever) switch(event)

event data received from application above create TCP segment with sequence number NextSeqNum if (timer currently not running) start timer pass segment to IP NextSeqNum = NextSeqNum + length(data)

event timer timeout retransmit not-yet-acknowledged segment with smallest sequence number start timer

event ACK received with ACK field value of y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer

end of loop forever

Chuacute thiacutechbull SendBase-1 byte vừa được ACK tiacutech lũy Viacute dụbull SendBase-1 = 71y= 73 vigrave thế becircn nhận muốn 73+ y gt SendBase vigrave thế dữ liệu mới được chấp nhận

Transport Layer 3-65

TCP caacutec tigravenh huống truyền lại

Host A

Seq=100 20 bytes data

ACK=100

timetimeout sớm

Host B

Seq=92 8 bytes data

ACK=120

Seq=92 8 bytes data

Seq=

92

tim

eout

ACK=120

Host A

Seq=92 8 bytes data

ACK=100

loss

tim

eout

tigravenh huống mất ACK

Host B

X

Seq=92 8 bytes data

ACK=100

time

Seq=

92

tim

eout

SendBase= 100

SendBase= 120

SendBase= 120

Sendbase= 100

Transport Layer 3-66

TCP caacutec tigravenh huống truyền lại (tt)Host A

Seq=92 8 bytes data

ACK=100

loss

tim

eout

Cumulative ACK scenario

Host B

X

Seq=100 20 bytes data

ACK=120

time

SendBase= 120

Transport Layer 3-67

TCP sinh ra ACK [RFC 1122 RFC 2581]

Sự kiện tại becircn nhận

Đoạn đến với đuacuteng số thứ tự mong muốn Tất cả dữ liệu đếnđatilde được ACK

Đoạn đến với đuacuteng số thứ tự mong muốn Một đoạn khaacutec đangchờ ACK

Caacutec đoạn đến khocircng thứ tựlớn hơn số thứ tự đoạn mong muốnCoacute khoảng trống

Đoạn đếnlấp đầy từng phần hoặc toagraven bộkhoảng trống

TCP becircn nhận hagravenh động

ACK trễ Chờ đến 500mscho đoạn kế tiếp Nếu khocircng coacute đoạnkế tiếp gửi ACK

Gửi ngay một ACK tiacutech lũy chấp nhậncho cả caacutec đoạn theo thứ tự

Gửi ngay ACK trugraveng lặp chỉ thị số thứ tựđoạn của byte kế tiếp đang mong chờ

Gửi ngay ACK với điều kiện lagrave đoạnbắt đầu ngay điểm coacute khoảng trống

Transport Layer 3-68

Truyền lại nhanh

Chu kỳ Time-out thường tương đối dagravei độ trễ dagravei trước khi gửi

lại goacutei đatilde mất

Xaacutec nhận caacutec đoạn đatilde mất bằng caacutec ACK trugraveng lặp becircn gửi thường gửi

nhiều đoạn song song Nếu đoạn bị mất sẽ

xảy ra tigravenh trạng giống như nhiều ACK trugraveng nhau

Nếu becircn gửi nhận 3 ACK của cugraveng một dữ liệu noacute cho lagrave đoạn sau dữ liệu đatilde ACK bị mất Truyền lại nhanh gửi

lại đoạn trước khi bộ định thigrave hết hạn

Transport Layer 3-69

sự kiện ACK đatilde nhận với trường lagrave y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer else increment count of dup ACKs received for y if (count of dup ACKs received for y = 3) resend segment with sequence number y

Giải thuật truyền lại nhanh

một ACK trugraveng lặp cho đoạn đatilde được ACK

Truyền lại nhanh

Transport Layer 3-70

Chương 3 Nội dung trigravenh bagravey

31 Caacutec dịch vụ lớp Transport

32 Multiplexing vagrave demultiplexing

33 Vận chuyển khocircng kết nối UDP

34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy

35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối

36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn

37 Điều khiển tắc nghẽn TCP

Transport Layer 3-71

TCP điều khiển luồng

becircn nhận của kết nối TCP coacute một bộ đệm nhận

dịch vụ so trugraveng tốc độ so trugraveng tốc độ gửi với tốc độ nhận của ứng dụng

tiến trigravenh ứng dụng coacute thể chậm tại luacutec đọc bộ đệm

becircn gửi sẽ khocircng lagravem tragraven bộ đệm vigrave truyền quaacute nhiều vagrave

quaacute nhanh

điều khiển luồng

Transport Layer 3-72

TCP điều khiển luồng caacutech lagravem

(Giả sử becircn nhận TCP loại bỏ caacutec đoạn khocircng coacute thứ tự)

dự phograveng trong bộ đệm= RcvWindow

= RcvBuffer-[LastByteRcvd - LastByteRead]

Becircn nhận thocircng baacuteo khoảng dự trữ nhờ giaacute trị RcvWindow trong caacutec đoạn

Becircn gửi hạn chế dữ liệu khocircng được ACK vagraveo RcvWindow bảo đảm bộ đệm nhận

khocircng tragraven

Transport Layer 3-73

Chương 3 Nội dung trigravenh bagravey

31 Caacutec dịch vụ lớp Transport

32 Multiplexing vagrave demultiplexing

33 Vận chuyển khocircng kết nối UDP

34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy

35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối

36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn

37 Điều khiển tắc nghẽn TCP

Transport Layer 3-74

TCP quản lyacute kết nối

Chuacute yacute Becircn gửi vagrave becircn nhận TCP thiết lập ldquokết nốirdquo trước khi trao đổi dữ liệu

khởi tạo caacutec biến TCP caacutec số thứ tự đoạn thocircng tin caacutec bộ đệm điều

khiển luồng (như RcvWindow)

client người khởi xướng kết nối

Socket clientSocket = new Socket(hostnameport

number) server được tiếp xuacutec bởi

client Socket connectionSocket =

welcomeSocketaccept()

3 phương phaacutep bắt tay

Bước 1 client host gửi đoạnTCP SYN đến server xaacutec định số thứ tự khởi đầu khocircng phải dữ liệu

Bước 2 server host nhận SYN trả lời với đoạn SYNACK

server cấp phaacutet caacutec bộ đệm

xaacutec định số thứ tự khởi đầuBước 3 client nhận SYNACK trả

lời với đoạn ACK (coacute thể chứa dữ liệu)

Transport Layer 3-75

TCP quản lyacute kết nối (tt)

Đoacuteng một kết nối

client đoacuteng socket clientSocketclose()

Bước 1 client gửi đoạn điều khiển TCP FIN đến server

Bước 2 server nhận FIN trả lời với ACK Đoacuteng kết nối gửi FIN

client

FIN

server

ACK

ACK

FIN

đoacuteng

đoacuteng

đatilde đoacutengthời g

ian c

hờ

Transport Layer 3-76

TCP quản lyacute kết nối (tt)

Bước 3 client nhận FIN trả lời với ACK

Trong khoảng ldquothời gian chờrdquo ndash sẽ phản hồi với ACK để nhận caacutec FIN

Bước 4 server nhận ACK Kết nối đatilde đoacuteng

Chuacute yacute với một sửa đổi nhỏ coacute thể quản lyacute nhiều FIN đồng thời

client

FIN

server

ACK

ACK

FIN

đang đoacuteng

đang đoacuteng

đatilde đoacuteng

thời g

ian c

hờ

đatilde đoacuteng

Transport Layer 3-77

TCP quản lyacute kết nối (tt)

chu kỳ sống củaTCP client

chu kỳ sống củaTCP server

Transport Layer 3-78

Chương 3 Nội dung trigravenh bagravey

31 Caacutec dịch vụ lớp Transport

32 Multiplexing vagrave demultiplexing

33 Vận chuyển khocircng kết nối UDP

34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy

35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối

36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn

37 Điều khiển tắc nghẽn TCP

Transport Layer 3-79

Caacutec nguyecircn lyacute điều khiển tắc nghẽn

Tắc nghẽn ldquoquaacute nhiều nguồn gửi quaacute nhanh vagrave quaacute nhiều

dữ liệu đến mạngrdquo khaacutec với điều khiển luồng caacutec biểu hiện

caacutec goacutei bị mất (tragraven bộ đệm tại caacutec router) caacutec độ trễ quaacute dagravei (xếp hagraveng trong bộ đệm

của router) lagrave 1 trong 10 vấn đề nan giải nhất

Transport Layer 3-80

Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 1

2 gửi 2 nhận 1 router caacutec bộ

đệm khocircng giới hạn

khocircng coacute truyền lại

caacutec độ trễ lớn hơn khi tắc nghẽn

năng suất coacute thể đạt tối đa

unlimited shared output link buffers

Host Ain original data

Host B

out

Transport Layer 3-81

Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 2

1 router caacutec bộ đệm coacute giới hạn becircn gửi truyền lại caacutec goacutei đatilde mất

chia sẻ vocirc hạncaacutec bộ đệm ouput

Host A in dữ liệu gốc

Host B

out

in dữ liệu gốc cugraveng với dữ liệu truyền lại

Transport Layer 3-82

Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 2 luocircn luocircn

truyền lại ldquohoagraven toagravenrdquo chỉ khi mất maacutet

truyền lại vigrave trễ (khocircng mất) lagravem cho lớn hơn với cugraveng

in

out

=

in

out

gt

in

out

ldquocaacutec chi phiacuterdquo của tắc nghẽn nhiều việc (truyền lại) caacutec truyền lại khocircng cần thiết liecircn kết nhiều bản sao của

goacutei

R2

R2in

ou

t

b

R2

R2in

ou

t

a

R2

R2in

ou

t

c

R4

R3

Transport Layer 3-83

Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 3 4 người gửi caacutec đường qua nhiều hop timeouttruyền lại

in

Hỏi điều gigrave xảy ra nếu vagrave tăng lecircn

in

chia sẻ vocirc hạncaacutec bộ đệm ouput

Host Ain dữ liệu gốc

Host B

out

in dữ liệu gốc cugraveng với dữ liệu truyền lại

Transport Layer 3-84

Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 3

ldquochi phiacuterdquo khaacutec của tắc nghẽn khi caacutec goacutei bị bỏ bất kỳ ldquokhả năng truyền

upstream dugraveng cho goacutei đoacute sẽ bị latildeng phiacuterdquo

Host A

Host B

o

u

t

Transport Layer 3-85

Caacutec caacutech tiếp cận đối với điều khiển tắc nghẽn

điều khiển tắc nghẽn end-end

khocircng coacute phản hồi rotilde ragraveng từ mạng

tắc nghẽn được suy ra từ việc quan saacutet caacutec hệ thống đầu cuối coacute mất maacutet trễ

tiếp cận được quản lyacute bởi TCP

điều khiển tắc nghẽn coacute sự hỗ trợ của mạng

caacutec router cung cấp phản hồi về caacutec hệ thống đầu cuối 1 bit duy nhất chỉ thị

tắc nghẽn (SNA DECbit TCPIP ECN ATM)

tốc độ sẽ gửi được xaacutec định rotilde ragraveng

2 caacutech

Transport Layer 3-86

Viacute dụ điều khiển tắc nghẽn ATM ABR

ABR tốc độ bit sẵn sagraveng

ldquodịch vụ mềm dẻordquo nếu đường gửi ldquochưa

hếtrdquo becircn gửi sẽ dugraveng

băng thocircng sẵn sagraveng nếu đường gửi tắc

nghẽn becircn gửi điều tiết với

tốc độ tối thiểu

RM (resource management)

gửi bởi becircn gửi rải raacutec với caacutec ocirc dữ liệu

caacutec bit trong ocirc thiết lập bởi caacutec switch bit NI khocircng tăng tốc độ

(tắc nghẽn nhẹ) bit CI tắc nghẽn rotilde rệt

Caacutec ocirc RM được trả về becircn gửi từ becircn nhận với nguyecircn vẹn caacutec bit

Transport Layer 3-87

Viacute dụ điều khiển tắc nghẽn ATM ABR

trường 2-byte ER trong ocirc RM switch đatilde tắc nghẽn coacute thể coacute giaacute trị ER thấp hơn trong ocirc tốc độ gửi do đoacute coacute thể được hỗ trợ tối đa trecircn đường

EFCI bit trong caacutec ocirc dữ liệu được cagravei giaacute trị 1 trong switch đatilde tắc nghẽn nếu ocirc dữ liệu đứng trước ocirc RM coacute cagravei EFCI becircn gửi sẽ cagravei

bit CI trong ocirc RM trả về

Transport Layer 3-88

Chương 3 Nội dung trigravenh bagravey

31 Caacutec dịch vụ lớp Transport

32 Multiplexing vagrave demultiplexing

33 Vận chuyển khocircng kết nối UDP

34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy

35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối

36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn

37 Điều khiển tắc nghẽn TCP

Transport Layer 3-89

TCP điều khiển tắc nghẽn additive tăng lecircn multiplicative giảm xuống

8 Kbytes

16 Kbytes

24 Kbytes

time

congestionwindow

Caacutech tiếp cận tăng tốc độ truyền (kiacutech thước cửa sổ) tigravem khả năng băng thocircng coacute thể cho đến khi coacute mất maacutet xảy ra additive tăng lecircn tăng CongWin bởi 1 MSS

mỗi RTT cho đến khi coacute mất maacutet xảy ra multiplicative giảm xuống bỏ CongWin trong

nửa giai đoạn sau khi mất maacutet

timekiacutech

thư

ớc

cửa

sổ

tắc

nghẽ

n

Tigravem kiếm băng thocircng

Transport Layer 3-90

TCP điều khiển tắc nghẽn chi tiết

becircn gửi hạn chế việc truyền LastByteSent-LastByteAcked

CongWin Cocircng thức

CongWin thay đổi chức năng lagrave nhận biết tắc nghẽn trecircn mạng

Lagravem thế nagraveo becircn gửi nhận biết tắc nghẽn

mất maacutet xảy ra = timeout hoặc 3 ack trugraveng lặp

becircn gửi giảm tốc độ (CongWin) sau khi mất maacutet xảy ra

3 cơ chế AIMD khởi động chậm thận trọng sau khi coacute

caacutec sự kiện timeout

tốc độ = CongWin

RTT Bytess

Transport Layer 3-91

TCP khởi động chậm

Khi kết nối bắt đầu CongWin = 1 MSS Viacute dụ MSS = 500 bytes

amp RTT = 200 ms tốc độ khởi tạo = 20

kbps

băng thocircng sẵn sagraveng coacute thể gtgt MSSRTT mong muốn nhanh

choacuteng tăng tốc lecircn tốc độ coacute thể đaacutep ứng

Khi kết nối bắt đầu tăng tốc lecircn rất nhanh cho đến khi sự cố mất maacutet xảy ra đầu tiecircn

Transport Layer 3-92

TCP khởi động chậm (tt)

Khi kết nối bắt đầu tăng tốc lecircn rất nhanh cho đến khi sự cố mất maacutet xảy ra đầu tiecircn nhacircn đocirci CongWin mỗi

RTT hoagraven thagravenh nhờ tăng CongWin ứng với mỗi ACK đatilde nhận

Tổng kết tốc độ khởi đầu lagrave chậm nhưng sau đoacute tăng tốc rất nhanh

Host A

1 đoạn

RTT

Host B

thời gian

2 đoạn

4 đoạn

Transport Layer 3-93

Tinh chếHỏi Khi nagraveo việc tăng

tốc trở thagravenh tuyến tiacutenh

Trả lời Khi CongWin đạt đến 12 giaacute trị của noacute trước khi timeout

Hiện thực Ngưỡng thay đổi Tại thời điểm coacute sự cố

mất maacutet ngưỡng được cagravei giaacute trị bằng frac12 của CongWin ngay trước đoacute

Transport Layer 3-94

Tinh chế nhận biết mất maacutet

Sau 3 ACK trugraveng lặp CongWin sẽ giảm 12 kiacutech thước cửa sổ

tăng tuyến tiacutenh nhưng sau sự cố

timeout CongWin thay giaacute trị

bằng 1 MSS kiacutech thước cửa sổ

tăng cấp lũy thừa khi đến một ngưỡng

thigrave tăng tuyến tiacutenh

3 ACK trugraveng nhau chỉ ra khả năng truyền của mạng timeout chỉ thị ldquonhiều cảnh baacuteordquo về tigravenh huống tắc nghẽn

Nguyecircn lyacute

Transport Layer 3-95

Tổng kết TCP điều khiển tắc nghẽn

Khi CongWin dưới Threshold becircn gửi đang trong giai đoạn khởi động chậm kiacutech thước cửa sổ tăng nhanh theo cấp lũy thừa

Khi CongWin trecircn Threshold becircn gửi đang trong giai đoạn traacutenh tắc nghẽn kiacutech thước cửa sổ tăng nhanh theo cấp tuyến tiacutenh

Khi coacute 3 ACK trugraveng lặp xảy ra Threshold = CongWin2 vagrave CongWin = Threshold

Khi timeout xảy ra Threshold = CongWin2 vagrave CongWin = 1 MSS

Transport Layer 3-96

TCP điều khiển tắc nghẽn becircn gửi

Trạng thaacutei Sự kiện TCP becircn gửi hagravenh động Diễn giải

Slow Start (SS)-Khởi động chậm

ACK baacuteo nhận cho dữ liệu chưa ACK trước đoacute

CongWin = CongWin + MSS If (CongWin gt Threshold) cagravei đặt trạng thaacutei ldquoTraacutenh tắc nghẽnrdquo

Hậu quả lagravem tăng gấp đocirci CongWin mỗi RTT

CongestionAvoidance (CA) ndashTraacutenh tắc nghẽn

ACK baacuteo nhận cho dữ liệu chưa ACK trước đoacute

CongWin = CongWin+MSS (MSSCongWin)

Additive tăng lecircn lagravem tăng CongWin lecircn 1 MSS mỗi RTT

SS hoặc CA Sự cố mất maacutet xảy ra khi thấy coacute 3 ACK trugraveng lặp

Threshold = CongWin2 CongWin = Thresholdcagravei đặt trạng thaacutei ldquoTraacutenh tắc nghẽnrdquo

Khocirci phục nhanh hiện thực giảm xuống multiplicative CongWin sẽ khocircng giảm xuống dưới 1 MSS

SS hoặc CA Timeout Threshold = CongWin2 CongWin = 1 MSScagravei đặt trạng thaacutei ldquoKhởi động chậmrdquo

Vagraveo chế độ ldquoKhởi động chậmrdquo

SS hoặc CA ACK trugraveng lặp

Đếm ACK tăng lecircn cho đoạn vừa được ACK

CongWin vagrave Threshold khocircng thay đổi

Transport Layer 3-97

TCP throughput

Throughout trung bigravenh của TCP biểu diễn qua kiacutech thước của sổ vagrave RTT Bỏ qua trạng thaacutei ldquoKhởi động chậmrdquo

Cho W lagrave kiacutech thước cửa sổ khi coacute mất maacutet xảy ra

Khi kiacutech thước cửa sổ = W lưu lượng = WRTT

Chỉ ngay sau khi mất maacutet cửa sổ giảm xuống = W2 lưu lượng = W2RTT

throughout trung bigravenh 075 WRTT

Transport Layer 3-98

TCP tương lai

Viacute dụ caacutec đoạn dagravei 1500 byte RTT 100ms lưu lượng 10 Gbps

Kiacutech thước cửa sổ yecircu cầu W = 83333 đoạn trecircn đường truyền

Lưu lượng trong caacutec trường hợp mất maacutet

L = 210-10

Phiecircn bản mới của TCP dagravenh cho nhu cầu tốc độ cao

LRTT

MSS221

Transport Layer 3-99

Mục tiecircu nếu K phiecircn lagravem việc TCP chia sẻ kết nối cổ chai của băng thocircng lagrave R mỗi phiecircn coacute tốc độ trung bigravenh lagrave RK

TCP kết nối 1

router cổ chaikhả năng R

TCP kết nối 2

TCP tiacutenh cocircng bằng

Transport Layer 3-100

Tại sao phải TCP cocircng bằng

2 phiecircn lagravem việc cạnh tranh nhau Additive tăng lưu lượng tăng multiplicative giảm lưu lượng tương xứng

R

R

chia sẻ băng thocircng bằng nhau

Connection 1 throughputConnect

ion 2

th

roughput

traacutenh tắc nghẽn additive tăng lecircnmất maacutet giảm cửa sổ bằng 12

traacutenh tắc nghẽn additive tăng lecircnmất maacutet giảm cửa sổ bằng 12

Transport Layer 3-101

TCP tiacutenh cocircng bằng (tt)

Tiacutenh cocircng bằng amp UDP nhiều ứng dụng

thường khocircng dugraveng TCP khocircng muốn tốc độ bị

điều tiết do điều khiển tắc nghẽn

Thay bằng dugraveng UDP truyền audiovideo với

tốc độ ổn định chịu được mất maacutet

Nghiecircn cứu giao thức thacircn thiện với TCP

Tiacutenh cocircng bằng amp caacutec kết nối TCP song song

khocircng coacute gigrave ngăn cản việc ứng dụng mở caacutec kết nối song song giữa 2 host

Trigravenh duyệt Web lagravem giống như thế

Viacute dụ tốc độ R hỗ trợ 9 kết nối ứng dụng mới yecircu cầu 1

TCP coacute tốc độ R10 ứng dụng mới yecircu cầu 11

TCP coacute tốc độ R2

Transport Layer 3-102

Mocirc higravenh trễ

Hỏi Mất bao lacircu để nhận 1 đối tượng từ Web server sau khi gửi yecircu cầu

Bỏ qua tắc nghẽn trễ bị ảnh hưởng bởi

thiết lập kết nối TCP trễ truyền dữ liệu khởi động chậm

Notation caacutec giả định Giả sử một kết nối giữa

client vagrave server coacute tốc độ R

S MSS (bits) O kiacutech thước đối tượng

(bits) khocircng truyền lại (khocircng

mất maacutet khocircng hỏng)

Kiacutech thước cửa sổ Giả định 1 cửa sổ tắc

nghẽn cố định coacute W đoạn Sau đoacute cửa sổ thay đổi

mocirc higravenh khởi động chậm

Transport Layer 3-103

Cửa sổ tắc nghẽn cố định (1)

Trường hợp đầu tiecircnWSR gt RTT + SR cho

đoạn đầu tiecircn trong cửa sổ trả về trước khi cửa sổ dữ liệu gửi ACK

trễ = 2RTT + OR

Transport Layer 3-104

Cửa sổ tắc nghẽn cố định (2)

Trường hợp thứ hai WSR lt RTT + SR sent

chờ cho ACK sau khi gửi dữ liệu

trễ = 2RTT + OR+ (K-1)[SR + RTT - WSR]

Transport Layer 3-105

TCP Mocirc higravenh trễ Khởi động chậm (1)

Bacircy giờ giả sử kiacutech thước cửa sổ tăng lecircn tugravey theo quaacute trigravenh khởi động chậm

Độ trễ của một đối tượng sẽ lagrave

R

S

R

SRTTP

R

ORTTLatency P )12(2

trong đoacute P lagrave số lần TCP rảnh ở tại server

1min KQP

- trong đoacute Q lagrave số lần server rảnh nếu đối tượng đatilde khởi tạo kiacutech thước

- vagrave K lagrave số lượng cửa sổ bao trugravem đối tượng

Transport Layer 3-106

TCP Mocirc higravenh trễ Khởi động chậm (2)

RTT

initia te TCPconnection

requestobject

first w indow= S R

second w indow= 2S R

third w indow= 4S R

fourth w indow= 8S R

com pletetransm issionobject

delivered

tim e atc lient

tim e atserver

Viacute dụbull OS = 15 đoạnbull K = 4 cửa sổbull Q = 2bull P = minK-1Q = 2

Server rảnh P=2 lần

Caacutec thagravenh phần trễbull 2 RTT dagravenh cho thiết lập kết nối vagrave yecircu cầubull OR để truyền đối tượngbullthời gian server rảnh bởi vigrave khởi động chậm

Server rảnh P = minK-1Q lần

Transport Layer 3-107

TCP Mocirc higravenh trễ(3)

R

S

R

SRTTPRTT

R

O

R

SRTT

R

SRTT

R

O

idleTimeRTTR

O

P

kP

k

P

pp

)12(][2

]2[2

2delay

1

1

1

th window after the timeidle 2 1 kR

SRTT

R

S k

ementacknowledg receivesserver until

segment send tostartsserver when from time RTTR

S

window kth the transmit totime2 1

R

Sk

RTT

initia te TCPconnection

requestobject

first w indow= S R

second w indow= 2S R

third w indow= 4S R

fourth w indow= 8S R

com pletetransm issionobject

delivered

tim e atc lient

tim e atserver

Transport Layer 3-108

TCP Mocirc higravenh trễ (4)

)1(log

)1(logmin

12min

222min

222min

2

2

110

110

S

OS

Okk

S

Ok

SOk

OSSSkK

k

k

k

caacutech tiacutenh toaacuten Q tương tự (xem HW)

K = số lượng cửa sổ bao trugravem đối tượngLagravem thế nagraveo tiacutenh được K

Transport Layer 3-109

HTTP Mocirc higravenh Giả sử trang Web chứa

1 trang HTML (kiacutech thước O bits) M higravenh ảnh (mỗi caacutei kiacutech thướcO bits)

HTTP khocircng bền vững M+1 TCP kết nối Thời gian đaacutep ứng = (M+1)OR + (M+1)2RTT + tổng số thời

gian rảnh HTTP bền vững

2 RTT để yecircu cầu vagrave nhận file HTML 1 RTT để yecircu cầu vagrave nhận M higravenh ảnh Thời gian đaacutep ứng = (M+1)OR + 3RTT + tổng số thời gian

rảnh HTTP khocircng bền vững với X kết nối song song

Giả sử MX lagrave số nguyecircn 1 TCP kết nối cho file MX thiết lập caacutec kết nối song song cho caacutec higravenh ảnh Thời gian đaacutep ứng = (M+1)OR + (MX + 1)2RTT + tổng số

thời gian rảnh

Transport Layer 3-110

02468

101214161820

28Kbps

100Kbps

1Mbps

10Mbps

non-persistent

persistent

parallel non-persistent

HTTP thời gian đaacutep ứng (giacircy)RTT = 100 msec O = 5 Kbytes M=10 vagrave X=5

Với băng thocircng thấp thời gian kết nối amp đaacutep ứng trội hơn thời gian truyền

Caacutec kết nối bền vững chỉ cho sự cải thiện khocircng đaacuteng kể trecircn caacutec kết nối song song

Transport Layer 3-111

0

10

20

30

40

50

60

70

28Kbps

100Kbps

1Mbps

10Mbps

non-persistent

persistent

parallel non-persistent

HTTP thời gian đaacutep ứng (giacircy)

RTT =1 sec O = 5 Kbytes M=10 and X=5

Với RTT lớn hơn thời gian đaacutep ứng trội hơn thời gian trễ chờ thiết lập kết nốiTCP amp khởi động chậm Caacutec kết nối bền vững bacircy giờ cho thấy cải thiện rotilde rệt đặc biệtvới caacutec mạng băng thocircng cao

Transport Layer 3-112

Chương 3 Tổng kết caacutec nguyecircn lyacute của caacutec

dịch vụ lớp transport multiplexing

demultiplexing truyền dữ liệu tin cậy điều khiển luồng điều khiển tắc nghẽn

khởi tạo vagrave hiện thực trong Internet UDP TCP

Tiếp theo nghiecircn cứu xong

caacutec vấn đề ldquongoagravei biecircnrdquo (caacutec lớp application transport)

chuẩn bị vagraveo phần ldquolotildeirdquo của mạng

  • Slide 1
  • Chương 3 Lớp Transport
  • Chương 3 Nội dung trigravenh bagravey
  • Caacutec dịch vụ vagrave giao thức Transport
  • Lớp Transport với lớp network
  • Caacutec giao thức lớp transport trecircn Internet
  • Slide 7
  • Multiplexingdemultiplexing
  • Demultiplexing lagravem việc như thế nagraveo
  • Demultiplexing khocircng kết nối
  • Demultiplexing khocircng kết nối (tiếp)
  • Demultiplexing hướng kết nối
  • Demultiplexing hướng kết nối (tiếp)
  • Demultiplexing hướng kết nối Threaded Web Server
  • Slide 15
  • UDP User Datagram Protocol [RFC 768]
  • UDP (tt)
  • UDP checksum
  • Viacute dụ Checksum
  • Slide 20
  • Caacutec nguyecircn lyacute truyền dữ liệu tin cậy
  • Slide 22
  • Slide 23
  • Truyền dữ liệu tin cậy
  • Slide 25
  • Rdt10 truyền dữ liệu tin cậy trecircn 1 kecircnh truyền tin cậy
  • Rdt20 kecircnh với caacutec lỗi
  • rdt20 đặc tả FSM
  • rdt20 hoạt động khi khocircng lỗi
  • rdt20 hoạt động khi coacute lỗi
  • rdt20 coacute lỗ hổng nghiecircm trọng
  • rdt21 người gửi quản lyacute caacutec ACKNAK bị hỏng
  • Slide 33
  • rdt21 thảo luận
  • rdt22 một giao thức khocircng cần NAK
  • rdt22 gửi nhận caacutec mảnh
  • rdt30 caacutec kecircnh với lỗi vagrave mất maacutet
  • rdt30 gửi
  • hagravenh động của rdt30
  • Slide 40
  • Hiệu suất của rdt30
  • rdt30 hoạt động dừng-vagrave-chờ
  • Caacutec giao thức Pipelined
  • Pipelining độ khả dụng tăng
  • Go-Back-N
  • GBN becircn gửi mở rộng FSM
  • GBN becircn nhận mở rộng FSM
  • GBN hoạt động
  • Lặp coacute lựa chọn
  • Lặp coacute lựa chọn caacutec cửa sổ gửi nhận
  • Slide 51
  • Hoạt động của lặp coacute lựa chọn
  • Lặp coacute lựa chọn tigravenh trạng khoacute giải quyết
  • Slide 54
  • TCP Tổng quan RFCs 793 1122 1323 2018 2581
  • TCP cấu truacutec đoạn
  • Caacutec số thứ tự TCP vagrave ACK
  • TCP Round Trip Time vagraveTimeout
  • TCP Round Trip Time vagrave Timeout
  • Viacute dụ đaacutenh giaacute RTT
  • Slide 61
  • TCP truyền dữ liệu tin cậy
  • TCP caacutec sự kiện
  • TCP becircn gửi (đơn giản)
  • TCP caacutec tigravenh huống truyền lại
  • TCP caacutec tigravenh huống truyền lại (tt)
  • TCP sinh ra ACK [RFC 1122 RFC 2581]
  • Truyền lại nhanh
  • Giải thuật truyền lại nhanh
  • Slide 70
  • TCP điều khiển luồng
  • TCP điều khiển luồng caacutech lagravem
  • Slide 73
  • TCP quản lyacute kết nối
  • TCP quản lyacute kết nối (tt)
  • Slide 76
  • Slide 77
  • Slide 78
  • Caacutec nguyecircn lyacute điều khiển tắc nghẽn
  • Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 1
  • Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 2
  • Slide 82
  • Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 3
  • Slide 84
  • Caacutec caacutech tiếp cận đối với điều khiển tắc nghẽn
  • Viacute dụ điều khiển tắc nghẽn ATM ABR
  • Slide 87
  • Slide 88
  • TCP điều khiển tắc nghẽn additive tăng lecircn multiplicative giảm xuống
  • TCP điều khiển tắc nghẽn chi tiết
  • TCP khởi động chậm
  • TCP khởi động chậm (tt)
  • Tinh chế
  • Tinh chế nhận biết mất maacutet
  • Tổng kết TCP điều khiển tắc nghẽn
  • TCP điều khiển tắc nghẽn becircn gửi
  • TCP throughput
  • TCP tương lai
  • TCP tiacutenh cocircng bằng
  • Tại sao phải TCP cocircng bằng
  • TCP tiacutenh cocircng bằng (tt)
  • Mocirc higravenh trễ
  • Cửa sổ tắc nghẽn cố định (1)
  • Cửa sổ tắc nghẽn cố định (2)
  • TCP Mocirc higravenh trễ Khởi động chậm (1)
  • TCP Mocirc higravenh trễ Khởi động chậm (2)
  • TCP Mocirc higravenh trễ(3)
  • TCP Mocirc higravenh trễ (4)
  • HTTP Mocirc higravenh
  • Slide 110
  • Slide 111
  • Chương 3 Tổng kết

Transport Layer 3-25

Truyền dữ liệu tin cậy

Sẽ chỉ xem xeacutet truyền dữ liệu theo 1 hướng duy

nhất nhưng điều khiển luồng thocircng tin sẽ theo cả 2

chiều

dugraveng maacutey trạng thaacutei hữu hạn (finite state machines-FSM) để xaacutec định người gửi người nhận

trthaacutei1

trthaacutei2

sự kiện gacircy ra trạng thaacutei truyềncaacutec hagravenh động xảy ra khi truyền

trạng thaacutei khi ở ldquotrạng thaacuteirdquo nagravey thigrave

trạng thaacutei kế tiếp duy nhất được xaacutec định bởi sự kiện kế

tiếp

sự kiệncaacutec hagravenh động

Transport Layer 3-26

Rdt10 truyền dữ liệu tin cậy trecircn 1 kecircnh truyền tin cậy

kecircnh ưu tiecircn tin cậy hoagraven toagraven khocircng coacute caacutec lỗi khocircng mất maacutet caacutec goacutei

caacutec FSM phacircn biệt cho người gửi người nhận người gửi gửi dữ liệu vagraveo kecircnh ưu tiecircn người nhận nhận dữ liệu từ kecircnh ưu tiecircn

chờ gọi từ lớp trecircn packet = make_pkt(data)

udt_send(packet)

rdt_send(data)

extract (packetdata)deliver_data(data)

chờ gọi từ lớp dưới

rdt_rcv(packet)

người gửi người nhận

Transport Layer 3-27

Rdt20 kecircnh với caacutec lỗi

kecircnh ưu tiecircn coacute thể bật lecircn một số bit trong goacutei checksum để kiểm tra caacutec lỗi

Hỏi lagravem sao khocirci phục caacutec lỗi acknowledgements (ACKs) becircn nhận rotilde ragraveng thocircng

baacuteo cho becircn gửi rằng quaacute trigravenh nhận goacutei tốt negative acknowledgements (NAKs) becircn nhận rotilde ragraveng

thocircng baacuteo cho becircn gửi rằng quaacute trigravenh nhận goacutei coacute lỗi người gửi gửi lại goacutei nagraveo được xaacutec nhận lagrave NAK

caacutec cơ chế mới trong rdt20 (sau rdt10) kiểm tra lỗi nhận phản hồi caacutec thocircng điệp điều khiển (ACKNAK)

becircn nhận becircn gửi

Transport Layer 3-28

rdt20 đặc tả FSM

chờ gọi từ lớp trecircn

snkpkt = make_pkt(data checksum)udt_send(sndpkt)

extract(rcvpktdata)deliver_data(data)udt_send(ACK)

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)

rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp isNAK(rcvpkt)

udt_send(NAK)

rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)

chờ ACK hoặc NAK

chờ gọi từ lớp dưới

người gửi

người nhậnrdt_send(data)

Transport Layer 3-29

rdt20 hoạt động khi khocircng lỗi

chờ gọi từ lớp dưới

snkpkt = make_pkt(data checksum)udt_send(sndpkt)

extract(rcvpktdata)deliver_data(data)udt_send(ACK)

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)

rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp isNAK(rcvpkt)

udt_send(NAK)

rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)

chờ ACK hoặc NAK

chờ gọi từ lớp dưới

rdt_send(data)

Transport Layer 3-30

rdt20 hoạt động khi coacute lỗi

chờ gọi từ lớp dưới

snkpkt = make_pkt(data checksum)udt_send(sndpkt)

extract(rcvpktdata)deliver_data(data)udt_send(ACK)

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)

rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp isNAK(rcvpkt)

udt_send(NAK)

rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)

chờ ACK hoặc NAK

chờ gọi từ lớp dưới

rdt_send(data)

Transport Layer 3-31

rdt20 coacute lỗ hổng nghiecircm trọngĐiều gigrave xảy ra nếu

ACKNAK bị hỏng người gửi khocircng biết điều

gigrave đatilde xảy ra tại becircn nhận

khocircng thể đơn phương truyền lại khả năng trugraveng lặp

Quản lyacute trugraveng lặp người gửi truyền lại goacutei

hiện tại nếu ACKNAK bị hỏng

người gửi thecircm số thứ tự vagraveo mỗi goacutei

người nhận hủy (khocircng nhận) goacutei trugraveng lặp

Người gửi gửi 1 goacutei sau đoacute dừng lại chờ phản hồitừ người nhận

dừng vagrave chờ

Transport Layer 3-32

rdt21 người gửi quản lyacute caacutec ACKNAK bị hỏng

chờ gọi 0 từ lớp trecircn

sndpkt = make_pkt(0 data checksum)udt_send(sndpkt)

rdt_send(data)

chờ ACK hoặc NAK

0 udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) ||isNAK(rcvpkt) )

sndpkt = make_pkt(1 data checksum)udt_send(sndpkt)

rdt_send(data)

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) ||isNAK(rcvpkt) )

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt)

chờ gọi 1 từ lớp trecircn

chờ ACK hoặc NAK

1

Transport Layer 3-33

rdt21 người gửi quản lyacute caacutec ACKNAK bị hỏng

chờ 0 từ dưới

sndpkt = make_pkt(NAK chksum)udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp not corrupt(rcvpkt) ampamp has_seq0(rcvpkt)

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp has_seq1(rcvpkt)

extract(rcvpktdata)deliver_data(data)sndpkt = make_pkt(ACK chksum)udt_send(sndpkt)

chờ 1 từ dưới

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp has_seq0(rcvpkt)

extract(rcvpktdata)deliver_data(data)sndpkt = make_pkt(ACK chksum)udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp (corrupt(rcvpkt)

sndpkt = make_pkt(ACK chksum)udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp not corrupt(rcvpkt) ampamp has_seq1(rcvpkt)

rdt_rcv(rcvpkt) ampamp (corrupt(rcvpkt)

sndpkt = make_pkt(ACK chksum)udt_send(sndpkt)

sndpkt = make_pkt(NAK chksum)udt_send(sndpkt)

Transport Layer 3-34

rdt21 thảo luận

người gửi số thứ tự thecircm vagraveo

goacutei chỉ cần hai số thứ tự

(01) lagrave đủ Tại sao phải kiểm tra nếu việc

nhận ACKNAK bị hỏng

số trạng thaacutei tăng lecircn 2 lần trạng thaacutei phải ldquonhớrdquo

goacutei ldquohiện tạirdquo coacute số thứ tự lagrave 0 hay 1

người nhận phải kiểm tra coacute

nhận trugraveng goacutei khocircng trạng thaacutei chỉ rotilde coacute

hay khocircng mong chờ số thứ tự 0 hoặc 1

chuacute yacute người nhận khocircng biết ACKNAK vừa rồi của noacute coacute được người gửi nhận tốt hay khocircng

Transport Layer 3-35

rdt22 một giao thức khocircng cần NAK

chức năng giống như rdt21 chỉ dugraveng caacutec ACK thay cho NAK người nhận gửi ACK cho goacutei vừa

rồi đatilde nhận tốt người nhận phải rotilde ragraveng chegraven số thứ tự của goacutei vừa ACK

trugraveng ACK tại người gửi hậu quả giống như hagravenh động của NAK truyền lại goacutei vừa rồi

Transport Layer 3-36

rdt22 gửi nhận caacutec mảnh

Chờ cho gọi 0 từ

trecircn

sndpkt = make_pkt(0 data checksum)udt_send(sndpkt)

rdt_send(data)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) || isACK(rcvpkt1) )

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt0)

Chờ cho ACK

0

gửi phacircn mảnhFSM

Chờ cho gọi

0 từ dưới

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp has_seq1(rcvpkt)

extract(rcvpktdata)deliver_data(data)sndpkt = make_pkt(ACK1 chksum)udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp (corrupt(rcvpkt) || has_seq1(rcvpkt))

udt_send(sndpkt)

nhận phacircn mảnhFSM

Transport Layer 3-37

rdt30 caacutec kecircnh với lỗi vagrave mất maacutet

Giả định mới kecircnh ưu tiecircn cũng coacute thể lagravem mất caacutec goacutei (dữ liệu hoặc caacutec ACK) checksum số thứ tự

caacutec ACK caacutec việc truyền lại sẽ hỗ trợ nhưng khocircng đủ

Caacutech tiếp cận người gửi chờ ACK trong khoảng thời gian ldquochấp nhận đượcrdquo

truyền lại nếu khocircng nhận ACK trong khoảng thời gian nagravey

nếu goacutei (hoặc ACK) chỉ trễ (khocircng mất) truyền lại sẽ gacircy trugraveng

nhưng dugraveng số thứ tự sẽ giải quyết được

người nhận phải xaacutec định số thứ tự của goacutei vừa gửi ACK

cần bộ định thigrave đếm lugravei

Transport Layer 3-38

rdt30 gửi

sndpkt = make_pkt(0 data checksum)udt_send(sndpkt)start_timer

rdt_send(data)

Chờ cho

ACK 0

rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) ||isACK(rcvpkt1) )

Chờ cho gọi 1 từ trecircn

sndpkt = make_pkt(1 data checksum)udt_send(sndpkt)start_timer

rdt_send(data)

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt0)

rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) ||isACK(rcvpkt0) )

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt1)

stop_timerstop_timer

udt_send(sndpkt)start_timer

timeout

udt_send(sndpkt)start_timer

timeout

rdt_rcv(rcvpkt)

Chờ cho gọi 0 từ trecircn

Chờ cho

ACK 1

rdt_rcv(rcvpkt)

Transport Layer 3-39

hagravenh động của rdt30

Transport Layer 3-40

hagravenh động của rdt30

Transport Layer 3-41

Hiệu suất của rdt30

rdt30 lagravem việc được nhưng đaacutenh giaacute hiệu suất hơi rắc rối viacute dụ liecircn kết 1 Gbps trễ lan truyền giữa hai đầu cuối lagrave 15

ms goacutei 1KB

T truyền = 8kbpkt109 bsec

= 8 microsec

U sender độ khả dụng ndash

U sender

= 008

30008 = 000027

microseconds

L R

RTT + L R =

L (độ dagravei goacutei tiacutenh bằng bits)R (tốc độ truyền bps)

=

goacutei 1KB mỗi 30 msec -gt 33kBs trecircn đường truyền 1 Gbps giao thức network hạn chế việc dugraveng caacutec tagravei nguyecircn vật

lyacute

Transport Layer 3-42

rdt30 hoạt động dừng-vagrave-chờ

goacutei đầu tiecircn đatilde truyền t = 0

gửi nhận

RTT

goacutei cuối cugraveng đatilde truyền t = L R

goacutei đầu tiecircn đatilde đếngoacutei cuối cugraveng đatilde đến gửi ACK

ACK đến gửi goacutei kế tiếp t = RTT + L R

U sender

= 008

30008 = 000027

microseconds

L R

RTT + L R =

Transport Layer 3-43

Caacutec giao thức Pipelined

Pipelining người gửi cho pheacutep gửi nhiều goacutei đồng thời khocircng cần chờ baacuteo nhận được nhoacutem caacutec số thứ tự phải tăng dần phải coacute bộ nhớ đệm tại nơi gửi vagravehoặc nơi nhận

hai dạng phổ biến của caacutec giao thức pipelined go-Back-N Lặp coacute lựa chọn

Transport Layer 3-44

Pipelining độ khả dụng tăng

goacutei đầu tiecircn đatilde truyền t = 0

sender receiver

RTT

goacutei cuối cugraveng đatilde truyền t = L R

goacutei đầu tiecircn đatilde đếngoacutei cuối cugraveng đatilde đến gửi ACK

ACK đến gửi goacuteikế tiếp t = RTT + L R

bit cuối của goacutei thứ 2 đến gửi ACKbit cuối của goacutei thứ 3 đến gửi ACK

U sender

= 024

30008 = 00008

microseconds

3 L R

RTT + L R =

Độ khả dụng tăng lecircngấp 3 lần

Transport Layer 3-45

Go-Back-NBecircn gửi k-bit số thứ tự trong header của goacutei ldquocửa sổrdquo tăng lecircn đến N cho pheacutep gửi caacutec goacutei liecircn tục khocircng cần ACK

ACK(n) ACKs tất cả caacutec goacutei đến chứa số thứ tự n ndash ldquoACK tiacutech lũyrdquo coacute thể nhận caacutec ACK trugraveng lặp (xem becircn nhận)

định thigrave cho mỗi goacutei trecircn đường truyền timeout(n) gửi lại goacutei n vagrave tất cả caacutec goacutei coacute số thứ tự cao

hơn trong cửa sổ

Transport Layer 3-46

GBN becircn gửi mở rộng FSM

chờ start_timerudt_send(sndpkt[base])udt_send(sndpkt[base+1])hellipudt_send(sndpkt[nextseqnum-1])

timeout

rdt_send(data)

if (nextseqnum lt base+N) sndpkt[nextseqnum] = make_pkt(nextseqnumdatachksum) udt_send(sndpkt[nextseqnum]) if (base == nextseqnum) start_timer nextseqnum++ else refuse_data(data)

base = getacknum(rcvpkt)+1If (base == nextseqnum) stop_timer else start_timer

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)

base=1nextseqnum=1

rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)

Transport Layer 3-47

GBN becircn nhận mở rộng FSM

ACK-duy nhất luocircn luocircn gửi ACK cho goacutei đatilde nhận đuacuteng với số thứ tự xếp hạng cao nhất coacute thể sinh ra caacutec ACK trugraveng nhau chỉ cần nhớ expectedseqnum

goacutei khocircng theo thứ tự hủy -gt khocircng nhận vagraveo bộ đệm gửi lại ACK với số thứ tự xếp hạng cao nhất

chờ

udt_send(sndpkt)

default

rdt_rcv(rcvpkt) ampamp notcurrupt(rcvpkt) ampamp hasseqnum(rcvpktexpectedseqnum)

extract(rcvpktdata)deliver_data(data)sndpkt = make_pkt(expectedseqnumACKchksum)udt_send(sndpkt)expectedseqnum++

expectedseqnum=1sndpkt = make_pkt(expectedseqnumACKchksum)

Transport Layer 3-48

GBN hoạt động

Transport Layer 3-49

Lặp coacute lựa chọn

becircn nhận thocircng baacuteo đatilde nhận đuacuteng tất cả từng goacutei một đệm (buffer) caacutec goacutei nếu cần thiết

becircn gửi chỉ gửi lại caacutec goacutei nagraveo khocircng nhận được ACK becircn gửi định thigrave đối với mỗi goacutei khocircng gửi ACK

cửa sổ becircn gửi N số thứ tự liecircn tục hạn chế số thứ tự caacutec goacutei khocircng gửi ACK

Transport Layer 3-50

Lặp coacute lựa chọn caacutec cửa sổ gửi nhận

Transport Layer 3-51

Lặp coacute lựa chọn

dữ liệu từ lớp trecircn nếu số thứ tự kế tiếp sẵn

sagraveng trong cửa sổ gửi goacutei

timeout(n) gửi lại goacutei n taacutei khởi tạo

bộ định thigrave

ACK(n) trong [sendbasesendbase+N]

đaacutenh dấu goacutei n lagrave đatilde nhận nếu goacutei khocircng ACK coacute n

nhỏ nhất dịch chuyển cửa sổ base đến số thứ tự khocircng ACK kế tiếp

Gửigoacutei n trong [rcvbase

rcvbase+N-1]

gửi ACK(n) khocircng thứ tự đệm

(buffer) coacute thứ tự truyền (cũng

truyền caacutec goacutei đatilde đệm coacute thứ tự) dịch chuyển cửa sổ đến goacutei chưa nhận kế tiếp

goacutei n trong [rcvbase-Nrcvbase-1]

ACK(n)

ngược lại lờ đi

Nhận

Transport Layer 3-52

Hoạt động của lặp coacute lựa chọn

Transport Layer 3-53

Lặp coacute lựa chọntigravenh trạng khoacute giải quyếtViacute dụ Số thứ tự 0 1 2 3 Kiacutech thước cửa sổ = 3

becircn nhận khocircng thấy sự khaacutec nhau trong 2 tigravenh huống

chuyển khocircng chiacutenh xaacutec dữ liệu trugraveng lặp như dữ liệu mới trong (a)

Hỏi quan hệ giữa datildey số thứ tự vagrave kiacutech thước cửa sổ

Transport Layer 3-54

Chương 3 Nội dung trigravenh bagravey

31 Caacutec dịch vụ lớp Transport

32 Multiplexing vagrave demultiplexing

33 Vận chuyển khocircng kết nối UDP

34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy

35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối

36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn

37 Điều khiển tắc nghẽn TCP

Transport Layer 3-55

TCP Tổng quan RFCs 793 1122 1323 2018 2581

dữ liệu full duplex luồng dữ liệu đi 2 chiều

trong cugraveng một kết nối MSS maximum

segment size ndash kiacutech thước đoạn tối đa

hướng kết nối bắt tay (trao đổi caacutec

thocircng điệp điều khiển) trạng thaacutei becircn gửi becircn nhận trước khi trao đổi dữ liệu

điều khiển luồng becircn gửi sẽ khocircng lấn aacutet

becircn nhận

point-to-point một becircn gửi một becircn

nhận tin cậy dograveng byte coacute

thứ tự khocircng ldquoranh giới thocircng

điệprdquo kecircnh liecircn lạc

TCP điều khiển luồng vagrave tắc nghẽn thiết lập kiacutech thước cửa sổ

caacutec bộ đệm gửi amp nhận

socketdoor

T C Psend buffer

T C Preceive buffer

socketdoor

segm ent

applicationwrites data

applicationreads data

Transport Layer 3-56

TCP cấu truacutec đoạn

port nguồn port điacutech

32 bits

dữ liệu ứng dụng(độ dagravei thay đổi)

số thứ tự

số ACKcửa sổ nhận

con trỏ URGchecksum

FSRPAUheadlen

notused

Tugravey chọn (độ dagravei thay đổi)

URG dữ liệu khẩn cấp(thường khocircng dugraveng)

ACK ACK hợp lệ

PSH push data now(thường khocircng dugraveng)

RST SYN FINthiết lập kết nối

(caacutec lệnh thiết lậpchia nhỏ)

số byte becircn nhận sẵn sagraveng chấp nhận

đếm bởi số bytecủa dữ liệu

Internetchecksum

(giống UDP)

Transport Layer 3-57

Caacutec số thứ tự TCP vagrave ACKCaacutec số thứ tự

dograveng byte ldquođaacutenh sốrdquo byte đầu tiecircn trong dữ liệu của đoạn

caacutec ACK số thứ tự của byte

kế tiếp được chờ đợi từ phiacutea becircn kia

ACK tiacutech lũyHỏi lagravem thế nagraveo becircn

nhận quản lyacute caacutec đoạn khocircng thứ tự Trả lời TCP khocircng

đề cập tugravey thuộc người hiện thực

Host A Host B

Seq=42 ACK=79 data = lsquoCrsquo

Seq=79 ACK=43 data = lsquoCrsquo

Seq=43 ACK=80

UsernhậplsquoCrsquo

host ACKsnhận phản hồi

lsquoCrsquo

host ACKsbaacuteo nhận

lsquoCrsquo phản hồingược lại lsquoCrsquo

timetigravenh huống telnet đơn giản

Transport Layer 3-58

TCP Round Trip Time vagraveTimeout

Hỏi Lagravem thế nagraveo để thiết lập giaacute trị TCP timeout

dagravei hơn RTT khaacutec với RTT

quaacute ngắn timeout sớm truyền lại khocircng

cần thiết quaacute dagravei phản ứng

chậm đối với việc mất maacutet goacutei

Hỏi Lagravem thế nagraveo để thiết lập RTT

SampleRTT thời gian được đo từ khi truyền đoạn đến khi baacuteo nhận ACK lờ đi việc truyền lại

SampleRTT sẽ thay đổi muốn ước lượng RTT ldquomượt hơnrdquo tiacutenh trung bigravenh một số giaacute

trị đo được gần đoacute khocircng chỉ SampleRTT hiện tại

Transport Layer 3-59

TCP Round Trip Time vagrave Timeout

EstimatedRTT = (1- )EstimatedRTT + SampleRTT

giaacute trị đặc trưng = 0125

Transport Layer 3-60

Viacute dụ đaacutenh giaacute RTTRTT gaiacsumassedu to fantasiaeurecomfr

100

150

200

250

300

350

1 8 15 22 29 36 43 50 57 64 71 78 85 92 99 106

time (seconnds)

RTT

(mill

isec

onds

)

SampleRTT Estimated RTT

Transport Layer 3-61

TCP Round Trip Time vagrave Timeout

Thiết lập timeout EstimtedRTT cộng ldquohệ số dự trữ an toagravenrdquo

sự biến thiecircn lớn trong EstimatedRTT -gt hệ số dự trữ an toagraven lớn hơn ước lượng đầu tiecircn về sự biến thiecircn của SampleRTT từ EstimatedRTT

TimeoutInterval = EstimatedRTT + 4DevRTT

DevRTT = (1-)DevRTT + |SampleRTT-EstimatedRTT|

(tiecircu biểu = 025)

Sau đoacute thiết lập timeout interval

Transport Layer 3-62

TCP truyền dữ liệu tin cậy

TCP tạo dịch vụ rdt trecircn dịch vụ khocircng tin cậy IP

caacutec đoạn Pipelined caacutec ACK tiacutech lũy TCP dugraveng bộ định thigrave

truyền lại đơn

Truyền lại được kiacutech hoạt bởi caacutec sự kiện timeout caacutec ack trugraveng lặp

luacutec đầu khảo saacutet caacutec becircn gửi TCP đơn giản lờ đi caacutec ack trugraveng lặp lờ đi điều khiển luồng

điều khiển tắc nghẽn

Transport Layer 3-63

TCP caacutec sự kiệndữ liệu đatilde nhận từ ứng

dụng tạo đoạn với số thứ

tự của noacute số thứ tự lagrave số theo

byte dữ liệu đầu tiecircn khởi động bộ định thigrave

nếu chưa chạy khoảng thời gian hết

hạn TimeOutInterval

timeout gửi lại đoạn nagraveo gacircy

ra timeout khởi động lại bộ định

thigrave Ack đatilde nhận

cập nhật caacutei gigrave sẽ được ACK

khởi động bộ định thigrave nếu coacute caacutec đoạn cograven chờ

Transport Layer 3-64

TCP becircn gửi(đơn giản)

NextSeqNum = InitialSeqNum SendBase = InitialSeqNum

loop (forever) switch(event)

event data received from application above create TCP segment with sequence number NextSeqNum if (timer currently not running) start timer pass segment to IP NextSeqNum = NextSeqNum + length(data)

event timer timeout retransmit not-yet-acknowledged segment with smallest sequence number start timer

event ACK received with ACK field value of y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer

end of loop forever

Chuacute thiacutechbull SendBase-1 byte vừa được ACK tiacutech lũy Viacute dụbull SendBase-1 = 71y= 73 vigrave thế becircn nhận muốn 73+ y gt SendBase vigrave thế dữ liệu mới được chấp nhận

Transport Layer 3-65

TCP caacutec tigravenh huống truyền lại

Host A

Seq=100 20 bytes data

ACK=100

timetimeout sớm

Host B

Seq=92 8 bytes data

ACK=120

Seq=92 8 bytes data

Seq=

92

tim

eout

ACK=120

Host A

Seq=92 8 bytes data

ACK=100

loss

tim

eout

tigravenh huống mất ACK

Host B

X

Seq=92 8 bytes data

ACK=100

time

Seq=

92

tim

eout

SendBase= 100

SendBase= 120

SendBase= 120

Sendbase= 100

Transport Layer 3-66

TCP caacutec tigravenh huống truyền lại (tt)Host A

Seq=92 8 bytes data

ACK=100

loss

tim

eout

Cumulative ACK scenario

Host B

X

Seq=100 20 bytes data

ACK=120

time

SendBase= 120

Transport Layer 3-67

TCP sinh ra ACK [RFC 1122 RFC 2581]

Sự kiện tại becircn nhận

Đoạn đến với đuacuteng số thứ tự mong muốn Tất cả dữ liệu đếnđatilde được ACK

Đoạn đến với đuacuteng số thứ tự mong muốn Một đoạn khaacutec đangchờ ACK

Caacutec đoạn đến khocircng thứ tựlớn hơn số thứ tự đoạn mong muốnCoacute khoảng trống

Đoạn đếnlấp đầy từng phần hoặc toagraven bộkhoảng trống

TCP becircn nhận hagravenh động

ACK trễ Chờ đến 500mscho đoạn kế tiếp Nếu khocircng coacute đoạnkế tiếp gửi ACK

Gửi ngay một ACK tiacutech lũy chấp nhậncho cả caacutec đoạn theo thứ tự

Gửi ngay ACK trugraveng lặp chỉ thị số thứ tựđoạn của byte kế tiếp đang mong chờ

Gửi ngay ACK với điều kiện lagrave đoạnbắt đầu ngay điểm coacute khoảng trống

Transport Layer 3-68

Truyền lại nhanh

Chu kỳ Time-out thường tương đối dagravei độ trễ dagravei trước khi gửi

lại goacutei đatilde mất

Xaacutec nhận caacutec đoạn đatilde mất bằng caacutec ACK trugraveng lặp becircn gửi thường gửi

nhiều đoạn song song Nếu đoạn bị mất sẽ

xảy ra tigravenh trạng giống như nhiều ACK trugraveng nhau

Nếu becircn gửi nhận 3 ACK của cugraveng một dữ liệu noacute cho lagrave đoạn sau dữ liệu đatilde ACK bị mất Truyền lại nhanh gửi

lại đoạn trước khi bộ định thigrave hết hạn

Transport Layer 3-69

sự kiện ACK đatilde nhận với trường lagrave y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer else increment count of dup ACKs received for y if (count of dup ACKs received for y = 3) resend segment with sequence number y

Giải thuật truyền lại nhanh

một ACK trugraveng lặp cho đoạn đatilde được ACK

Truyền lại nhanh

Transport Layer 3-70

Chương 3 Nội dung trigravenh bagravey

31 Caacutec dịch vụ lớp Transport

32 Multiplexing vagrave demultiplexing

33 Vận chuyển khocircng kết nối UDP

34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy

35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối

36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn

37 Điều khiển tắc nghẽn TCP

Transport Layer 3-71

TCP điều khiển luồng

becircn nhận của kết nối TCP coacute một bộ đệm nhận

dịch vụ so trugraveng tốc độ so trugraveng tốc độ gửi với tốc độ nhận của ứng dụng

tiến trigravenh ứng dụng coacute thể chậm tại luacutec đọc bộ đệm

becircn gửi sẽ khocircng lagravem tragraven bộ đệm vigrave truyền quaacute nhiều vagrave

quaacute nhanh

điều khiển luồng

Transport Layer 3-72

TCP điều khiển luồng caacutech lagravem

(Giả sử becircn nhận TCP loại bỏ caacutec đoạn khocircng coacute thứ tự)

dự phograveng trong bộ đệm= RcvWindow

= RcvBuffer-[LastByteRcvd - LastByteRead]

Becircn nhận thocircng baacuteo khoảng dự trữ nhờ giaacute trị RcvWindow trong caacutec đoạn

Becircn gửi hạn chế dữ liệu khocircng được ACK vagraveo RcvWindow bảo đảm bộ đệm nhận

khocircng tragraven

Transport Layer 3-73

Chương 3 Nội dung trigravenh bagravey

31 Caacutec dịch vụ lớp Transport

32 Multiplexing vagrave demultiplexing

33 Vận chuyển khocircng kết nối UDP

34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy

35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối

36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn

37 Điều khiển tắc nghẽn TCP

Transport Layer 3-74

TCP quản lyacute kết nối

Chuacute yacute Becircn gửi vagrave becircn nhận TCP thiết lập ldquokết nốirdquo trước khi trao đổi dữ liệu

khởi tạo caacutec biến TCP caacutec số thứ tự đoạn thocircng tin caacutec bộ đệm điều

khiển luồng (như RcvWindow)

client người khởi xướng kết nối

Socket clientSocket = new Socket(hostnameport

number) server được tiếp xuacutec bởi

client Socket connectionSocket =

welcomeSocketaccept()

3 phương phaacutep bắt tay

Bước 1 client host gửi đoạnTCP SYN đến server xaacutec định số thứ tự khởi đầu khocircng phải dữ liệu

Bước 2 server host nhận SYN trả lời với đoạn SYNACK

server cấp phaacutet caacutec bộ đệm

xaacutec định số thứ tự khởi đầuBước 3 client nhận SYNACK trả

lời với đoạn ACK (coacute thể chứa dữ liệu)

Transport Layer 3-75

TCP quản lyacute kết nối (tt)

Đoacuteng một kết nối

client đoacuteng socket clientSocketclose()

Bước 1 client gửi đoạn điều khiển TCP FIN đến server

Bước 2 server nhận FIN trả lời với ACK Đoacuteng kết nối gửi FIN

client

FIN

server

ACK

ACK

FIN

đoacuteng

đoacuteng

đatilde đoacutengthời g

ian c

hờ

Transport Layer 3-76

TCP quản lyacute kết nối (tt)

Bước 3 client nhận FIN trả lời với ACK

Trong khoảng ldquothời gian chờrdquo ndash sẽ phản hồi với ACK để nhận caacutec FIN

Bước 4 server nhận ACK Kết nối đatilde đoacuteng

Chuacute yacute với một sửa đổi nhỏ coacute thể quản lyacute nhiều FIN đồng thời

client

FIN

server

ACK

ACK

FIN

đang đoacuteng

đang đoacuteng

đatilde đoacuteng

thời g

ian c

hờ

đatilde đoacuteng

Transport Layer 3-77

TCP quản lyacute kết nối (tt)

chu kỳ sống củaTCP client

chu kỳ sống củaTCP server

Transport Layer 3-78

Chương 3 Nội dung trigravenh bagravey

31 Caacutec dịch vụ lớp Transport

32 Multiplexing vagrave demultiplexing

33 Vận chuyển khocircng kết nối UDP

34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy

35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối

36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn

37 Điều khiển tắc nghẽn TCP

Transport Layer 3-79

Caacutec nguyecircn lyacute điều khiển tắc nghẽn

Tắc nghẽn ldquoquaacute nhiều nguồn gửi quaacute nhanh vagrave quaacute nhiều

dữ liệu đến mạngrdquo khaacutec với điều khiển luồng caacutec biểu hiện

caacutec goacutei bị mất (tragraven bộ đệm tại caacutec router) caacutec độ trễ quaacute dagravei (xếp hagraveng trong bộ đệm

của router) lagrave 1 trong 10 vấn đề nan giải nhất

Transport Layer 3-80

Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 1

2 gửi 2 nhận 1 router caacutec bộ

đệm khocircng giới hạn

khocircng coacute truyền lại

caacutec độ trễ lớn hơn khi tắc nghẽn

năng suất coacute thể đạt tối đa

unlimited shared output link buffers

Host Ain original data

Host B

out

Transport Layer 3-81

Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 2

1 router caacutec bộ đệm coacute giới hạn becircn gửi truyền lại caacutec goacutei đatilde mất

chia sẻ vocirc hạncaacutec bộ đệm ouput

Host A in dữ liệu gốc

Host B

out

in dữ liệu gốc cugraveng với dữ liệu truyền lại

Transport Layer 3-82

Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 2 luocircn luocircn

truyền lại ldquohoagraven toagravenrdquo chỉ khi mất maacutet

truyền lại vigrave trễ (khocircng mất) lagravem cho lớn hơn với cugraveng

in

out

=

in

out

gt

in

out

ldquocaacutec chi phiacuterdquo của tắc nghẽn nhiều việc (truyền lại) caacutec truyền lại khocircng cần thiết liecircn kết nhiều bản sao của

goacutei

R2

R2in

ou

t

b

R2

R2in

ou

t

a

R2

R2in

ou

t

c

R4

R3

Transport Layer 3-83

Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 3 4 người gửi caacutec đường qua nhiều hop timeouttruyền lại

in

Hỏi điều gigrave xảy ra nếu vagrave tăng lecircn

in

chia sẻ vocirc hạncaacutec bộ đệm ouput

Host Ain dữ liệu gốc

Host B

out

in dữ liệu gốc cugraveng với dữ liệu truyền lại

Transport Layer 3-84

Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 3

ldquochi phiacuterdquo khaacutec của tắc nghẽn khi caacutec goacutei bị bỏ bất kỳ ldquokhả năng truyền

upstream dugraveng cho goacutei đoacute sẽ bị latildeng phiacuterdquo

Host A

Host B

o

u

t

Transport Layer 3-85

Caacutec caacutech tiếp cận đối với điều khiển tắc nghẽn

điều khiển tắc nghẽn end-end

khocircng coacute phản hồi rotilde ragraveng từ mạng

tắc nghẽn được suy ra từ việc quan saacutet caacutec hệ thống đầu cuối coacute mất maacutet trễ

tiếp cận được quản lyacute bởi TCP

điều khiển tắc nghẽn coacute sự hỗ trợ của mạng

caacutec router cung cấp phản hồi về caacutec hệ thống đầu cuối 1 bit duy nhất chỉ thị

tắc nghẽn (SNA DECbit TCPIP ECN ATM)

tốc độ sẽ gửi được xaacutec định rotilde ragraveng

2 caacutech

Transport Layer 3-86

Viacute dụ điều khiển tắc nghẽn ATM ABR

ABR tốc độ bit sẵn sagraveng

ldquodịch vụ mềm dẻordquo nếu đường gửi ldquochưa

hếtrdquo becircn gửi sẽ dugraveng

băng thocircng sẵn sagraveng nếu đường gửi tắc

nghẽn becircn gửi điều tiết với

tốc độ tối thiểu

RM (resource management)

gửi bởi becircn gửi rải raacutec với caacutec ocirc dữ liệu

caacutec bit trong ocirc thiết lập bởi caacutec switch bit NI khocircng tăng tốc độ

(tắc nghẽn nhẹ) bit CI tắc nghẽn rotilde rệt

Caacutec ocirc RM được trả về becircn gửi từ becircn nhận với nguyecircn vẹn caacutec bit

Transport Layer 3-87

Viacute dụ điều khiển tắc nghẽn ATM ABR

trường 2-byte ER trong ocirc RM switch đatilde tắc nghẽn coacute thể coacute giaacute trị ER thấp hơn trong ocirc tốc độ gửi do đoacute coacute thể được hỗ trợ tối đa trecircn đường

EFCI bit trong caacutec ocirc dữ liệu được cagravei giaacute trị 1 trong switch đatilde tắc nghẽn nếu ocirc dữ liệu đứng trước ocirc RM coacute cagravei EFCI becircn gửi sẽ cagravei

bit CI trong ocirc RM trả về

Transport Layer 3-88

Chương 3 Nội dung trigravenh bagravey

31 Caacutec dịch vụ lớp Transport

32 Multiplexing vagrave demultiplexing

33 Vận chuyển khocircng kết nối UDP

34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy

35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối

36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn

37 Điều khiển tắc nghẽn TCP

Transport Layer 3-89

TCP điều khiển tắc nghẽn additive tăng lecircn multiplicative giảm xuống

8 Kbytes

16 Kbytes

24 Kbytes

time

congestionwindow

Caacutech tiếp cận tăng tốc độ truyền (kiacutech thước cửa sổ) tigravem khả năng băng thocircng coacute thể cho đến khi coacute mất maacutet xảy ra additive tăng lecircn tăng CongWin bởi 1 MSS

mỗi RTT cho đến khi coacute mất maacutet xảy ra multiplicative giảm xuống bỏ CongWin trong

nửa giai đoạn sau khi mất maacutet

timekiacutech

thư

ớc

cửa

sổ

tắc

nghẽ

n

Tigravem kiếm băng thocircng

Transport Layer 3-90

TCP điều khiển tắc nghẽn chi tiết

becircn gửi hạn chế việc truyền LastByteSent-LastByteAcked

CongWin Cocircng thức

CongWin thay đổi chức năng lagrave nhận biết tắc nghẽn trecircn mạng

Lagravem thế nagraveo becircn gửi nhận biết tắc nghẽn

mất maacutet xảy ra = timeout hoặc 3 ack trugraveng lặp

becircn gửi giảm tốc độ (CongWin) sau khi mất maacutet xảy ra

3 cơ chế AIMD khởi động chậm thận trọng sau khi coacute

caacutec sự kiện timeout

tốc độ = CongWin

RTT Bytess

Transport Layer 3-91

TCP khởi động chậm

Khi kết nối bắt đầu CongWin = 1 MSS Viacute dụ MSS = 500 bytes

amp RTT = 200 ms tốc độ khởi tạo = 20

kbps

băng thocircng sẵn sagraveng coacute thể gtgt MSSRTT mong muốn nhanh

choacuteng tăng tốc lecircn tốc độ coacute thể đaacutep ứng

Khi kết nối bắt đầu tăng tốc lecircn rất nhanh cho đến khi sự cố mất maacutet xảy ra đầu tiecircn

Transport Layer 3-92

TCP khởi động chậm (tt)

Khi kết nối bắt đầu tăng tốc lecircn rất nhanh cho đến khi sự cố mất maacutet xảy ra đầu tiecircn nhacircn đocirci CongWin mỗi

RTT hoagraven thagravenh nhờ tăng CongWin ứng với mỗi ACK đatilde nhận

Tổng kết tốc độ khởi đầu lagrave chậm nhưng sau đoacute tăng tốc rất nhanh

Host A

1 đoạn

RTT

Host B

thời gian

2 đoạn

4 đoạn

Transport Layer 3-93

Tinh chếHỏi Khi nagraveo việc tăng

tốc trở thagravenh tuyến tiacutenh

Trả lời Khi CongWin đạt đến 12 giaacute trị của noacute trước khi timeout

Hiện thực Ngưỡng thay đổi Tại thời điểm coacute sự cố

mất maacutet ngưỡng được cagravei giaacute trị bằng frac12 của CongWin ngay trước đoacute

Transport Layer 3-94

Tinh chế nhận biết mất maacutet

Sau 3 ACK trugraveng lặp CongWin sẽ giảm 12 kiacutech thước cửa sổ

tăng tuyến tiacutenh nhưng sau sự cố

timeout CongWin thay giaacute trị

bằng 1 MSS kiacutech thước cửa sổ

tăng cấp lũy thừa khi đến một ngưỡng

thigrave tăng tuyến tiacutenh

3 ACK trugraveng nhau chỉ ra khả năng truyền của mạng timeout chỉ thị ldquonhiều cảnh baacuteordquo về tigravenh huống tắc nghẽn

Nguyecircn lyacute

Transport Layer 3-95

Tổng kết TCP điều khiển tắc nghẽn

Khi CongWin dưới Threshold becircn gửi đang trong giai đoạn khởi động chậm kiacutech thước cửa sổ tăng nhanh theo cấp lũy thừa

Khi CongWin trecircn Threshold becircn gửi đang trong giai đoạn traacutenh tắc nghẽn kiacutech thước cửa sổ tăng nhanh theo cấp tuyến tiacutenh

Khi coacute 3 ACK trugraveng lặp xảy ra Threshold = CongWin2 vagrave CongWin = Threshold

Khi timeout xảy ra Threshold = CongWin2 vagrave CongWin = 1 MSS

Transport Layer 3-96

TCP điều khiển tắc nghẽn becircn gửi

Trạng thaacutei Sự kiện TCP becircn gửi hagravenh động Diễn giải

Slow Start (SS)-Khởi động chậm

ACK baacuteo nhận cho dữ liệu chưa ACK trước đoacute

CongWin = CongWin + MSS If (CongWin gt Threshold) cagravei đặt trạng thaacutei ldquoTraacutenh tắc nghẽnrdquo

Hậu quả lagravem tăng gấp đocirci CongWin mỗi RTT

CongestionAvoidance (CA) ndashTraacutenh tắc nghẽn

ACK baacuteo nhận cho dữ liệu chưa ACK trước đoacute

CongWin = CongWin+MSS (MSSCongWin)

Additive tăng lecircn lagravem tăng CongWin lecircn 1 MSS mỗi RTT

SS hoặc CA Sự cố mất maacutet xảy ra khi thấy coacute 3 ACK trugraveng lặp

Threshold = CongWin2 CongWin = Thresholdcagravei đặt trạng thaacutei ldquoTraacutenh tắc nghẽnrdquo

Khocirci phục nhanh hiện thực giảm xuống multiplicative CongWin sẽ khocircng giảm xuống dưới 1 MSS

SS hoặc CA Timeout Threshold = CongWin2 CongWin = 1 MSScagravei đặt trạng thaacutei ldquoKhởi động chậmrdquo

Vagraveo chế độ ldquoKhởi động chậmrdquo

SS hoặc CA ACK trugraveng lặp

Đếm ACK tăng lecircn cho đoạn vừa được ACK

CongWin vagrave Threshold khocircng thay đổi

Transport Layer 3-97

TCP throughput

Throughout trung bigravenh của TCP biểu diễn qua kiacutech thước của sổ vagrave RTT Bỏ qua trạng thaacutei ldquoKhởi động chậmrdquo

Cho W lagrave kiacutech thước cửa sổ khi coacute mất maacutet xảy ra

Khi kiacutech thước cửa sổ = W lưu lượng = WRTT

Chỉ ngay sau khi mất maacutet cửa sổ giảm xuống = W2 lưu lượng = W2RTT

throughout trung bigravenh 075 WRTT

Transport Layer 3-98

TCP tương lai

Viacute dụ caacutec đoạn dagravei 1500 byte RTT 100ms lưu lượng 10 Gbps

Kiacutech thước cửa sổ yecircu cầu W = 83333 đoạn trecircn đường truyền

Lưu lượng trong caacutec trường hợp mất maacutet

L = 210-10

Phiecircn bản mới của TCP dagravenh cho nhu cầu tốc độ cao

LRTT

MSS221

Transport Layer 3-99

Mục tiecircu nếu K phiecircn lagravem việc TCP chia sẻ kết nối cổ chai của băng thocircng lagrave R mỗi phiecircn coacute tốc độ trung bigravenh lagrave RK

TCP kết nối 1

router cổ chaikhả năng R

TCP kết nối 2

TCP tiacutenh cocircng bằng

Transport Layer 3-100

Tại sao phải TCP cocircng bằng

2 phiecircn lagravem việc cạnh tranh nhau Additive tăng lưu lượng tăng multiplicative giảm lưu lượng tương xứng

R

R

chia sẻ băng thocircng bằng nhau

Connection 1 throughputConnect

ion 2

th

roughput

traacutenh tắc nghẽn additive tăng lecircnmất maacutet giảm cửa sổ bằng 12

traacutenh tắc nghẽn additive tăng lecircnmất maacutet giảm cửa sổ bằng 12

Transport Layer 3-101

TCP tiacutenh cocircng bằng (tt)

Tiacutenh cocircng bằng amp UDP nhiều ứng dụng

thường khocircng dugraveng TCP khocircng muốn tốc độ bị

điều tiết do điều khiển tắc nghẽn

Thay bằng dugraveng UDP truyền audiovideo với

tốc độ ổn định chịu được mất maacutet

Nghiecircn cứu giao thức thacircn thiện với TCP

Tiacutenh cocircng bằng amp caacutec kết nối TCP song song

khocircng coacute gigrave ngăn cản việc ứng dụng mở caacutec kết nối song song giữa 2 host

Trigravenh duyệt Web lagravem giống như thế

Viacute dụ tốc độ R hỗ trợ 9 kết nối ứng dụng mới yecircu cầu 1

TCP coacute tốc độ R10 ứng dụng mới yecircu cầu 11

TCP coacute tốc độ R2

Transport Layer 3-102

Mocirc higravenh trễ

Hỏi Mất bao lacircu để nhận 1 đối tượng từ Web server sau khi gửi yecircu cầu

Bỏ qua tắc nghẽn trễ bị ảnh hưởng bởi

thiết lập kết nối TCP trễ truyền dữ liệu khởi động chậm

Notation caacutec giả định Giả sử một kết nối giữa

client vagrave server coacute tốc độ R

S MSS (bits) O kiacutech thước đối tượng

(bits) khocircng truyền lại (khocircng

mất maacutet khocircng hỏng)

Kiacutech thước cửa sổ Giả định 1 cửa sổ tắc

nghẽn cố định coacute W đoạn Sau đoacute cửa sổ thay đổi

mocirc higravenh khởi động chậm

Transport Layer 3-103

Cửa sổ tắc nghẽn cố định (1)

Trường hợp đầu tiecircnWSR gt RTT + SR cho

đoạn đầu tiecircn trong cửa sổ trả về trước khi cửa sổ dữ liệu gửi ACK

trễ = 2RTT + OR

Transport Layer 3-104

Cửa sổ tắc nghẽn cố định (2)

Trường hợp thứ hai WSR lt RTT + SR sent

chờ cho ACK sau khi gửi dữ liệu

trễ = 2RTT + OR+ (K-1)[SR + RTT - WSR]

Transport Layer 3-105

TCP Mocirc higravenh trễ Khởi động chậm (1)

Bacircy giờ giả sử kiacutech thước cửa sổ tăng lecircn tugravey theo quaacute trigravenh khởi động chậm

Độ trễ của một đối tượng sẽ lagrave

R

S

R

SRTTP

R

ORTTLatency P )12(2

trong đoacute P lagrave số lần TCP rảnh ở tại server

1min KQP

- trong đoacute Q lagrave số lần server rảnh nếu đối tượng đatilde khởi tạo kiacutech thước

- vagrave K lagrave số lượng cửa sổ bao trugravem đối tượng

Transport Layer 3-106

TCP Mocirc higravenh trễ Khởi động chậm (2)

RTT

initia te TCPconnection

requestobject

first w indow= S R

second w indow= 2S R

third w indow= 4S R

fourth w indow= 8S R

com pletetransm issionobject

delivered

tim e atc lient

tim e atserver

Viacute dụbull OS = 15 đoạnbull K = 4 cửa sổbull Q = 2bull P = minK-1Q = 2

Server rảnh P=2 lần

Caacutec thagravenh phần trễbull 2 RTT dagravenh cho thiết lập kết nối vagrave yecircu cầubull OR để truyền đối tượngbullthời gian server rảnh bởi vigrave khởi động chậm

Server rảnh P = minK-1Q lần

Transport Layer 3-107

TCP Mocirc higravenh trễ(3)

R

S

R

SRTTPRTT

R

O

R

SRTT

R

SRTT

R

O

idleTimeRTTR

O

P

kP

k

P

pp

)12(][2

]2[2

2delay

1

1

1

th window after the timeidle 2 1 kR

SRTT

R

S k

ementacknowledg receivesserver until

segment send tostartsserver when from time RTTR

S

window kth the transmit totime2 1

R

Sk

RTT

initia te TCPconnection

requestobject

first w indow= S R

second w indow= 2S R

third w indow= 4S R

fourth w indow= 8S R

com pletetransm issionobject

delivered

tim e atc lient

tim e atserver

Transport Layer 3-108

TCP Mocirc higravenh trễ (4)

)1(log

)1(logmin

12min

222min

222min

2

2

110

110

S

OS

Okk

S

Ok

SOk

OSSSkK

k

k

k

caacutech tiacutenh toaacuten Q tương tự (xem HW)

K = số lượng cửa sổ bao trugravem đối tượngLagravem thế nagraveo tiacutenh được K

Transport Layer 3-109

HTTP Mocirc higravenh Giả sử trang Web chứa

1 trang HTML (kiacutech thước O bits) M higravenh ảnh (mỗi caacutei kiacutech thướcO bits)

HTTP khocircng bền vững M+1 TCP kết nối Thời gian đaacutep ứng = (M+1)OR + (M+1)2RTT + tổng số thời

gian rảnh HTTP bền vững

2 RTT để yecircu cầu vagrave nhận file HTML 1 RTT để yecircu cầu vagrave nhận M higravenh ảnh Thời gian đaacutep ứng = (M+1)OR + 3RTT + tổng số thời gian

rảnh HTTP khocircng bền vững với X kết nối song song

Giả sử MX lagrave số nguyecircn 1 TCP kết nối cho file MX thiết lập caacutec kết nối song song cho caacutec higravenh ảnh Thời gian đaacutep ứng = (M+1)OR + (MX + 1)2RTT + tổng số

thời gian rảnh

Transport Layer 3-110

02468

101214161820

28Kbps

100Kbps

1Mbps

10Mbps

non-persistent

persistent

parallel non-persistent

HTTP thời gian đaacutep ứng (giacircy)RTT = 100 msec O = 5 Kbytes M=10 vagrave X=5

Với băng thocircng thấp thời gian kết nối amp đaacutep ứng trội hơn thời gian truyền

Caacutec kết nối bền vững chỉ cho sự cải thiện khocircng đaacuteng kể trecircn caacutec kết nối song song

Transport Layer 3-111

0

10

20

30

40

50

60

70

28Kbps

100Kbps

1Mbps

10Mbps

non-persistent

persistent

parallel non-persistent

HTTP thời gian đaacutep ứng (giacircy)

RTT =1 sec O = 5 Kbytes M=10 and X=5

Với RTT lớn hơn thời gian đaacutep ứng trội hơn thời gian trễ chờ thiết lập kết nốiTCP amp khởi động chậm Caacutec kết nối bền vững bacircy giờ cho thấy cải thiện rotilde rệt đặc biệtvới caacutec mạng băng thocircng cao

Transport Layer 3-112

Chương 3 Tổng kết caacutec nguyecircn lyacute của caacutec

dịch vụ lớp transport multiplexing

demultiplexing truyền dữ liệu tin cậy điều khiển luồng điều khiển tắc nghẽn

khởi tạo vagrave hiện thực trong Internet UDP TCP

Tiếp theo nghiecircn cứu xong

caacutec vấn đề ldquongoagravei biecircnrdquo (caacutec lớp application transport)

chuẩn bị vagraveo phần ldquolotildeirdquo của mạng

  • Slide 1
  • Chương 3 Lớp Transport
  • Chương 3 Nội dung trigravenh bagravey
  • Caacutec dịch vụ vagrave giao thức Transport
  • Lớp Transport với lớp network
  • Caacutec giao thức lớp transport trecircn Internet
  • Slide 7
  • Multiplexingdemultiplexing
  • Demultiplexing lagravem việc như thế nagraveo
  • Demultiplexing khocircng kết nối
  • Demultiplexing khocircng kết nối (tiếp)
  • Demultiplexing hướng kết nối
  • Demultiplexing hướng kết nối (tiếp)
  • Demultiplexing hướng kết nối Threaded Web Server
  • Slide 15
  • UDP User Datagram Protocol [RFC 768]
  • UDP (tt)
  • UDP checksum
  • Viacute dụ Checksum
  • Slide 20
  • Caacutec nguyecircn lyacute truyền dữ liệu tin cậy
  • Slide 22
  • Slide 23
  • Truyền dữ liệu tin cậy
  • Slide 25
  • Rdt10 truyền dữ liệu tin cậy trecircn 1 kecircnh truyền tin cậy
  • Rdt20 kecircnh với caacutec lỗi
  • rdt20 đặc tả FSM
  • rdt20 hoạt động khi khocircng lỗi
  • rdt20 hoạt động khi coacute lỗi
  • rdt20 coacute lỗ hổng nghiecircm trọng
  • rdt21 người gửi quản lyacute caacutec ACKNAK bị hỏng
  • Slide 33
  • rdt21 thảo luận
  • rdt22 một giao thức khocircng cần NAK
  • rdt22 gửi nhận caacutec mảnh
  • rdt30 caacutec kecircnh với lỗi vagrave mất maacutet
  • rdt30 gửi
  • hagravenh động của rdt30
  • Slide 40
  • Hiệu suất của rdt30
  • rdt30 hoạt động dừng-vagrave-chờ
  • Caacutec giao thức Pipelined
  • Pipelining độ khả dụng tăng
  • Go-Back-N
  • GBN becircn gửi mở rộng FSM
  • GBN becircn nhận mở rộng FSM
  • GBN hoạt động
  • Lặp coacute lựa chọn
  • Lặp coacute lựa chọn caacutec cửa sổ gửi nhận
  • Slide 51
  • Hoạt động của lặp coacute lựa chọn
  • Lặp coacute lựa chọn tigravenh trạng khoacute giải quyết
  • Slide 54
  • TCP Tổng quan RFCs 793 1122 1323 2018 2581
  • TCP cấu truacutec đoạn
  • Caacutec số thứ tự TCP vagrave ACK
  • TCP Round Trip Time vagraveTimeout
  • TCP Round Trip Time vagrave Timeout
  • Viacute dụ đaacutenh giaacute RTT
  • Slide 61
  • TCP truyền dữ liệu tin cậy
  • TCP caacutec sự kiện
  • TCP becircn gửi (đơn giản)
  • TCP caacutec tigravenh huống truyền lại
  • TCP caacutec tigravenh huống truyền lại (tt)
  • TCP sinh ra ACK [RFC 1122 RFC 2581]
  • Truyền lại nhanh
  • Giải thuật truyền lại nhanh
  • Slide 70
  • TCP điều khiển luồng
  • TCP điều khiển luồng caacutech lagravem
  • Slide 73
  • TCP quản lyacute kết nối
  • TCP quản lyacute kết nối (tt)
  • Slide 76
  • Slide 77
  • Slide 78
  • Caacutec nguyecircn lyacute điều khiển tắc nghẽn
  • Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 1
  • Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 2
  • Slide 82
  • Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 3
  • Slide 84
  • Caacutec caacutech tiếp cận đối với điều khiển tắc nghẽn
  • Viacute dụ điều khiển tắc nghẽn ATM ABR
  • Slide 87
  • Slide 88
  • TCP điều khiển tắc nghẽn additive tăng lecircn multiplicative giảm xuống
  • TCP điều khiển tắc nghẽn chi tiết
  • TCP khởi động chậm
  • TCP khởi động chậm (tt)
  • Tinh chế
  • Tinh chế nhận biết mất maacutet
  • Tổng kết TCP điều khiển tắc nghẽn
  • TCP điều khiển tắc nghẽn becircn gửi
  • TCP throughput
  • TCP tương lai
  • TCP tiacutenh cocircng bằng
  • Tại sao phải TCP cocircng bằng
  • TCP tiacutenh cocircng bằng (tt)
  • Mocirc higravenh trễ
  • Cửa sổ tắc nghẽn cố định (1)
  • Cửa sổ tắc nghẽn cố định (2)
  • TCP Mocirc higravenh trễ Khởi động chậm (1)
  • TCP Mocirc higravenh trễ Khởi động chậm (2)
  • TCP Mocirc higravenh trễ(3)
  • TCP Mocirc higravenh trễ (4)
  • HTTP Mocirc higravenh
  • Slide 110
  • Slide 111
  • Chương 3 Tổng kết

Transport Layer 3-26

Rdt10 truyền dữ liệu tin cậy trecircn 1 kecircnh truyền tin cậy

kecircnh ưu tiecircn tin cậy hoagraven toagraven khocircng coacute caacutec lỗi khocircng mất maacutet caacutec goacutei

caacutec FSM phacircn biệt cho người gửi người nhận người gửi gửi dữ liệu vagraveo kecircnh ưu tiecircn người nhận nhận dữ liệu từ kecircnh ưu tiecircn

chờ gọi từ lớp trecircn packet = make_pkt(data)

udt_send(packet)

rdt_send(data)

extract (packetdata)deliver_data(data)

chờ gọi từ lớp dưới

rdt_rcv(packet)

người gửi người nhận

Transport Layer 3-27

Rdt20 kecircnh với caacutec lỗi

kecircnh ưu tiecircn coacute thể bật lecircn một số bit trong goacutei checksum để kiểm tra caacutec lỗi

Hỏi lagravem sao khocirci phục caacutec lỗi acknowledgements (ACKs) becircn nhận rotilde ragraveng thocircng

baacuteo cho becircn gửi rằng quaacute trigravenh nhận goacutei tốt negative acknowledgements (NAKs) becircn nhận rotilde ragraveng

thocircng baacuteo cho becircn gửi rằng quaacute trigravenh nhận goacutei coacute lỗi người gửi gửi lại goacutei nagraveo được xaacutec nhận lagrave NAK

caacutec cơ chế mới trong rdt20 (sau rdt10) kiểm tra lỗi nhận phản hồi caacutec thocircng điệp điều khiển (ACKNAK)

becircn nhận becircn gửi

Transport Layer 3-28

rdt20 đặc tả FSM

chờ gọi từ lớp trecircn

snkpkt = make_pkt(data checksum)udt_send(sndpkt)

extract(rcvpktdata)deliver_data(data)udt_send(ACK)

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)

rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp isNAK(rcvpkt)

udt_send(NAK)

rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)

chờ ACK hoặc NAK

chờ gọi từ lớp dưới

người gửi

người nhậnrdt_send(data)

Transport Layer 3-29

rdt20 hoạt động khi khocircng lỗi

chờ gọi từ lớp dưới

snkpkt = make_pkt(data checksum)udt_send(sndpkt)

extract(rcvpktdata)deliver_data(data)udt_send(ACK)

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)

rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp isNAK(rcvpkt)

udt_send(NAK)

rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)

chờ ACK hoặc NAK

chờ gọi từ lớp dưới

rdt_send(data)

Transport Layer 3-30

rdt20 hoạt động khi coacute lỗi

chờ gọi từ lớp dưới

snkpkt = make_pkt(data checksum)udt_send(sndpkt)

extract(rcvpktdata)deliver_data(data)udt_send(ACK)

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)

rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp isNAK(rcvpkt)

udt_send(NAK)

rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)

chờ ACK hoặc NAK

chờ gọi từ lớp dưới

rdt_send(data)

Transport Layer 3-31

rdt20 coacute lỗ hổng nghiecircm trọngĐiều gigrave xảy ra nếu

ACKNAK bị hỏng người gửi khocircng biết điều

gigrave đatilde xảy ra tại becircn nhận

khocircng thể đơn phương truyền lại khả năng trugraveng lặp

Quản lyacute trugraveng lặp người gửi truyền lại goacutei

hiện tại nếu ACKNAK bị hỏng

người gửi thecircm số thứ tự vagraveo mỗi goacutei

người nhận hủy (khocircng nhận) goacutei trugraveng lặp

Người gửi gửi 1 goacutei sau đoacute dừng lại chờ phản hồitừ người nhận

dừng vagrave chờ

Transport Layer 3-32

rdt21 người gửi quản lyacute caacutec ACKNAK bị hỏng

chờ gọi 0 từ lớp trecircn

sndpkt = make_pkt(0 data checksum)udt_send(sndpkt)

rdt_send(data)

chờ ACK hoặc NAK

0 udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) ||isNAK(rcvpkt) )

sndpkt = make_pkt(1 data checksum)udt_send(sndpkt)

rdt_send(data)

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) ||isNAK(rcvpkt) )

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt)

chờ gọi 1 từ lớp trecircn

chờ ACK hoặc NAK

1

Transport Layer 3-33

rdt21 người gửi quản lyacute caacutec ACKNAK bị hỏng

chờ 0 từ dưới

sndpkt = make_pkt(NAK chksum)udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp not corrupt(rcvpkt) ampamp has_seq0(rcvpkt)

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp has_seq1(rcvpkt)

extract(rcvpktdata)deliver_data(data)sndpkt = make_pkt(ACK chksum)udt_send(sndpkt)

chờ 1 từ dưới

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp has_seq0(rcvpkt)

extract(rcvpktdata)deliver_data(data)sndpkt = make_pkt(ACK chksum)udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp (corrupt(rcvpkt)

sndpkt = make_pkt(ACK chksum)udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp not corrupt(rcvpkt) ampamp has_seq1(rcvpkt)

rdt_rcv(rcvpkt) ampamp (corrupt(rcvpkt)

sndpkt = make_pkt(ACK chksum)udt_send(sndpkt)

sndpkt = make_pkt(NAK chksum)udt_send(sndpkt)

Transport Layer 3-34

rdt21 thảo luận

người gửi số thứ tự thecircm vagraveo

goacutei chỉ cần hai số thứ tự

(01) lagrave đủ Tại sao phải kiểm tra nếu việc

nhận ACKNAK bị hỏng

số trạng thaacutei tăng lecircn 2 lần trạng thaacutei phải ldquonhớrdquo

goacutei ldquohiện tạirdquo coacute số thứ tự lagrave 0 hay 1

người nhận phải kiểm tra coacute

nhận trugraveng goacutei khocircng trạng thaacutei chỉ rotilde coacute

hay khocircng mong chờ số thứ tự 0 hoặc 1

chuacute yacute người nhận khocircng biết ACKNAK vừa rồi của noacute coacute được người gửi nhận tốt hay khocircng

Transport Layer 3-35

rdt22 một giao thức khocircng cần NAK

chức năng giống như rdt21 chỉ dugraveng caacutec ACK thay cho NAK người nhận gửi ACK cho goacutei vừa

rồi đatilde nhận tốt người nhận phải rotilde ragraveng chegraven số thứ tự của goacutei vừa ACK

trugraveng ACK tại người gửi hậu quả giống như hagravenh động của NAK truyền lại goacutei vừa rồi

Transport Layer 3-36

rdt22 gửi nhận caacutec mảnh

Chờ cho gọi 0 từ

trecircn

sndpkt = make_pkt(0 data checksum)udt_send(sndpkt)

rdt_send(data)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) || isACK(rcvpkt1) )

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt0)

Chờ cho ACK

0

gửi phacircn mảnhFSM

Chờ cho gọi

0 từ dưới

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp has_seq1(rcvpkt)

extract(rcvpktdata)deliver_data(data)sndpkt = make_pkt(ACK1 chksum)udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp (corrupt(rcvpkt) || has_seq1(rcvpkt))

udt_send(sndpkt)

nhận phacircn mảnhFSM

Transport Layer 3-37

rdt30 caacutec kecircnh với lỗi vagrave mất maacutet

Giả định mới kecircnh ưu tiecircn cũng coacute thể lagravem mất caacutec goacutei (dữ liệu hoặc caacutec ACK) checksum số thứ tự

caacutec ACK caacutec việc truyền lại sẽ hỗ trợ nhưng khocircng đủ

Caacutech tiếp cận người gửi chờ ACK trong khoảng thời gian ldquochấp nhận đượcrdquo

truyền lại nếu khocircng nhận ACK trong khoảng thời gian nagravey

nếu goacutei (hoặc ACK) chỉ trễ (khocircng mất) truyền lại sẽ gacircy trugraveng

nhưng dugraveng số thứ tự sẽ giải quyết được

người nhận phải xaacutec định số thứ tự của goacutei vừa gửi ACK

cần bộ định thigrave đếm lugravei

Transport Layer 3-38

rdt30 gửi

sndpkt = make_pkt(0 data checksum)udt_send(sndpkt)start_timer

rdt_send(data)

Chờ cho

ACK 0

rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) ||isACK(rcvpkt1) )

Chờ cho gọi 1 từ trecircn

sndpkt = make_pkt(1 data checksum)udt_send(sndpkt)start_timer

rdt_send(data)

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt0)

rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) ||isACK(rcvpkt0) )

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt1)

stop_timerstop_timer

udt_send(sndpkt)start_timer

timeout

udt_send(sndpkt)start_timer

timeout

rdt_rcv(rcvpkt)

Chờ cho gọi 0 từ trecircn

Chờ cho

ACK 1

rdt_rcv(rcvpkt)

Transport Layer 3-39

hagravenh động của rdt30

Transport Layer 3-40

hagravenh động của rdt30

Transport Layer 3-41

Hiệu suất của rdt30

rdt30 lagravem việc được nhưng đaacutenh giaacute hiệu suất hơi rắc rối viacute dụ liecircn kết 1 Gbps trễ lan truyền giữa hai đầu cuối lagrave 15

ms goacutei 1KB

T truyền = 8kbpkt109 bsec

= 8 microsec

U sender độ khả dụng ndash

U sender

= 008

30008 = 000027

microseconds

L R

RTT + L R =

L (độ dagravei goacutei tiacutenh bằng bits)R (tốc độ truyền bps)

=

goacutei 1KB mỗi 30 msec -gt 33kBs trecircn đường truyền 1 Gbps giao thức network hạn chế việc dugraveng caacutec tagravei nguyecircn vật

lyacute

Transport Layer 3-42

rdt30 hoạt động dừng-vagrave-chờ

goacutei đầu tiecircn đatilde truyền t = 0

gửi nhận

RTT

goacutei cuối cugraveng đatilde truyền t = L R

goacutei đầu tiecircn đatilde đếngoacutei cuối cugraveng đatilde đến gửi ACK

ACK đến gửi goacutei kế tiếp t = RTT + L R

U sender

= 008

30008 = 000027

microseconds

L R

RTT + L R =

Transport Layer 3-43

Caacutec giao thức Pipelined

Pipelining người gửi cho pheacutep gửi nhiều goacutei đồng thời khocircng cần chờ baacuteo nhận được nhoacutem caacutec số thứ tự phải tăng dần phải coacute bộ nhớ đệm tại nơi gửi vagravehoặc nơi nhận

hai dạng phổ biến của caacutec giao thức pipelined go-Back-N Lặp coacute lựa chọn

Transport Layer 3-44

Pipelining độ khả dụng tăng

goacutei đầu tiecircn đatilde truyền t = 0

sender receiver

RTT

goacutei cuối cugraveng đatilde truyền t = L R

goacutei đầu tiecircn đatilde đếngoacutei cuối cugraveng đatilde đến gửi ACK

ACK đến gửi goacuteikế tiếp t = RTT + L R

bit cuối của goacutei thứ 2 đến gửi ACKbit cuối của goacutei thứ 3 đến gửi ACK

U sender

= 024

30008 = 00008

microseconds

3 L R

RTT + L R =

Độ khả dụng tăng lecircngấp 3 lần

Transport Layer 3-45

Go-Back-NBecircn gửi k-bit số thứ tự trong header của goacutei ldquocửa sổrdquo tăng lecircn đến N cho pheacutep gửi caacutec goacutei liecircn tục khocircng cần ACK

ACK(n) ACKs tất cả caacutec goacutei đến chứa số thứ tự n ndash ldquoACK tiacutech lũyrdquo coacute thể nhận caacutec ACK trugraveng lặp (xem becircn nhận)

định thigrave cho mỗi goacutei trecircn đường truyền timeout(n) gửi lại goacutei n vagrave tất cả caacutec goacutei coacute số thứ tự cao

hơn trong cửa sổ

Transport Layer 3-46

GBN becircn gửi mở rộng FSM

chờ start_timerudt_send(sndpkt[base])udt_send(sndpkt[base+1])hellipudt_send(sndpkt[nextseqnum-1])

timeout

rdt_send(data)

if (nextseqnum lt base+N) sndpkt[nextseqnum] = make_pkt(nextseqnumdatachksum) udt_send(sndpkt[nextseqnum]) if (base == nextseqnum) start_timer nextseqnum++ else refuse_data(data)

base = getacknum(rcvpkt)+1If (base == nextseqnum) stop_timer else start_timer

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)

base=1nextseqnum=1

rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)

Transport Layer 3-47

GBN becircn nhận mở rộng FSM

ACK-duy nhất luocircn luocircn gửi ACK cho goacutei đatilde nhận đuacuteng với số thứ tự xếp hạng cao nhất coacute thể sinh ra caacutec ACK trugraveng nhau chỉ cần nhớ expectedseqnum

goacutei khocircng theo thứ tự hủy -gt khocircng nhận vagraveo bộ đệm gửi lại ACK với số thứ tự xếp hạng cao nhất

chờ

udt_send(sndpkt)

default

rdt_rcv(rcvpkt) ampamp notcurrupt(rcvpkt) ampamp hasseqnum(rcvpktexpectedseqnum)

extract(rcvpktdata)deliver_data(data)sndpkt = make_pkt(expectedseqnumACKchksum)udt_send(sndpkt)expectedseqnum++

expectedseqnum=1sndpkt = make_pkt(expectedseqnumACKchksum)

Transport Layer 3-48

GBN hoạt động

Transport Layer 3-49

Lặp coacute lựa chọn

becircn nhận thocircng baacuteo đatilde nhận đuacuteng tất cả từng goacutei một đệm (buffer) caacutec goacutei nếu cần thiết

becircn gửi chỉ gửi lại caacutec goacutei nagraveo khocircng nhận được ACK becircn gửi định thigrave đối với mỗi goacutei khocircng gửi ACK

cửa sổ becircn gửi N số thứ tự liecircn tục hạn chế số thứ tự caacutec goacutei khocircng gửi ACK

Transport Layer 3-50

Lặp coacute lựa chọn caacutec cửa sổ gửi nhận

Transport Layer 3-51

Lặp coacute lựa chọn

dữ liệu từ lớp trecircn nếu số thứ tự kế tiếp sẵn

sagraveng trong cửa sổ gửi goacutei

timeout(n) gửi lại goacutei n taacutei khởi tạo

bộ định thigrave

ACK(n) trong [sendbasesendbase+N]

đaacutenh dấu goacutei n lagrave đatilde nhận nếu goacutei khocircng ACK coacute n

nhỏ nhất dịch chuyển cửa sổ base đến số thứ tự khocircng ACK kế tiếp

Gửigoacutei n trong [rcvbase

rcvbase+N-1]

gửi ACK(n) khocircng thứ tự đệm

(buffer) coacute thứ tự truyền (cũng

truyền caacutec goacutei đatilde đệm coacute thứ tự) dịch chuyển cửa sổ đến goacutei chưa nhận kế tiếp

goacutei n trong [rcvbase-Nrcvbase-1]

ACK(n)

ngược lại lờ đi

Nhận

Transport Layer 3-52

Hoạt động của lặp coacute lựa chọn

Transport Layer 3-53

Lặp coacute lựa chọntigravenh trạng khoacute giải quyếtViacute dụ Số thứ tự 0 1 2 3 Kiacutech thước cửa sổ = 3

becircn nhận khocircng thấy sự khaacutec nhau trong 2 tigravenh huống

chuyển khocircng chiacutenh xaacutec dữ liệu trugraveng lặp như dữ liệu mới trong (a)

Hỏi quan hệ giữa datildey số thứ tự vagrave kiacutech thước cửa sổ

Transport Layer 3-54

Chương 3 Nội dung trigravenh bagravey

31 Caacutec dịch vụ lớp Transport

32 Multiplexing vagrave demultiplexing

33 Vận chuyển khocircng kết nối UDP

34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy

35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối

36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn

37 Điều khiển tắc nghẽn TCP

Transport Layer 3-55

TCP Tổng quan RFCs 793 1122 1323 2018 2581

dữ liệu full duplex luồng dữ liệu đi 2 chiều

trong cugraveng một kết nối MSS maximum

segment size ndash kiacutech thước đoạn tối đa

hướng kết nối bắt tay (trao đổi caacutec

thocircng điệp điều khiển) trạng thaacutei becircn gửi becircn nhận trước khi trao đổi dữ liệu

điều khiển luồng becircn gửi sẽ khocircng lấn aacutet

becircn nhận

point-to-point một becircn gửi một becircn

nhận tin cậy dograveng byte coacute

thứ tự khocircng ldquoranh giới thocircng

điệprdquo kecircnh liecircn lạc

TCP điều khiển luồng vagrave tắc nghẽn thiết lập kiacutech thước cửa sổ

caacutec bộ đệm gửi amp nhận

socketdoor

T C Psend buffer

T C Preceive buffer

socketdoor

segm ent

applicationwrites data

applicationreads data

Transport Layer 3-56

TCP cấu truacutec đoạn

port nguồn port điacutech

32 bits

dữ liệu ứng dụng(độ dagravei thay đổi)

số thứ tự

số ACKcửa sổ nhận

con trỏ URGchecksum

FSRPAUheadlen

notused

Tugravey chọn (độ dagravei thay đổi)

URG dữ liệu khẩn cấp(thường khocircng dugraveng)

ACK ACK hợp lệ

PSH push data now(thường khocircng dugraveng)

RST SYN FINthiết lập kết nối

(caacutec lệnh thiết lậpchia nhỏ)

số byte becircn nhận sẵn sagraveng chấp nhận

đếm bởi số bytecủa dữ liệu

Internetchecksum

(giống UDP)

Transport Layer 3-57

Caacutec số thứ tự TCP vagrave ACKCaacutec số thứ tự

dograveng byte ldquođaacutenh sốrdquo byte đầu tiecircn trong dữ liệu của đoạn

caacutec ACK số thứ tự của byte

kế tiếp được chờ đợi từ phiacutea becircn kia

ACK tiacutech lũyHỏi lagravem thế nagraveo becircn

nhận quản lyacute caacutec đoạn khocircng thứ tự Trả lời TCP khocircng

đề cập tugravey thuộc người hiện thực

Host A Host B

Seq=42 ACK=79 data = lsquoCrsquo

Seq=79 ACK=43 data = lsquoCrsquo

Seq=43 ACK=80

UsernhậplsquoCrsquo

host ACKsnhận phản hồi

lsquoCrsquo

host ACKsbaacuteo nhận

lsquoCrsquo phản hồingược lại lsquoCrsquo

timetigravenh huống telnet đơn giản

Transport Layer 3-58

TCP Round Trip Time vagraveTimeout

Hỏi Lagravem thế nagraveo để thiết lập giaacute trị TCP timeout

dagravei hơn RTT khaacutec với RTT

quaacute ngắn timeout sớm truyền lại khocircng

cần thiết quaacute dagravei phản ứng

chậm đối với việc mất maacutet goacutei

Hỏi Lagravem thế nagraveo để thiết lập RTT

SampleRTT thời gian được đo từ khi truyền đoạn đến khi baacuteo nhận ACK lờ đi việc truyền lại

SampleRTT sẽ thay đổi muốn ước lượng RTT ldquomượt hơnrdquo tiacutenh trung bigravenh một số giaacute

trị đo được gần đoacute khocircng chỉ SampleRTT hiện tại

Transport Layer 3-59

TCP Round Trip Time vagrave Timeout

EstimatedRTT = (1- )EstimatedRTT + SampleRTT

giaacute trị đặc trưng = 0125

Transport Layer 3-60

Viacute dụ đaacutenh giaacute RTTRTT gaiacsumassedu to fantasiaeurecomfr

100

150

200

250

300

350

1 8 15 22 29 36 43 50 57 64 71 78 85 92 99 106

time (seconnds)

RTT

(mill

isec

onds

)

SampleRTT Estimated RTT

Transport Layer 3-61

TCP Round Trip Time vagrave Timeout

Thiết lập timeout EstimtedRTT cộng ldquohệ số dự trữ an toagravenrdquo

sự biến thiecircn lớn trong EstimatedRTT -gt hệ số dự trữ an toagraven lớn hơn ước lượng đầu tiecircn về sự biến thiecircn của SampleRTT từ EstimatedRTT

TimeoutInterval = EstimatedRTT + 4DevRTT

DevRTT = (1-)DevRTT + |SampleRTT-EstimatedRTT|

(tiecircu biểu = 025)

Sau đoacute thiết lập timeout interval

Transport Layer 3-62

TCP truyền dữ liệu tin cậy

TCP tạo dịch vụ rdt trecircn dịch vụ khocircng tin cậy IP

caacutec đoạn Pipelined caacutec ACK tiacutech lũy TCP dugraveng bộ định thigrave

truyền lại đơn

Truyền lại được kiacutech hoạt bởi caacutec sự kiện timeout caacutec ack trugraveng lặp

luacutec đầu khảo saacutet caacutec becircn gửi TCP đơn giản lờ đi caacutec ack trugraveng lặp lờ đi điều khiển luồng

điều khiển tắc nghẽn

Transport Layer 3-63

TCP caacutec sự kiệndữ liệu đatilde nhận từ ứng

dụng tạo đoạn với số thứ

tự của noacute số thứ tự lagrave số theo

byte dữ liệu đầu tiecircn khởi động bộ định thigrave

nếu chưa chạy khoảng thời gian hết

hạn TimeOutInterval

timeout gửi lại đoạn nagraveo gacircy

ra timeout khởi động lại bộ định

thigrave Ack đatilde nhận

cập nhật caacutei gigrave sẽ được ACK

khởi động bộ định thigrave nếu coacute caacutec đoạn cograven chờ

Transport Layer 3-64

TCP becircn gửi(đơn giản)

NextSeqNum = InitialSeqNum SendBase = InitialSeqNum

loop (forever) switch(event)

event data received from application above create TCP segment with sequence number NextSeqNum if (timer currently not running) start timer pass segment to IP NextSeqNum = NextSeqNum + length(data)

event timer timeout retransmit not-yet-acknowledged segment with smallest sequence number start timer

event ACK received with ACK field value of y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer

end of loop forever

Chuacute thiacutechbull SendBase-1 byte vừa được ACK tiacutech lũy Viacute dụbull SendBase-1 = 71y= 73 vigrave thế becircn nhận muốn 73+ y gt SendBase vigrave thế dữ liệu mới được chấp nhận

Transport Layer 3-65

TCP caacutec tigravenh huống truyền lại

Host A

Seq=100 20 bytes data

ACK=100

timetimeout sớm

Host B

Seq=92 8 bytes data

ACK=120

Seq=92 8 bytes data

Seq=

92

tim

eout

ACK=120

Host A

Seq=92 8 bytes data

ACK=100

loss

tim

eout

tigravenh huống mất ACK

Host B

X

Seq=92 8 bytes data

ACK=100

time

Seq=

92

tim

eout

SendBase= 100

SendBase= 120

SendBase= 120

Sendbase= 100

Transport Layer 3-66

TCP caacutec tigravenh huống truyền lại (tt)Host A

Seq=92 8 bytes data

ACK=100

loss

tim

eout

Cumulative ACK scenario

Host B

X

Seq=100 20 bytes data

ACK=120

time

SendBase= 120

Transport Layer 3-67

TCP sinh ra ACK [RFC 1122 RFC 2581]

Sự kiện tại becircn nhận

Đoạn đến với đuacuteng số thứ tự mong muốn Tất cả dữ liệu đếnđatilde được ACK

Đoạn đến với đuacuteng số thứ tự mong muốn Một đoạn khaacutec đangchờ ACK

Caacutec đoạn đến khocircng thứ tựlớn hơn số thứ tự đoạn mong muốnCoacute khoảng trống

Đoạn đếnlấp đầy từng phần hoặc toagraven bộkhoảng trống

TCP becircn nhận hagravenh động

ACK trễ Chờ đến 500mscho đoạn kế tiếp Nếu khocircng coacute đoạnkế tiếp gửi ACK

Gửi ngay một ACK tiacutech lũy chấp nhậncho cả caacutec đoạn theo thứ tự

Gửi ngay ACK trugraveng lặp chỉ thị số thứ tựđoạn của byte kế tiếp đang mong chờ

Gửi ngay ACK với điều kiện lagrave đoạnbắt đầu ngay điểm coacute khoảng trống

Transport Layer 3-68

Truyền lại nhanh

Chu kỳ Time-out thường tương đối dagravei độ trễ dagravei trước khi gửi

lại goacutei đatilde mất

Xaacutec nhận caacutec đoạn đatilde mất bằng caacutec ACK trugraveng lặp becircn gửi thường gửi

nhiều đoạn song song Nếu đoạn bị mất sẽ

xảy ra tigravenh trạng giống như nhiều ACK trugraveng nhau

Nếu becircn gửi nhận 3 ACK của cugraveng một dữ liệu noacute cho lagrave đoạn sau dữ liệu đatilde ACK bị mất Truyền lại nhanh gửi

lại đoạn trước khi bộ định thigrave hết hạn

Transport Layer 3-69

sự kiện ACK đatilde nhận với trường lagrave y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer else increment count of dup ACKs received for y if (count of dup ACKs received for y = 3) resend segment with sequence number y

Giải thuật truyền lại nhanh

một ACK trugraveng lặp cho đoạn đatilde được ACK

Truyền lại nhanh

Transport Layer 3-70

Chương 3 Nội dung trigravenh bagravey

31 Caacutec dịch vụ lớp Transport

32 Multiplexing vagrave demultiplexing

33 Vận chuyển khocircng kết nối UDP

34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy

35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối

36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn

37 Điều khiển tắc nghẽn TCP

Transport Layer 3-71

TCP điều khiển luồng

becircn nhận của kết nối TCP coacute một bộ đệm nhận

dịch vụ so trugraveng tốc độ so trugraveng tốc độ gửi với tốc độ nhận của ứng dụng

tiến trigravenh ứng dụng coacute thể chậm tại luacutec đọc bộ đệm

becircn gửi sẽ khocircng lagravem tragraven bộ đệm vigrave truyền quaacute nhiều vagrave

quaacute nhanh

điều khiển luồng

Transport Layer 3-72

TCP điều khiển luồng caacutech lagravem

(Giả sử becircn nhận TCP loại bỏ caacutec đoạn khocircng coacute thứ tự)

dự phograveng trong bộ đệm= RcvWindow

= RcvBuffer-[LastByteRcvd - LastByteRead]

Becircn nhận thocircng baacuteo khoảng dự trữ nhờ giaacute trị RcvWindow trong caacutec đoạn

Becircn gửi hạn chế dữ liệu khocircng được ACK vagraveo RcvWindow bảo đảm bộ đệm nhận

khocircng tragraven

Transport Layer 3-73

Chương 3 Nội dung trigravenh bagravey

31 Caacutec dịch vụ lớp Transport

32 Multiplexing vagrave demultiplexing

33 Vận chuyển khocircng kết nối UDP

34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy

35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối

36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn

37 Điều khiển tắc nghẽn TCP

Transport Layer 3-74

TCP quản lyacute kết nối

Chuacute yacute Becircn gửi vagrave becircn nhận TCP thiết lập ldquokết nốirdquo trước khi trao đổi dữ liệu

khởi tạo caacutec biến TCP caacutec số thứ tự đoạn thocircng tin caacutec bộ đệm điều

khiển luồng (như RcvWindow)

client người khởi xướng kết nối

Socket clientSocket = new Socket(hostnameport

number) server được tiếp xuacutec bởi

client Socket connectionSocket =

welcomeSocketaccept()

3 phương phaacutep bắt tay

Bước 1 client host gửi đoạnTCP SYN đến server xaacutec định số thứ tự khởi đầu khocircng phải dữ liệu

Bước 2 server host nhận SYN trả lời với đoạn SYNACK

server cấp phaacutet caacutec bộ đệm

xaacutec định số thứ tự khởi đầuBước 3 client nhận SYNACK trả

lời với đoạn ACK (coacute thể chứa dữ liệu)

Transport Layer 3-75

TCP quản lyacute kết nối (tt)

Đoacuteng một kết nối

client đoacuteng socket clientSocketclose()

Bước 1 client gửi đoạn điều khiển TCP FIN đến server

Bước 2 server nhận FIN trả lời với ACK Đoacuteng kết nối gửi FIN

client

FIN

server

ACK

ACK

FIN

đoacuteng

đoacuteng

đatilde đoacutengthời g

ian c

hờ

Transport Layer 3-76

TCP quản lyacute kết nối (tt)

Bước 3 client nhận FIN trả lời với ACK

Trong khoảng ldquothời gian chờrdquo ndash sẽ phản hồi với ACK để nhận caacutec FIN

Bước 4 server nhận ACK Kết nối đatilde đoacuteng

Chuacute yacute với một sửa đổi nhỏ coacute thể quản lyacute nhiều FIN đồng thời

client

FIN

server

ACK

ACK

FIN

đang đoacuteng

đang đoacuteng

đatilde đoacuteng

thời g

ian c

hờ

đatilde đoacuteng

Transport Layer 3-77

TCP quản lyacute kết nối (tt)

chu kỳ sống củaTCP client

chu kỳ sống củaTCP server

Transport Layer 3-78

Chương 3 Nội dung trigravenh bagravey

31 Caacutec dịch vụ lớp Transport

32 Multiplexing vagrave demultiplexing

33 Vận chuyển khocircng kết nối UDP

34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy

35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối

36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn

37 Điều khiển tắc nghẽn TCP

Transport Layer 3-79

Caacutec nguyecircn lyacute điều khiển tắc nghẽn

Tắc nghẽn ldquoquaacute nhiều nguồn gửi quaacute nhanh vagrave quaacute nhiều

dữ liệu đến mạngrdquo khaacutec với điều khiển luồng caacutec biểu hiện

caacutec goacutei bị mất (tragraven bộ đệm tại caacutec router) caacutec độ trễ quaacute dagravei (xếp hagraveng trong bộ đệm

của router) lagrave 1 trong 10 vấn đề nan giải nhất

Transport Layer 3-80

Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 1

2 gửi 2 nhận 1 router caacutec bộ

đệm khocircng giới hạn

khocircng coacute truyền lại

caacutec độ trễ lớn hơn khi tắc nghẽn

năng suất coacute thể đạt tối đa

unlimited shared output link buffers

Host Ain original data

Host B

out

Transport Layer 3-81

Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 2

1 router caacutec bộ đệm coacute giới hạn becircn gửi truyền lại caacutec goacutei đatilde mất

chia sẻ vocirc hạncaacutec bộ đệm ouput

Host A in dữ liệu gốc

Host B

out

in dữ liệu gốc cugraveng với dữ liệu truyền lại

Transport Layer 3-82

Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 2 luocircn luocircn

truyền lại ldquohoagraven toagravenrdquo chỉ khi mất maacutet

truyền lại vigrave trễ (khocircng mất) lagravem cho lớn hơn với cugraveng

in

out

=

in

out

gt

in

out

ldquocaacutec chi phiacuterdquo của tắc nghẽn nhiều việc (truyền lại) caacutec truyền lại khocircng cần thiết liecircn kết nhiều bản sao của

goacutei

R2

R2in

ou

t

b

R2

R2in

ou

t

a

R2

R2in

ou

t

c

R4

R3

Transport Layer 3-83

Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 3 4 người gửi caacutec đường qua nhiều hop timeouttruyền lại

in

Hỏi điều gigrave xảy ra nếu vagrave tăng lecircn

in

chia sẻ vocirc hạncaacutec bộ đệm ouput

Host Ain dữ liệu gốc

Host B

out

in dữ liệu gốc cugraveng với dữ liệu truyền lại

Transport Layer 3-84

Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 3

ldquochi phiacuterdquo khaacutec của tắc nghẽn khi caacutec goacutei bị bỏ bất kỳ ldquokhả năng truyền

upstream dugraveng cho goacutei đoacute sẽ bị latildeng phiacuterdquo

Host A

Host B

o

u

t

Transport Layer 3-85

Caacutec caacutech tiếp cận đối với điều khiển tắc nghẽn

điều khiển tắc nghẽn end-end

khocircng coacute phản hồi rotilde ragraveng từ mạng

tắc nghẽn được suy ra từ việc quan saacutet caacutec hệ thống đầu cuối coacute mất maacutet trễ

tiếp cận được quản lyacute bởi TCP

điều khiển tắc nghẽn coacute sự hỗ trợ của mạng

caacutec router cung cấp phản hồi về caacutec hệ thống đầu cuối 1 bit duy nhất chỉ thị

tắc nghẽn (SNA DECbit TCPIP ECN ATM)

tốc độ sẽ gửi được xaacutec định rotilde ragraveng

2 caacutech

Transport Layer 3-86

Viacute dụ điều khiển tắc nghẽn ATM ABR

ABR tốc độ bit sẵn sagraveng

ldquodịch vụ mềm dẻordquo nếu đường gửi ldquochưa

hếtrdquo becircn gửi sẽ dugraveng

băng thocircng sẵn sagraveng nếu đường gửi tắc

nghẽn becircn gửi điều tiết với

tốc độ tối thiểu

RM (resource management)

gửi bởi becircn gửi rải raacutec với caacutec ocirc dữ liệu

caacutec bit trong ocirc thiết lập bởi caacutec switch bit NI khocircng tăng tốc độ

(tắc nghẽn nhẹ) bit CI tắc nghẽn rotilde rệt

Caacutec ocirc RM được trả về becircn gửi từ becircn nhận với nguyecircn vẹn caacutec bit

Transport Layer 3-87

Viacute dụ điều khiển tắc nghẽn ATM ABR

trường 2-byte ER trong ocirc RM switch đatilde tắc nghẽn coacute thể coacute giaacute trị ER thấp hơn trong ocirc tốc độ gửi do đoacute coacute thể được hỗ trợ tối đa trecircn đường

EFCI bit trong caacutec ocirc dữ liệu được cagravei giaacute trị 1 trong switch đatilde tắc nghẽn nếu ocirc dữ liệu đứng trước ocirc RM coacute cagravei EFCI becircn gửi sẽ cagravei

bit CI trong ocirc RM trả về

Transport Layer 3-88

Chương 3 Nội dung trigravenh bagravey

31 Caacutec dịch vụ lớp Transport

32 Multiplexing vagrave demultiplexing

33 Vận chuyển khocircng kết nối UDP

34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy

35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối

36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn

37 Điều khiển tắc nghẽn TCP

Transport Layer 3-89

TCP điều khiển tắc nghẽn additive tăng lecircn multiplicative giảm xuống

8 Kbytes

16 Kbytes

24 Kbytes

time

congestionwindow

Caacutech tiếp cận tăng tốc độ truyền (kiacutech thước cửa sổ) tigravem khả năng băng thocircng coacute thể cho đến khi coacute mất maacutet xảy ra additive tăng lecircn tăng CongWin bởi 1 MSS

mỗi RTT cho đến khi coacute mất maacutet xảy ra multiplicative giảm xuống bỏ CongWin trong

nửa giai đoạn sau khi mất maacutet

timekiacutech

thư

ớc

cửa

sổ

tắc

nghẽ

n

Tigravem kiếm băng thocircng

Transport Layer 3-90

TCP điều khiển tắc nghẽn chi tiết

becircn gửi hạn chế việc truyền LastByteSent-LastByteAcked

CongWin Cocircng thức

CongWin thay đổi chức năng lagrave nhận biết tắc nghẽn trecircn mạng

Lagravem thế nagraveo becircn gửi nhận biết tắc nghẽn

mất maacutet xảy ra = timeout hoặc 3 ack trugraveng lặp

becircn gửi giảm tốc độ (CongWin) sau khi mất maacutet xảy ra

3 cơ chế AIMD khởi động chậm thận trọng sau khi coacute

caacutec sự kiện timeout

tốc độ = CongWin

RTT Bytess

Transport Layer 3-91

TCP khởi động chậm

Khi kết nối bắt đầu CongWin = 1 MSS Viacute dụ MSS = 500 bytes

amp RTT = 200 ms tốc độ khởi tạo = 20

kbps

băng thocircng sẵn sagraveng coacute thể gtgt MSSRTT mong muốn nhanh

choacuteng tăng tốc lecircn tốc độ coacute thể đaacutep ứng

Khi kết nối bắt đầu tăng tốc lecircn rất nhanh cho đến khi sự cố mất maacutet xảy ra đầu tiecircn

Transport Layer 3-92

TCP khởi động chậm (tt)

Khi kết nối bắt đầu tăng tốc lecircn rất nhanh cho đến khi sự cố mất maacutet xảy ra đầu tiecircn nhacircn đocirci CongWin mỗi

RTT hoagraven thagravenh nhờ tăng CongWin ứng với mỗi ACK đatilde nhận

Tổng kết tốc độ khởi đầu lagrave chậm nhưng sau đoacute tăng tốc rất nhanh

Host A

1 đoạn

RTT

Host B

thời gian

2 đoạn

4 đoạn

Transport Layer 3-93

Tinh chếHỏi Khi nagraveo việc tăng

tốc trở thagravenh tuyến tiacutenh

Trả lời Khi CongWin đạt đến 12 giaacute trị của noacute trước khi timeout

Hiện thực Ngưỡng thay đổi Tại thời điểm coacute sự cố

mất maacutet ngưỡng được cagravei giaacute trị bằng frac12 của CongWin ngay trước đoacute

Transport Layer 3-94

Tinh chế nhận biết mất maacutet

Sau 3 ACK trugraveng lặp CongWin sẽ giảm 12 kiacutech thước cửa sổ

tăng tuyến tiacutenh nhưng sau sự cố

timeout CongWin thay giaacute trị

bằng 1 MSS kiacutech thước cửa sổ

tăng cấp lũy thừa khi đến một ngưỡng

thigrave tăng tuyến tiacutenh

3 ACK trugraveng nhau chỉ ra khả năng truyền của mạng timeout chỉ thị ldquonhiều cảnh baacuteordquo về tigravenh huống tắc nghẽn

Nguyecircn lyacute

Transport Layer 3-95

Tổng kết TCP điều khiển tắc nghẽn

Khi CongWin dưới Threshold becircn gửi đang trong giai đoạn khởi động chậm kiacutech thước cửa sổ tăng nhanh theo cấp lũy thừa

Khi CongWin trecircn Threshold becircn gửi đang trong giai đoạn traacutenh tắc nghẽn kiacutech thước cửa sổ tăng nhanh theo cấp tuyến tiacutenh

Khi coacute 3 ACK trugraveng lặp xảy ra Threshold = CongWin2 vagrave CongWin = Threshold

Khi timeout xảy ra Threshold = CongWin2 vagrave CongWin = 1 MSS

Transport Layer 3-96

TCP điều khiển tắc nghẽn becircn gửi

Trạng thaacutei Sự kiện TCP becircn gửi hagravenh động Diễn giải

Slow Start (SS)-Khởi động chậm

ACK baacuteo nhận cho dữ liệu chưa ACK trước đoacute

CongWin = CongWin + MSS If (CongWin gt Threshold) cagravei đặt trạng thaacutei ldquoTraacutenh tắc nghẽnrdquo

Hậu quả lagravem tăng gấp đocirci CongWin mỗi RTT

CongestionAvoidance (CA) ndashTraacutenh tắc nghẽn

ACK baacuteo nhận cho dữ liệu chưa ACK trước đoacute

CongWin = CongWin+MSS (MSSCongWin)

Additive tăng lecircn lagravem tăng CongWin lecircn 1 MSS mỗi RTT

SS hoặc CA Sự cố mất maacutet xảy ra khi thấy coacute 3 ACK trugraveng lặp

Threshold = CongWin2 CongWin = Thresholdcagravei đặt trạng thaacutei ldquoTraacutenh tắc nghẽnrdquo

Khocirci phục nhanh hiện thực giảm xuống multiplicative CongWin sẽ khocircng giảm xuống dưới 1 MSS

SS hoặc CA Timeout Threshold = CongWin2 CongWin = 1 MSScagravei đặt trạng thaacutei ldquoKhởi động chậmrdquo

Vagraveo chế độ ldquoKhởi động chậmrdquo

SS hoặc CA ACK trugraveng lặp

Đếm ACK tăng lecircn cho đoạn vừa được ACK

CongWin vagrave Threshold khocircng thay đổi

Transport Layer 3-97

TCP throughput

Throughout trung bigravenh của TCP biểu diễn qua kiacutech thước của sổ vagrave RTT Bỏ qua trạng thaacutei ldquoKhởi động chậmrdquo

Cho W lagrave kiacutech thước cửa sổ khi coacute mất maacutet xảy ra

Khi kiacutech thước cửa sổ = W lưu lượng = WRTT

Chỉ ngay sau khi mất maacutet cửa sổ giảm xuống = W2 lưu lượng = W2RTT

throughout trung bigravenh 075 WRTT

Transport Layer 3-98

TCP tương lai

Viacute dụ caacutec đoạn dagravei 1500 byte RTT 100ms lưu lượng 10 Gbps

Kiacutech thước cửa sổ yecircu cầu W = 83333 đoạn trecircn đường truyền

Lưu lượng trong caacutec trường hợp mất maacutet

L = 210-10

Phiecircn bản mới của TCP dagravenh cho nhu cầu tốc độ cao

LRTT

MSS221

Transport Layer 3-99

Mục tiecircu nếu K phiecircn lagravem việc TCP chia sẻ kết nối cổ chai của băng thocircng lagrave R mỗi phiecircn coacute tốc độ trung bigravenh lagrave RK

TCP kết nối 1

router cổ chaikhả năng R

TCP kết nối 2

TCP tiacutenh cocircng bằng

Transport Layer 3-100

Tại sao phải TCP cocircng bằng

2 phiecircn lagravem việc cạnh tranh nhau Additive tăng lưu lượng tăng multiplicative giảm lưu lượng tương xứng

R

R

chia sẻ băng thocircng bằng nhau

Connection 1 throughputConnect

ion 2

th

roughput

traacutenh tắc nghẽn additive tăng lecircnmất maacutet giảm cửa sổ bằng 12

traacutenh tắc nghẽn additive tăng lecircnmất maacutet giảm cửa sổ bằng 12

Transport Layer 3-101

TCP tiacutenh cocircng bằng (tt)

Tiacutenh cocircng bằng amp UDP nhiều ứng dụng

thường khocircng dugraveng TCP khocircng muốn tốc độ bị

điều tiết do điều khiển tắc nghẽn

Thay bằng dugraveng UDP truyền audiovideo với

tốc độ ổn định chịu được mất maacutet

Nghiecircn cứu giao thức thacircn thiện với TCP

Tiacutenh cocircng bằng amp caacutec kết nối TCP song song

khocircng coacute gigrave ngăn cản việc ứng dụng mở caacutec kết nối song song giữa 2 host

Trigravenh duyệt Web lagravem giống như thế

Viacute dụ tốc độ R hỗ trợ 9 kết nối ứng dụng mới yecircu cầu 1

TCP coacute tốc độ R10 ứng dụng mới yecircu cầu 11

TCP coacute tốc độ R2

Transport Layer 3-102

Mocirc higravenh trễ

Hỏi Mất bao lacircu để nhận 1 đối tượng từ Web server sau khi gửi yecircu cầu

Bỏ qua tắc nghẽn trễ bị ảnh hưởng bởi

thiết lập kết nối TCP trễ truyền dữ liệu khởi động chậm

Notation caacutec giả định Giả sử một kết nối giữa

client vagrave server coacute tốc độ R

S MSS (bits) O kiacutech thước đối tượng

(bits) khocircng truyền lại (khocircng

mất maacutet khocircng hỏng)

Kiacutech thước cửa sổ Giả định 1 cửa sổ tắc

nghẽn cố định coacute W đoạn Sau đoacute cửa sổ thay đổi

mocirc higravenh khởi động chậm

Transport Layer 3-103

Cửa sổ tắc nghẽn cố định (1)

Trường hợp đầu tiecircnWSR gt RTT + SR cho

đoạn đầu tiecircn trong cửa sổ trả về trước khi cửa sổ dữ liệu gửi ACK

trễ = 2RTT + OR

Transport Layer 3-104

Cửa sổ tắc nghẽn cố định (2)

Trường hợp thứ hai WSR lt RTT + SR sent

chờ cho ACK sau khi gửi dữ liệu

trễ = 2RTT + OR+ (K-1)[SR + RTT - WSR]

Transport Layer 3-105

TCP Mocirc higravenh trễ Khởi động chậm (1)

Bacircy giờ giả sử kiacutech thước cửa sổ tăng lecircn tugravey theo quaacute trigravenh khởi động chậm

Độ trễ của một đối tượng sẽ lagrave

R

S

R

SRTTP

R

ORTTLatency P )12(2

trong đoacute P lagrave số lần TCP rảnh ở tại server

1min KQP

- trong đoacute Q lagrave số lần server rảnh nếu đối tượng đatilde khởi tạo kiacutech thước

- vagrave K lagrave số lượng cửa sổ bao trugravem đối tượng

Transport Layer 3-106

TCP Mocirc higravenh trễ Khởi động chậm (2)

RTT

initia te TCPconnection

requestobject

first w indow= S R

second w indow= 2S R

third w indow= 4S R

fourth w indow= 8S R

com pletetransm issionobject

delivered

tim e atc lient

tim e atserver

Viacute dụbull OS = 15 đoạnbull K = 4 cửa sổbull Q = 2bull P = minK-1Q = 2

Server rảnh P=2 lần

Caacutec thagravenh phần trễbull 2 RTT dagravenh cho thiết lập kết nối vagrave yecircu cầubull OR để truyền đối tượngbullthời gian server rảnh bởi vigrave khởi động chậm

Server rảnh P = minK-1Q lần

Transport Layer 3-107

TCP Mocirc higravenh trễ(3)

R

S

R

SRTTPRTT

R

O

R

SRTT

R

SRTT

R

O

idleTimeRTTR

O

P

kP

k

P

pp

)12(][2

]2[2

2delay

1

1

1

th window after the timeidle 2 1 kR

SRTT

R

S k

ementacknowledg receivesserver until

segment send tostartsserver when from time RTTR

S

window kth the transmit totime2 1

R

Sk

RTT

initia te TCPconnection

requestobject

first w indow= S R

second w indow= 2S R

third w indow= 4S R

fourth w indow= 8S R

com pletetransm issionobject

delivered

tim e atc lient

tim e atserver

Transport Layer 3-108

TCP Mocirc higravenh trễ (4)

)1(log

)1(logmin

12min

222min

222min

2

2

110

110

S

OS

Okk

S

Ok

SOk

OSSSkK

k

k

k

caacutech tiacutenh toaacuten Q tương tự (xem HW)

K = số lượng cửa sổ bao trugravem đối tượngLagravem thế nagraveo tiacutenh được K

Transport Layer 3-109

HTTP Mocirc higravenh Giả sử trang Web chứa

1 trang HTML (kiacutech thước O bits) M higravenh ảnh (mỗi caacutei kiacutech thướcO bits)

HTTP khocircng bền vững M+1 TCP kết nối Thời gian đaacutep ứng = (M+1)OR + (M+1)2RTT + tổng số thời

gian rảnh HTTP bền vững

2 RTT để yecircu cầu vagrave nhận file HTML 1 RTT để yecircu cầu vagrave nhận M higravenh ảnh Thời gian đaacutep ứng = (M+1)OR + 3RTT + tổng số thời gian

rảnh HTTP khocircng bền vững với X kết nối song song

Giả sử MX lagrave số nguyecircn 1 TCP kết nối cho file MX thiết lập caacutec kết nối song song cho caacutec higravenh ảnh Thời gian đaacutep ứng = (M+1)OR + (MX + 1)2RTT + tổng số

thời gian rảnh

Transport Layer 3-110

02468

101214161820

28Kbps

100Kbps

1Mbps

10Mbps

non-persistent

persistent

parallel non-persistent

HTTP thời gian đaacutep ứng (giacircy)RTT = 100 msec O = 5 Kbytes M=10 vagrave X=5

Với băng thocircng thấp thời gian kết nối amp đaacutep ứng trội hơn thời gian truyền

Caacutec kết nối bền vững chỉ cho sự cải thiện khocircng đaacuteng kể trecircn caacutec kết nối song song

Transport Layer 3-111

0

10

20

30

40

50

60

70

28Kbps

100Kbps

1Mbps

10Mbps

non-persistent

persistent

parallel non-persistent

HTTP thời gian đaacutep ứng (giacircy)

RTT =1 sec O = 5 Kbytes M=10 and X=5

Với RTT lớn hơn thời gian đaacutep ứng trội hơn thời gian trễ chờ thiết lập kết nốiTCP amp khởi động chậm Caacutec kết nối bền vững bacircy giờ cho thấy cải thiện rotilde rệt đặc biệtvới caacutec mạng băng thocircng cao

Transport Layer 3-112

Chương 3 Tổng kết caacutec nguyecircn lyacute của caacutec

dịch vụ lớp transport multiplexing

demultiplexing truyền dữ liệu tin cậy điều khiển luồng điều khiển tắc nghẽn

khởi tạo vagrave hiện thực trong Internet UDP TCP

Tiếp theo nghiecircn cứu xong

caacutec vấn đề ldquongoagravei biecircnrdquo (caacutec lớp application transport)

chuẩn bị vagraveo phần ldquolotildeirdquo của mạng

  • Slide 1
  • Chương 3 Lớp Transport
  • Chương 3 Nội dung trigravenh bagravey
  • Caacutec dịch vụ vagrave giao thức Transport
  • Lớp Transport với lớp network
  • Caacutec giao thức lớp transport trecircn Internet
  • Slide 7
  • Multiplexingdemultiplexing
  • Demultiplexing lagravem việc như thế nagraveo
  • Demultiplexing khocircng kết nối
  • Demultiplexing khocircng kết nối (tiếp)
  • Demultiplexing hướng kết nối
  • Demultiplexing hướng kết nối (tiếp)
  • Demultiplexing hướng kết nối Threaded Web Server
  • Slide 15
  • UDP User Datagram Protocol [RFC 768]
  • UDP (tt)
  • UDP checksum
  • Viacute dụ Checksum
  • Slide 20
  • Caacutec nguyecircn lyacute truyền dữ liệu tin cậy
  • Slide 22
  • Slide 23
  • Truyền dữ liệu tin cậy
  • Slide 25
  • Rdt10 truyền dữ liệu tin cậy trecircn 1 kecircnh truyền tin cậy
  • Rdt20 kecircnh với caacutec lỗi
  • rdt20 đặc tả FSM
  • rdt20 hoạt động khi khocircng lỗi
  • rdt20 hoạt động khi coacute lỗi
  • rdt20 coacute lỗ hổng nghiecircm trọng
  • rdt21 người gửi quản lyacute caacutec ACKNAK bị hỏng
  • Slide 33
  • rdt21 thảo luận
  • rdt22 một giao thức khocircng cần NAK
  • rdt22 gửi nhận caacutec mảnh
  • rdt30 caacutec kecircnh với lỗi vagrave mất maacutet
  • rdt30 gửi
  • hagravenh động của rdt30
  • Slide 40
  • Hiệu suất của rdt30
  • rdt30 hoạt động dừng-vagrave-chờ
  • Caacutec giao thức Pipelined
  • Pipelining độ khả dụng tăng
  • Go-Back-N
  • GBN becircn gửi mở rộng FSM
  • GBN becircn nhận mở rộng FSM
  • GBN hoạt động
  • Lặp coacute lựa chọn
  • Lặp coacute lựa chọn caacutec cửa sổ gửi nhận
  • Slide 51
  • Hoạt động của lặp coacute lựa chọn
  • Lặp coacute lựa chọn tigravenh trạng khoacute giải quyết
  • Slide 54
  • TCP Tổng quan RFCs 793 1122 1323 2018 2581
  • TCP cấu truacutec đoạn
  • Caacutec số thứ tự TCP vagrave ACK
  • TCP Round Trip Time vagraveTimeout
  • TCP Round Trip Time vagrave Timeout
  • Viacute dụ đaacutenh giaacute RTT
  • Slide 61
  • TCP truyền dữ liệu tin cậy
  • TCP caacutec sự kiện
  • TCP becircn gửi (đơn giản)
  • TCP caacutec tigravenh huống truyền lại
  • TCP caacutec tigravenh huống truyền lại (tt)
  • TCP sinh ra ACK [RFC 1122 RFC 2581]
  • Truyền lại nhanh
  • Giải thuật truyền lại nhanh
  • Slide 70
  • TCP điều khiển luồng
  • TCP điều khiển luồng caacutech lagravem
  • Slide 73
  • TCP quản lyacute kết nối
  • TCP quản lyacute kết nối (tt)
  • Slide 76
  • Slide 77
  • Slide 78
  • Caacutec nguyecircn lyacute điều khiển tắc nghẽn
  • Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 1
  • Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 2
  • Slide 82
  • Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 3
  • Slide 84
  • Caacutec caacutech tiếp cận đối với điều khiển tắc nghẽn
  • Viacute dụ điều khiển tắc nghẽn ATM ABR
  • Slide 87
  • Slide 88
  • TCP điều khiển tắc nghẽn additive tăng lecircn multiplicative giảm xuống
  • TCP điều khiển tắc nghẽn chi tiết
  • TCP khởi động chậm
  • TCP khởi động chậm (tt)
  • Tinh chế
  • Tinh chế nhận biết mất maacutet
  • Tổng kết TCP điều khiển tắc nghẽn
  • TCP điều khiển tắc nghẽn becircn gửi
  • TCP throughput
  • TCP tương lai
  • TCP tiacutenh cocircng bằng
  • Tại sao phải TCP cocircng bằng
  • TCP tiacutenh cocircng bằng (tt)
  • Mocirc higravenh trễ
  • Cửa sổ tắc nghẽn cố định (1)
  • Cửa sổ tắc nghẽn cố định (2)
  • TCP Mocirc higravenh trễ Khởi động chậm (1)
  • TCP Mocirc higravenh trễ Khởi động chậm (2)
  • TCP Mocirc higravenh trễ(3)
  • TCP Mocirc higravenh trễ (4)
  • HTTP Mocirc higravenh
  • Slide 110
  • Slide 111
  • Chương 3 Tổng kết

Transport Layer 3-27

Rdt20 kecircnh với caacutec lỗi

kecircnh ưu tiecircn coacute thể bật lecircn một số bit trong goacutei checksum để kiểm tra caacutec lỗi

Hỏi lagravem sao khocirci phục caacutec lỗi acknowledgements (ACKs) becircn nhận rotilde ragraveng thocircng

baacuteo cho becircn gửi rằng quaacute trigravenh nhận goacutei tốt negative acknowledgements (NAKs) becircn nhận rotilde ragraveng

thocircng baacuteo cho becircn gửi rằng quaacute trigravenh nhận goacutei coacute lỗi người gửi gửi lại goacutei nagraveo được xaacutec nhận lagrave NAK

caacutec cơ chế mới trong rdt20 (sau rdt10) kiểm tra lỗi nhận phản hồi caacutec thocircng điệp điều khiển (ACKNAK)

becircn nhận becircn gửi

Transport Layer 3-28

rdt20 đặc tả FSM

chờ gọi từ lớp trecircn

snkpkt = make_pkt(data checksum)udt_send(sndpkt)

extract(rcvpktdata)deliver_data(data)udt_send(ACK)

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)

rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp isNAK(rcvpkt)

udt_send(NAK)

rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)

chờ ACK hoặc NAK

chờ gọi từ lớp dưới

người gửi

người nhậnrdt_send(data)

Transport Layer 3-29

rdt20 hoạt động khi khocircng lỗi

chờ gọi từ lớp dưới

snkpkt = make_pkt(data checksum)udt_send(sndpkt)

extract(rcvpktdata)deliver_data(data)udt_send(ACK)

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)

rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp isNAK(rcvpkt)

udt_send(NAK)

rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)

chờ ACK hoặc NAK

chờ gọi từ lớp dưới

rdt_send(data)

Transport Layer 3-30

rdt20 hoạt động khi coacute lỗi

chờ gọi từ lớp dưới

snkpkt = make_pkt(data checksum)udt_send(sndpkt)

extract(rcvpktdata)deliver_data(data)udt_send(ACK)

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)

rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp isNAK(rcvpkt)

udt_send(NAK)

rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)

chờ ACK hoặc NAK

chờ gọi từ lớp dưới

rdt_send(data)

Transport Layer 3-31

rdt20 coacute lỗ hổng nghiecircm trọngĐiều gigrave xảy ra nếu

ACKNAK bị hỏng người gửi khocircng biết điều

gigrave đatilde xảy ra tại becircn nhận

khocircng thể đơn phương truyền lại khả năng trugraveng lặp

Quản lyacute trugraveng lặp người gửi truyền lại goacutei

hiện tại nếu ACKNAK bị hỏng

người gửi thecircm số thứ tự vagraveo mỗi goacutei

người nhận hủy (khocircng nhận) goacutei trugraveng lặp

Người gửi gửi 1 goacutei sau đoacute dừng lại chờ phản hồitừ người nhận

dừng vagrave chờ

Transport Layer 3-32

rdt21 người gửi quản lyacute caacutec ACKNAK bị hỏng

chờ gọi 0 từ lớp trecircn

sndpkt = make_pkt(0 data checksum)udt_send(sndpkt)

rdt_send(data)

chờ ACK hoặc NAK

0 udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) ||isNAK(rcvpkt) )

sndpkt = make_pkt(1 data checksum)udt_send(sndpkt)

rdt_send(data)

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) ||isNAK(rcvpkt) )

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt)

chờ gọi 1 từ lớp trecircn

chờ ACK hoặc NAK

1

Transport Layer 3-33

rdt21 người gửi quản lyacute caacutec ACKNAK bị hỏng

chờ 0 từ dưới

sndpkt = make_pkt(NAK chksum)udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp not corrupt(rcvpkt) ampamp has_seq0(rcvpkt)

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp has_seq1(rcvpkt)

extract(rcvpktdata)deliver_data(data)sndpkt = make_pkt(ACK chksum)udt_send(sndpkt)

chờ 1 từ dưới

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp has_seq0(rcvpkt)

extract(rcvpktdata)deliver_data(data)sndpkt = make_pkt(ACK chksum)udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp (corrupt(rcvpkt)

sndpkt = make_pkt(ACK chksum)udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp not corrupt(rcvpkt) ampamp has_seq1(rcvpkt)

rdt_rcv(rcvpkt) ampamp (corrupt(rcvpkt)

sndpkt = make_pkt(ACK chksum)udt_send(sndpkt)

sndpkt = make_pkt(NAK chksum)udt_send(sndpkt)

Transport Layer 3-34

rdt21 thảo luận

người gửi số thứ tự thecircm vagraveo

goacutei chỉ cần hai số thứ tự

(01) lagrave đủ Tại sao phải kiểm tra nếu việc

nhận ACKNAK bị hỏng

số trạng thaacutei tăng lecircn 2 lần trạng thaacutei phải ldquonhớrdquo

goacutei ldquohiện tạirdquo coacute số thứ tự lagrave 0 hay 1

người nhận phải kiểm tra coacute

nhận trugraveng goacutei khocircng trạng thaacutei chỉ rotilde coacute

hay khocircng mong chờ số thứ tự 0 hoặc 1

chuacute yacute người nhận khocircng biết ACKNAK vừa rồi của noacute coacute được người gửi nhận tốt hay khocircng

Transport Layer 3-35

rdt22 một giao thức khocircng cần NAK

chức năng giống như rdt21 chỉ dugraveng caacutec ACK thay cho NAK người nhận gửi ACK cho goacutei vừa

rồi đatilde nhận tốt người nhận phải rotilde ragraveng chegraven số thứ tự của goacutei vừa ACK

trugraveng ACK tại người gửi hậu quả giống như hagravenh động của NAK truyền lại goacutei vừa rồi

Transport Layer 3-36

rdt22 gửi nhận caacutec mảnh

Chờ cho gọi 0 từ

trecircn

sndpkt = make_pkt(0 data checksum)udt_send(sndpkt)

rdt_send(data)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) || isACK(rcvpkt1) )

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt0)

Chờ cho ACK

0

gửi phacircn mảnhFSM

Chờ cho gọi

0 từ dưới

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp has_seq1(rcvpkt)

extract(rcvpktdata)deliver_data(data)sndpkt = make_pkt(ACK1 chksum)udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp (corrupt(rcvpkt) || has_seq1(rcvpkt))

udt_send(sndpkt)

nhận phacircn mảnhFSM

Transport Layer 3-37

rdt30 caacutec kecircnh với lỗi vagrave mất maacutet

Giả định mới kecircnh ưu tiecircn cũng coacute thể lagravem mất caacutec goacutei (dữ liệu hoặc caacutec ACK) checksum số thứ tự

caacutec ACK caacutec việc truyền lại sẽ hỗ trợ nhưng khocircng đủ

Caacutech tiếp cận người gửi chờ ACK trong khoảng thời gian ldquochấp nhận đượcrdquo

truyền lại nếu khocircng nhận ACK trong khoảng thời gian nagravey

nếu goacutei (hoặc ACK) chỉ trễ (khocircng mất) truyền lại sẽ gacircy trugraveng

nhưng dugraveng số thứ tự sẽ giải quyết được

người nhận phải xaacutec định số thứ tự của goacutei vừa gửi ACK

cần bộ định thigrave đếm lugravei

Transport Layer 3-38

rdt30 gửi

sndpkt = make_pkt(0 data checksum)udt_send(sndpkt)start_timer

rdt_send(data)

Chờ cho

ACK 0

rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) ||isACK(rcvpkt1) )

Chờ cho gọi 1 từ trecircn

sndpkt = make_pkt(1 data checksum)udt_send(sndpkt)start_timer

rdt_send(data)

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt0)

rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) ||isACK(rcvpkt0) )

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt1)

stop_timerstop_timer

udt_send(sndpkt)start_timer

timeout

udt_send(sndpkt)start_timer

timeout

rdt_rcv(rcvpkt)

Chờ cho gọi 0 từ trecircn

Chờ cho

ACK 1

rdt_rcv(rcvpkt)

Transport Layer 3-39

hagravenh động của rdt30

Transport Layer 3-40

hagravenh động của rdt30

Transport Layer 3-41

Hiệu suất của rdt30

rdt30 lagravem việc được nhưng đaacutenh giaacute hiệu suất hơi rắc rối viacute dụ liecircn kết 1 Gbps trễ lan truyền giữa hai đầu cuối lagrave 15

ms goacutei 1KB

T truyền = 8kbpkt109 bsec

= 8 microsec

U sender độ khả dụng ndash

U sender

= 008

30008 = 000027

microseconds

L R

RTT + L R =

L (độ dagravei goacutei tiacutenh bằng bits)R (tốc độ truyền bps)

=

goacutei 1KB mỗi 30 msec -gt 33kBs trecircn đường truyền 1 Gbps giao thức network hạn chế việc dugraveng caacutec tagravei nguyecircn vật

lyacute

Transport Layer 3-42

rdt30 hoạt động dừng-vagrave-chờ

goacutei đầu tiecircn đatilde truyền t = 0

gửi nhận

RTT

goacutei cuối cugraveng đatilde truyền t = L R

goacutei đầu tiecircn đatilde đếngoacutei cuối cugraveng đatilde đến gửi ACK

ACK đến gửi goacutei kế tiếp t = RTT + L R

U sender

= 008

30008 = 000027

microseconds

L R

RTT + L R =

Transport Layer 3-43

Caacutec giao thức Pipelined

Pipelining người gửi cho pheacutep gửi nhiều goacutei đồng thời khocircng cần chờ baacuteo nhận được nhoacutem caacutec số thứ tự phải tăng dần phải coacute bộ nhớ đệm tại nơi gửi vagravehoặc nơi nhận

hai dạng phổ biến của caacutec giao thức pipelined go-Back-N Lặp coacute lựa chọn

Transport Layer 3-44

Pipelining độ khả dụng tăng

goacutei đầu tiecircn đatilde truyền t = 0

sender receiver

RTT

goacutei cuối cugraveng đatilde truyền t = L R

goacutei đầu tiecircn đatilde đếngoacutei cuối cugraveng đatilde đến gửi ACK

ACK đến gửi goacuteikế tiếp t = RTT + L R

bit cuối của goacutei thứ 2 đến gửi ACKbit cuối của goacutei thứ 3 đến gửi ACK

U sender

= 024

30008 = 00008

microseconds

3 L R

RTT + L R =

Độ khả dụng tăng lecircngấp 3 lần

Transport Layer 3-45

Go-Back-NBecircn gửi k-bit số thứ tự trong header của goacutei ldquocửa sổrdquo tăng lecircn đến N cho pheacutep gửi caacutec goacutei liecircn tục khocircng cần ACK

ACK(n) ACKs tất cả caacutec goacutei đến chứa số thứ tự n ndash ldquoACK tiacutech lũyrdquo coacute thể nhận caacutec ACK trugraveng lặp (xem becircn nhận)

định thigrave cho mỗi goacutei trecircn đường truyền timeout(n) gửi lại goacutei n vagrave tất cả caacutec goacutei coacute số thứ tự cao

hơn trong cửa sổ

Transport Layer 3-46

GBN becircn gửi mở rộng FSM

chờ start_timerudt_send(sndpkt[base])udt_send(sndpkt[base+1])hellipudt_send(sndpkt[nextseqnum-1])

timeout

rdt_send(data)

if (nextseqnum lt base+N) sndpkt[nextseqnum] = make_pkt(nextseqnumdatachksum) udt_send(sndpkt[nextseqnum]) if (base == nextseqnum) start_timer nextseqnum++ else refuse_data(data)

base = getacknum(rcvpkt)+1If (base == nextseqnum) stop_timer else start_timer

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)

base=1nextseqnum=1

rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)

Transport Layer 3-47

GBN becircn nhận mở rộng FSM

ACK-duy nhất luocircn luocircn gửi ACK cho goacutei đatilde nhận đuacuteng với số thứ tự xếp hạng cao nhất coacute thể sinh ra caacutec ACK trugraveng nhau chỉ cần nhớ expectedseqnum

goacutei khocircng theo thứ tự hủy -gt khocircng nhận vagraveo bộ đệm gửi lại ACK với số thứ tự xếp hạng cao nhất

chờ

udt_send(sndpkt)

default

rdt_rcv(rcvpkt) ampamp notcurrupt(rcvpkt) ampamp hasseqnum(rcvpktexpectedseqnum)

extract(rcvpktdata)deliver_data(data)sndpkt = make_pkt(expectedseqnumACKchksum)udt_send(sndpkt)expectedseqnum++

expectedseqnum=1sndpkt = make_pkt(expectedseqnumACKchksum)

Transport Layer 3-48

GBN hoạt động

Transport Layer 3-49

Lặp coacute lựa chọn

becircn nhận thocircng baacuteo đatilde nhận đuacuteng tất cả từng goacutei một đệm (buffer) caacutec goacutei nếu cần thiết

becircn gửi chỉ gửi lại caacutec goacutei nagraveo khocircng nhận được ACK becircn gửi định thigrave đối với mỗi goacutei khocircng gửi ACK

cửa sổ becircn gửi N số thứ tự liecircn tục hạn chế số thứ tự caacutec goacutei khocircng gửi ACK

Transport Layer 3-50

Lặp coacute lựa chọn caacutec cửa sổ gửi nhận

Transport Layer 3-51

Lặp coacute lựa chọn

dữ liệu từ lớp trecircn nếu số thứ tự kế tiếp sẵn

sagraveng trong cửa sổ gửi goacutei

timeout(n) gửi lại goacutei n taacutei khởi tạo

bộ định thigrave

ACK(n) trong [sendbasesendbase+N]

đaacutenh dấu goacutei n lagrave đatilde nhận nếu goacutei khocircng ACK coacute n

nhỏ nhất dịch chuyển cửa sổ base đến số thứ tự khocircng ACK kế tiếp

Gửigoacutei n trong [rcvbase

rcvbase+N-1]

gửi ACK(n) khocircng thứ tự đệm

(buffer) coacute thứ tự truyền (cũng

truyền caacutec goacutei đatilde đệm coacute thứ tự) dịch chuyển cửa sổ đến goacutei chưa nhận kế tiếp

goacutei n trong [rcvbase-Nrcvbase-1]

ACK(n)

ngược lại lờ đi

Nhận

Transport Layer 3-52

Hoạt động của lặp coacute lựa chọn

Transport Layer 3-53

Lặp coacute lựa chọntigravenh trạng khoacute giải quyếtViacute dụ Số thứ tự 0 1 2 3 Kiacutech thước cửa sổ = 3

becircn nhận khocircng thấy sự khaacutec nhau trong 2 tigravenh huống

chuyển khocircng chiacutenh xaacutec dữ liệu trugraveng lặp như dữ liệu mới trong (a)

Hỏi quan hệ giữa datildey số thứ tự vagrave kiacutech thước cửa sổ

Transport Layer 3-54

Chương 3 Nội dung trigravenh bagravey

31 Caacutec dịch vụ lớp Transport

32 Multiplexing vagrave demultiplexing

33 Vận chuyển khocircng kết nối UDP

34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy

35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối

36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn

37 Điều khiển tắc nghẽn TCP

Transport Layer 3-55

TCP Tổng quan RFCs 793 1122 1323 2018 2581

dữ liệu full duplex luồng dữ liệu đi 2 chiều

trong cugraveng một kết nối MSS maximum

segment size ndash kiacutech thước đoạn tối đa

hướng kết nối bắt tay (trao đổi caacutec

thocircng điệp điều khiển) trạng thaacutei becircn gửi becircn nhận trước khi trao đổi dữ liệu

điều khiển luồng becircn gửi sẽ khocircng lấn aacutet

becircn nhận

point-to-point một becircn gửi một becircn

nhận tin cậy dograveng byte coacute

thứ tự khocircng ldquoranh giới thocircng

điệprdquo kecircnh liecircn lạc

TCP điều khiển luồng vagrave tắc nghẽn thiết lập kiacutech thước cửa sổ

caacutec bộ đệm gửi amp nhận

socketdoor

T C Psend buffer

T C Preceive buffer

socketdoor

segm ent

applicationwrites data

applicationreads data

Transport Layer 3-56

TCP cấu truacutec đoạn

port nguồn port điacutech

32 bits

dữ liệu ứng dụng(độ dagravei thay đổi)

số thứ tự

số ACKcửa sổ nhận

con trỏ URGchecksum

FSRPAUheadlen

notused

Tugravey chọn (độ dagravei thay đổi)

URG dữ liệu khẩn cấp(thường khocircng dugraveng)

ACK ACK hợp lệ

PSH push data now(thường khocircng dugraveng)

RST SYN FINthiết lập kết nối

(caacutec lệnh thiết lậpchia nhỏ)

số byte becircn nhận sẵn sagraveng chấp nhận

đếm bởi số bytecủa dữ liệu

Internetchecksum

(giống UDP)

Transport Layer 3-57

Caacutec số thứ tự TCP vagrave ACKCaacutec số thứ tự

dograveng byte ldquođaacutenh sốrdquo byte đầu tiecircn trong dữ liệu của đoạn

caacutec ACK số thứ tự của byte

kế tiếp được chờ đợi từ phiacutea becircn kia

ACK tiacutech lũyHỏi lagravem thế nagraveo becircn

nhận quản lyacute caacutec đoạn khocircng thứ tự Trả lời TCP khocircng

đề cập tugravey thuộc người hiện thực

Host A Host B

Seq=42 ACK=79 data = lsquoCrsquo

Seq=79 ACK=43 data = lsquoCrsquo

Seq=43 ACK=80

UsernhậplsquoCrsquo

host ACKsnhận phản hồi

lsquoCrsquo

host ACKsbaacuteo nhận

lsquoCrsquo phản hồingược lại lsquoCrsquo

timetigravenh huống telnet đơn giản

Transport Layer 3-58

TCP Round Trip Time vagraveTimeout

Hỏi Lagravem thế nagraveo để thiết lập giaacute trị TCP timeout

dagravei hơn RTT khaacutec với RTT

quaacute ngắn timeout sớm truyền lại khocircng

cần thiết quaacute dagravei phản ứng

chậm đối với việc mất maacutet goacutei

Hỏi Lagravem thế nagraveo để thiết lập RTT

SampleRTT thời gian được đo từ khi truyền đoạn đến khi baacuteo nhận ACK lờ đi việc truyền lại

SampleRTT sẽ thay đổi muốn ước lượng RTT ldquomượt hơnrdquo tiacutenh trung bigravenh một số giaacute

trị đo được gần đoacute khocircng chỉ SampleRTT hiện tại

Transport Layer 3-59

TCP Round Trip Time vagrave Timeout

EstimatedRTT = (1- )EstimatedRTT + SampleRTT

giaacute trị đặc trưng = 0125

Transport Layer 3-60

Viacute dụ đaacutenh giaacute RTTRTT gaiacsumassedu to fantasiaeurecomfr

100

150

200

250

300

350

1 8 15 22 29 36 43 50 57 64 71 78 85 92 99 106

time (seconnds)

RTT

(mill

isec

onds

)

SampleRTT Estimated RTT

Transport Layer 3-61

TCP Round Trip Time vagrave Timeout

Thiết lập timeout EstimtedRTT cộng ldquohệ số dự trữ an toagravenrdquo

sự biến thiecircn lớn trong EstimatedRTT -gt hệ số dự trữ an toagraven lớn hơn ước lượng đầu tiecircn về sự biến thiecircn của SampleRTT từ EstimatedRTT

TimeoutInterval = EstimatedRTT + 4DevRTT

DevRTT = (1-)DevRTT + |SampleRTT-EstimatedRTT|

(tiecircu biểu = 025)

Sau đoacute thiết lập timeout interval

Transport Layer 3-62

TCP truyền dữ liệu tin cậy

TCP tạo dịch vụ rdt trecircn dịch vụ khocircng tin cậy IP

caacutec đoạn Pipelined caacutec ACK tiacutech lũy TCP dugraveng bộ định thigrave

truyền lại đơn

Truyền lại được kiacutech hoạt bởi caacutec sự kiện timeout caacutec ack trugraveng lặp

luacutec đầu khảo saacutet caacutec becircn gửi TCP đơn giản lờ đi caacutec ack trugraveng lặp lờ đi điều khiển luồng

điều khiển tắc nghẽn

Transport Layer 3-63

TCP caacutec sự kiệndữ liệu đatilde nhận từ ứng

dụng tạo đoạn với số thứ

tự của noacute số thứ tự lagrave số theo

byte dữ liệu đầu tiecircn khởi động bộ định thigrave

nếu chưa chạy khoảng thời gian hết

hạn TimeOutInterval

timeout gửi lại đoạn nagraveo gacircy

ra timeout khởi động lại bộ định

thigrave Ack đatilde nhận

cập nhật caacutei gigrave sẽ được ACK

khởi động bộ định thigrave nếu coacute caacutec đoạn cograven chờ

Transport Layer 3-64

TCP becircn gửi(đơn giản)

NextSeqNum = InitialSeqNum SendBase = InitialSeqNum

loop (forever) switch(event)

event data received from application above create TCP segment with sequence number NextSeqNum if (timer currently not running) start timer pass segment to IP NextSeqNum = NextSeqNum + length(data)

event timer timeout retransmit not-yet-acknowledged segment with smallest sequence number start timer

event ACK received with ACK field value of y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer

end of loop forever

Chuacute thiacutechbull SendBase-1 byte vừa được ACK tiacutech lũy Viacute dụbull SendBase-1 = 71y= 73 vigrave thế becircn nhận muốn 73+ y gt SendBase vigrave thế dữ liệu mới được chấp nhận

Transport Layer 3-65

TCP caacutec tigravenh huống truyền lại

Host A

Seq=100 20 bytes data

ACK=100

timetimeout sớm

Host B

Seq=92 8 bytes data

ACK=120

Seq=92 8 bytes data

Seq=

92

tim

eout

ACK=120

Host A

Seq=92 8 bytes data

ACK=100

loss

tim

eout

tigravenh huống mất ACK

Host B

X

Seq=92 8 bytes data

ACK=100

time

Seq=

92

tim

eout

SendBase= 100

SendBase= 120

SendBase= 120

Sendbase= 100

Transport Layer 3-66

TCP caacutec tigravenh huống truyền lại (tt)Host A

Seq=92 8 bytes data

ACK=100

loss

tim

eout

Cumulative ACK scenario

Host B

X

Seq=100 20 bytes data

ACK=120

time

SendBase= 120

Transport Layer 3-67

TCP sinh ra ACK [RFC 1122 RFC 2581]

Sự kiện tại becircn nhận

Đoạn đến với đuacuteng số thứ tự mong muốn Tất cả dữ liệu đếnđatilde được ACK

Đoạn đến với đuacuteng số thứ tự mong muốn Một đoạn khaacutec đangchờ ACK

Caacutec đoạn đến khocircng thứ tựlớn hơn số thứ tự đoạn mong muốnCoacute khoảng trống

Đoạn đếnlấp đầy từng phần hoặc toagraven bộkhoảng trống

TCP becircn nhận hagravenh động

ACK trễ Chờ đến 500mscho đoạn kế tiếp Nếu khocircng coacute đoạnkế tiếp gửi ACK

Gửi ngay một ACK tiacutech lũy chấp nhậncho cả caacutec đoạn theo thứ tự

Gửi ngay ACK trugraveng lặp chỉ thị số thứ tựđoạn của byte kế tiếp đang mong chờ

Gửi ngay ACK với điều kiện lagrave đoạnbắt đầu ngay điểm coacute khoảng trống

Transport Layer 3-68

Truyền lại nhanh

Chu kỳ Time-out thường tương đối dagravei độ trễ dagravei trước khi gửi

lại goacutei đatilde mất

Xaacutec nhận caacutec đoạn đatilde mất bằng caacutec ACK trugraveng lặp becircn gửi thường gửi

nhiều đoạn song song Nếu đoạn bị mất sẽ

xảy ra tigravenh trạng giống như nhiều ACK trugraveng nhau

Nếu becircn gửi nhận 3 ACK của cugraveng một dữ liệu noacute cho lagrave đoạn sau dữ liệu đatilde ACK bị mất Truyền lại nhanh gửi

lại đoạn trước khi bộ định thigrave hết hạn

Transport Layer 3-69

sự kiện ACK đatilde nhận với trường lagrave y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer else increment count of dup ACKs received for y if (count of dup ACKs received for y = 3) resend segment with sequence number y

Giải thuật truyền lại nhanh

một ACK trugraveng lặp cho đoạn đatilde được ACK

Truyền lại nhanh

Transport Layer 3-70

Chương 3 Nội dung trigravenh bagravey

31 Caacutec dịch vụ lớp Transport

32 Multiplexing vagrave demultiplexing

33 Vận chuyển khocircng kết nối UDP

34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy

35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối

36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn

37 Điều khiển tắc nghẽn TCP

Transport Layer 3-71

TCP điều khiển luồng

becircn nhận của kết nối TCP coacute một bộ đệm nhận

dịch vụ so trugraveng tốc độ so trugraveng tốc độ gửi với tốc độ nhận của ứng dụng

tiến trigravenh ứng dụng coacute thể chậm tại luacutec đọc bộ đệm

becircn gửi sẽ khocircng lagravem tragraven bộ đệm vigrave truyền quaacute nhiều vagrave

quaacute nhanh

điều khiển luồng

Transport Layer 3-72

TCP điều khiển luồng caacutech lagravem

(Giả sử becircn nhận TCP loại bỏ caacutec đoạn khocircng coacute thứ tự)

dự phograveng trong bộ đệm= RcvWindow

= RcvBuffer-[LastByteRcvd - LastByteRead]

Becircn nhận thocircng baacuteo khoảng dự trữ nhờ giaacute trị RcvWindow trong caacutec đoạn

Becircn gửi hạn chế dữ liệu khocircng được ACK vagraveo RcvWindow bảo đảm bộ đệm nhận

khocircng tragraven

Transport Layer 3-73

Chương 3 Nội dung trigravenh bagravey

31 Caacutec dịch vụ lớp Transport

32 Multiplexing vagrave demultiplexing

33 Vận chuyển khocircng kết nối UDP

34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy

35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối

36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn

37 Điều khiển tắc nghẽn TCP

Transport Layer 3-74

TCP quản lyacute kết nối

Chuacute yacute Becircn gửi vagrave becircn nhận TCP thiết lập ldquokết nốirdquo trước khi trao đổi dữ liệu

khởi tạo caacutec biến TCP caacutec số thứ tự đoạn thocircng tin caacutec bộ đệm điều

khiển luồng (như RcvWindow)

client người khởi xướng kết nối

Socket clientSocket = new Socket(hostnameport

number) server được tiếp xuacutec bởi

client Socket connectionSocket =

welcomeSocketaccept()

3 phương phaacutep bắt tay

Bước 1 client host gửi đoạnTCP SYN đến server xaacutec định số thứ tự khởi đầu khocircng phải dữ liệu

Bước 2 server host nhận SYN trả lời với đoạn SYNACK

server cấp phaacutet caacutec bộ đệm

xaacutec định số thứ tự khởi đầuBước 3 client nhận SYNACK trả

lời với đoạn ACK (coacute thể chứa dữ liệu)

Transport Layer 3-75

TCP quản lyacute kết nối (tt)

Đoacuteng một kết nối

client đoacuteng socket clientSocketclose()

Bước 1 client gửi đoạn điều khiển TCP FIN đến server

Bước 2 server nhận FIN trả lời với ACK Đoacuteng kết nối gửi FIN

client

FIN

server

ACK

ACK

FIN

đoacuteng

đoacuteng

đatilde đoacutengthời g

ian c

hờ

Transport Layer 3-76

TCP quản lyacute kết nối (tt)

Bước 3 client nhận FIN trả lời với ACK

Trong khoảng ldquothời gian chờrdquo ndash sẽ phản hồi với ACK để nhận caacutec FIN

Bước 4 server nhận ACK Kết nối đatilde đoacuteng

Chuacute yacute với một sửa đổi nhỏ coacute thể quản lyacute nhiều FIN đồng thời

client

FIN

server

ACK

ACK

FIN

đang đoacuteng

đang đoacuteng

đatilde đoacuteng

thời g

ian c

hờ

đatilde đoacuteng

Transport Layer 3-77

TCP quản lyacute kết nối (tt)

chu kỳ sống củaTCP client

chu kỳ sống củaTCP server

Transport Layer 3-78

Chương 3 Nội dung trigravenh bagravey

31 Caacutec dịch vụ lớp Transport

32 Multiplexing vagrave demultiplexing

33 Vận chuyển khocircng kết nối UDP

34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy

35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối

36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn

37 Điều khiển tắc nghẽn TCP

Transport Layer 3-79

Caacutec nguyecircn lyacute điều khiển tắc nghẽn

Tắc nghẽn ldquoquaacute nhiều nguồn gửi quaacute nhanh vagrave quaacute nhiều

dữ liệu đến mạngrdquo khaacutec với điều khiển luồng caacutec biểu hiện

caacutec goacutei bị mất (tragraven bộ đệm tại caacutec router) caacutec độ trễ quaacute dagravei (xếp hagraveng trong bộ đệm

của router) lagrave 1 trong 10 vấn đề nan giải nhất

Transport Layer 3-80

Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 1

2 gửi 2 nhận 1 router caacutec bộ

đệm khocircng giới hạn

khocircng coacute truyền lại

caacutec độ trễ lớn hơn khi tắc nghẽn

năng suất coacute thể đạt tối đa

unlimited shared output link buffers

Host Ain original data

Host B

out

Transport Layer 3-81

Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 2

1 router caacutec bộ đệm coacute giới hạn becircn gửi truyền lại caacutec goacutei đatilde mất

chia sẻ vocirc hạncaacutec bộ đệm ouput

Host A in dữ liệu gốc

Host B

out

in dữ liệu gốc cugraveng với dữ liệu truyền lại

Transport Layer 3-82

Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 2 luocircn luocircn

truyền lại ldquohoagraven toagravenrdquo chỉ khi mất maacutet

truyền lại vigrave trễ (khocircng mất) lagravem cho lớn hơn với cugraveng

in

out

=

in

out

gt

in

out

ldquocaacutec chi phiacuterdquo của tắc nghẽn nhiều việc (truyền lại) caacutec truyền lại khocircng cần thiết liecircn kết nhiều bản sao của

goacutei

R2

R2in

ou

t

b

R2

R2in

ou

t

a

R2

R2in

ou

t

c

R4

R3

Transport Layer 3-83

Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 3 4 người gửi caacutec đường qua nhiều hop timeouttruyền lại

in

Hỏi điều gigrave xảy ra nếu vagrave tăng lecircn

in

chia sẻ vocirc hạncaacutec bộ đệm ouput

Host Ain dữ liệu gốc

Host B

out

in dữ liệu gốc cugraveng với dữ liệu truyền lại

Transport Layer 3-84

Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 3

ldquochi phiacuterdquo khaacutec của tắc nghẽn khi caacutec goacutei bị bỏ bất kỳ ldquokhả năng truyền

upstream dugraveng cho goacutei đoacute sẽ bị latildeng phiacuterdquo

Host A

Host B

o

u

t

Transport Layer 3-85

Caacutec caacutech tiếp cận đối với điều khiển tắc nghẽn

điều khiển tắc nghẽn end-end

khocircng coacute phản hồi rotilde ragraveng từ mạng

tắc nghẽn được suy ra từ việc quan saacutet caacutec hệ thống đầu cuối coacute mất maacutet trễ

tiếp cận được quản lyacute bởi TCP

điều khiển tắc nghẽn coacute sự hỗ trợ của mạng

caacutec router cung cấp phản hồi về caacutec hệ thống đầu cuối 1 bit duy nhất chỉ thị

tắc nghẽn (SNA DECbit TCPIP ECN ATM)

tốc độ sẽ gửi được xaacutec định rotilde ragraveng

2 caacutech

Transport Layer 3-86

Viacute dụ điều khiển tắc nghẽn ATM ABR

ABR tốc độ bit sẵn sagraveng

ldquodịch vụ mềm dẻordquo nếu đường gửi ldquochưa

hếtrdquo becircn gửi sẽ dugraveng

băng thocircng sẵn sagraveng nếu đường gửi tắc

nghẽn becircn gửi điều tiết với

tốc độ tối thiểu

RM (resource management)

gửi bởi becircn gửi rải raacutec với caacutec ocirc dữ liệu

caacutec bit trong ocirc thiết lập bởi caacutec switch bit NI khocircng tăng tốc độ

(tắc nghẽn nhẹ) bit CI tắc nghẽn rotilde rệt

Caacutec ocirc RM được trả về becircn gửi từ becircn nhận với nguyecircn vẹn caacutec bit

Transport Layer 3-87

Viacute dụ điều khiển tắc nghẽn ATM ABR

trường 2-byte ER trong ocirc RM switch đatilde tắc nghẽn coacute thể coacute giaacute trị ER thấp hơn trong ocirc tốc độ gửi do đoacute coacute thể được hỗ trợ tối đa trecircn đường

EFCI bit trong caacutec ocirc dữ liệu được cagravei giaacute trị 1 trong switch đatilde tắc nghẽn nếu ocirc dữ liệu đứng trước ocirc RM coacute cagravei EFCI becircn gửi sẽ cagravei

bit CI trong ocirc RM trả về

Transport Layer 3-88

Chương 3 Nội dung trigravenh bagravey

31 Caacutec dịch vụ lớp Transport

32 Multiplexing vagrave demultiplexing

33 Vận chuyển khocircng kết nối UDP

34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy

35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối

36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn

37 Điều khiển tắc nghẽn TCP

Transport Layer 3-89

TCP điều khiển tắc nghẽn additive tăng lecircn multiplicative giảm xuống

8 Kbytes

16 Kbytes

24 Kbytes

time

congestionwindow

Caacutech tiếp cận tăng tốc độ truyền (kiacutech thước cửa sổ) tigravem khả năng băng thocircng coacute thể cho đến khi coacute mất maacutet xảy ra additive tăng lecircn tăng CongWin bởi 1 MSS

mỗi RTT cho đến khi coacute mất maacutet xảy ra multiplicative giảm xuống bỏ CongWin trong

nửa giai đoạn sau khi mất maacutet

timekiacutech

thư

ớc

cửa

sổ

tắc

nghẽ

n

Tigravem kiếm băng thocircng

Transport Layer 3-90

TCP điều khiển tắc nghẽn chi tiết

becircn gửi hạn chế việc truyền LastByteSent-LastByteAcked

CongWin Cocircng thức

CongWin thay đổi chức năng lagrave nhận biết tắc nghẽn trecircn mạng

Lagravem thế nagraveo becircn gửi nhận biết tắc nghẽn

mất maacutet xảy ra = timeout hoặc 3 ack trugraveng lặp

becircn gửi giảm tốc độ (CongWin) sau khi mất maacutet xảy ra

3 cơ chế AIMD khởi động chậm thận trọng sau khi coacute

caacutec sự kiện timeout

tốc độ = CongWin

RTT Bytess

Transport Layer 3-91

TCP khởi động chậm

Khi kết nối bắt đầu CongWin = 1 MSS Viacute dụ MSS = 500 bytes

amp RTT = 200 ms tốc độ khởi tạo = 20

kbps

băng thocircng sẵn sagraveng coacute thể gtgt MSSRTT mong muốn nhanh

choacuteng tăng tốc lecircn tốc độ coacute thể đaacutep ứng

Khi kết nối bắt đầu tăng tốc lecircn rất nhanh cho đến khi sự cố mất maacutet xảy ra đầu tiecircn

Transport Layer 3-92

TCP khởi động chậm (tt)

Khi kết nối bắt đầu tăng tốc lecircn rất nhanh cho đến khi sự cố mất maacutet xảy ra đầu tiecircn nhacircn đocirci CongWin mỗi

RTT hoagraven thagravenh nhờ tăng CongWin ứng với mỗi ACK đatilde nhận

Tổng kết tốc độ khởi đầu lagrave chậm nhưng sau đoacute tăng tốc rất nhanh

Host A

1 đoạn

RTT

Host B

thời gian

2 đoạn

4 đoạn

Transport Layer 3-93

Tinh chếHỏi Khi nagraveo việc tăng

tốc trở thagravenh tuyến tiacutenh

Trả lời Khi CongWin đạt đến 12 giaacute trị của noacute trước khi timeout

Hiện thực Ngưỡng thay đổi Tại thời điểm coacute sự cố

mất maacutet ngưỡng được cagravei giaacute trị bằng frac12 của CongWin ngay trước đoacute

Transport Layer 3-94

Tinh chế nhận biết mất maacutet

Sau 3 ACK trugraveng lặp CongWin sẽ giảm 12 kiacutech thước cửa sổ

tăng tuyến tiacutenh nhưng sau sự cố

timeout CongWin thay giaacute trị

bằng 1 MSS kiacutech thước cửa sổ

tăng cấp lũy thừa khi đến một ngưỡng

thigrave tăng tuyến tiacutenh

3 ACK trugraveng nhau chỉ ra khả năng truyền của mạng timeout chỉ thị ldquonhiều cảnh baacuteordquo về tigravenh huống tắc nghẽn

Nguyecircn lyacute

Transport Layer 3-95

Tổng kết TCP điều khiển tắc nghẽn

Khi CongWin dưới Threshold becircn gửi đang trong giai đoạn khởi động chậm kiacutech thước cửa sổ tăng nhanh theo cấp lũy thừa

Khi CongWin trecircn Threshold becircn gửi đang trong giai đoạn traacutenh tắc nghẽn kiacutech thước cửa sổ tăng nhanh theo cấp tuyến tiacutenh

Khi coacute 3 ACK trugraveng lặp xảy ra Threshold = CongWin2 vagrave CongWin = Threshold

Khi timeout xảy ra Threshold = CongWin2 vagrave CongWin = 1 MSS

Transport Layer 3-96

TCP điều khiển tắc nghẽn becircn gửi

Trạng thaacutei Sự kiện TCP becircn gửi hagravenh động Diễn giải

Slow Start (SS)-Khởi động chậm

ACK baacuteo nhận cho dữ liệu chưa ACK trước đoacute

CongWin = CongWin + MSS If (CongWin gt Threshold) cagravei đặt trạng thaacutei ldquoTraacutenh tắc nghẽnrdquo

Hậu quả lagravem tăng gấp đocirci CongWin mỗi RTT

CongestionAvoidance (CA) ndashTraacutenh tắc nghẽn

ACK baacuteo nhận cho dữ liệu chưa ACK trước đoacute

CongWin = CongWin+MSS (MSSCongWin)

Additive tăng lecircn lagravem tăng CongWin lecircn 1 MSS mỗi RTT

SS hoặc CA Sự cố mất maacutet xảy ra khi thấy coacute 3 ACK trugraveng lặp

Threshold = CongWin2 CongWin = Thresholdcagravei đặt trạng thaacutei ldquoTraacutenh tắc nghẽnrdquo

Khocirci phục nhanh hiện thực giảm xuống multiplicative CongWin sẽ khocircng giảm xuống dưới 1 MSS

SS hoặc CA Timeout Threshold = CongWin2 CongWin = 1 MSScagravei đặt trạng thaacutei ldquoKhởi động chậmrdquo

Vagraveo chế độ ldquoKhởi động chậmrdquo

SS hoặc CA ACK trugraveng lặp

Đếm ACK tăng lecircn cho đoạn vừa được ACK

CongWin vagrave Threshold khocircng thay đổi

Transport Layer 3-97

TCP throughput

Throughout trung bigravenh của TCP biểu diễn qua kiacutech thước của sổ vagrave RTT Bỏ qua trạng thaacutei ldquoKhởi động chậmrdquo

Cho W lagrave kiacutech thước cửa sổ khi coacute mất maacutet xảy ra

Khi kiacutech thước cửa sổ = W lưu lượng = WRTT

Chỉ ngay sau khi mất maacutet cửa sổ giảm xuống = W2 lưu lượng = W2RTT

throughout trung bigravenh 075 WRTT

Transport Layer 3-98

TCP tương lai

Viacute dụ caacutec đoạn dagravei 1500 byte RTT 100ms lưu lượng 10 Gbps

Kiacutech thước cửa sổ yecircu cầu W = 83333 đoạn trecircn đường truyền

Lưu lượng trong caacutec trường hợp mất maacutet

L = 210-10

Phiecircn bản mới của TCP dagravenh cho nhu cầu tốc độ cao

LRTT

MSS221

Transport Layer 3-99

Mục tiecircu nếu K phiecircn lagravem việc TCP chia sẻ kết nối cổ chai của băng thocircng lagrave R mỗi phiecircn coacute tốc độ trung bigravenh lagrave RK

TCP kết nối 1

router cổ chaikhả năng R

TCP kết nối 2

TCP tiacutenh cocircng bằng

Transport Layer 3-100

Tại sao phải TCP cocircng bằng

2 phiecircn lagravem việc cạnh tranh nhau Additive tăng lưu lượng tăng multiplicative giảm lưu lượng tương xứng

R

R

chia sẻ băng thocircng bằng nhau

Connection 1 throughputConnect

ion 2

th

roughput

traacutenh tắc nghẽn additive tăng lecircnmất maacutet giảm cửa sổ bằng 12

traacutenh tắc nghẽn additive tăng lecircnmất maacutet giảm cửa sổ bằng 12

Transport Layer 3-101

TCP tiacutenh cocircng bằng (tt)

Tiacutenh cocircng bằng amp UDP nhiều ứng dụng

thường khocircng dugraveng TCP khocircng muốn tốc độ bị

điều tiết do điều khiển tắc nghẽn

Thay bằng dugraveng UDP truyền audiovideo với

tốc độ ổn định chịu được mất maacutet

Nghiecircn cứu giao thức thacircn thiện với TCP

Tiacutenh cocircng bằng amp caacutec kết nối TCP song song

khocircng coacute gigrave ngăn cản việc ứng dụng mở caacutec kết nối song song giữa 2 host

Trigravenh duyệt Web lagravem giống như thế

Viacute dụ tốc độ R hỗ trợ 9 kết nối ứng dụng mới yecircu cầu 1

TCP coacute tốc độ R10 ứng dụng mới yecircu cầu 11

TCP coacute tốc độ R2

Transport Layer 3-102

Mocirc higravenh trễ

Hỏi Mất bao lacircu để nhận 1 đối tượng từ Web server sau khi gửi yecircu cầu

Bỏ qua tắc nghẽn trễ bị ảnh hưởng bởi

thiết lập kết nối TCP trễ truyền dữ liệu khởi động chậm

Notation caacutec giả định Giả sử một kết nối giữa

client vagrave server coacute tốc độ R

S MSS (bits) O kiacutech thước đối tượng

(bits) khocircng truyền lại (khocircng

mất maacutet khocircng hỏng)

Kiacutech thước cửa sổ Giả định 1 cửa sổ tắc

nghẽn cố định coacute W đoạn Sau đoacute cửa sổ thay đổi

mocirc higravenh khởi động chậm

Transport Layer 3-103

Cửa sổ tắc nghẽn cố định (1)

Trường hợp đầu tiecircnWSR gt RTT + SR cho

đoạn đầu tiecircn trong cửa sổ trả về trước khi cửa sổ dữ liệu gửi ACK

trễ = 2RTT + OR

Transport Layer 3-104

Cửa sổ tắc nghẽn cố định (2)

Trường hợp thứ hai WSR lt RTT + SR sent

chờ cho ACK sau khi gửi dữ liệu

trễ = 2RTT + OR+ (K-1)[SR + RTT - WSR]

Transport Layer 3-105

TCP Mocirc higravenh trễ Khởi động chậm (1)

Bacircy giờ giả sử kiacutech thước cửa sổ tăng lecircn tugravey theo quaacute trigravenh khởi động chậm

Độ trễ của một đối tượng sẽ lagrave

R

S

R

SRTTP

R

ORTTLatency P )12(2

trong đoacute P lagrave số lần TCP rảnh ở tại server

1min KQP

- trong đoacute Q lagrave số lần server rảnh nếu đối tượng đatilde khởi tạo kiacutech thước

- vagrave K lagrave số lượng cửa sổ bao trugravem đối tượng

Transport Layer 3-106

TCP Mocirc higravenh trễ Khởi động chậm (2)

RTT

initia te TCPconnection

requestobject

first w indow= S R

second w indow= 2S R

third w indow= 4S R

fourth w indow= 8S R

com pletetransm issionobject

delivered

tim e atc lient

tim e atserver

Viacute dụbull OS = 15 đoạnbull K = 4 cửa sổbull Q = 2bull P = minK-1Q = 2

Server rảnh P=2 lần

Caacutec thagravenh phần trễbull 2 RTT dagravenh cho thiết lập kết nối vagrave yecircu cầubull OR để truyền đối tượngbullthời gian server rảnh bởi vigrave khởi động chậm

Server rảnh P = minK-1Q lần

Transport Layer 3-107

TCP Mocirc higravenh trễ(3)

R

S

R

SRTTPRTT

R

O

R

SRTT

R

SRTT

R

O

idleTimeRTTR

O

P

kP

k

P

pp

)12(][2

]2[2

2delay

1

1

1

th window after the timeidle 2 1 kR

SRTT

R

S k

ementacknowledg receivesserver until

segment send tostartsserver when from time RTTR

S

window kth the transmit totime2 1

R

Sk

RTT

initia te TCPconnection

requestobject

first w indow= S R

second w indow= 2S R

third w indow= 4S R

fourth w indow= 8S R

com pletetransm issionobject

delivered

tim e atc lient

tim e atserver

Transport Layer 3-108

TCP Mocirc higravenh trễ (4)

)1(log

)1(logmin

12min

222min

222min

2

2

110

110

S

OS

Okk

S

Ok

SOk

OSSSkK

k

k

k

caacutech tiacutenh toaacuten Q tương tự (xem HW)

K = số lượng cửa sổ bao trugravem đối tượngLagravem thế nagraveo tiacutenh được K

Transport Layer 3-109

HTTP Mocirc higravenh Giả sử trang Web chứa

1 trang HTML (kiacutech thước O bits) M higravenh ảnh (mỗi caacutei kiacutech thướcO bits)

HTTP khocircng bền vững M+1 TCP kết nối Thời gian đaacutep ứng = (M+1)OR + (M+1)2RTT + tổng số thời

gian rảnh HTTP bền vững

2 RTT để yecircu cầu vagrave nhận file HTML 1 RTT để yecircu cầu vagrave nhận M higravenh ảnh Thời gian đaacutep ứng = (M+1)OR + 3RTT + tổng số thời gian

rảnh HTTP khocircng bền vững với X kết nối song song

Giả sử MX lagrave số nguyecircn 1 TCP kết nối cho file MX thiết lập caacutec kết nối song song cho caacutec higravenh ảnh Thời gian đaacutep ứng = (M+1)OR + (MX + 1)2RTT + tổng số

thời gian rảnh

Transport Layer 3-110

02468

101214161820

28Kbps

100Kbps

1Mbps

10Mbps

non-persistent

persistent

parallel non-persistent

HTTP thời gian đaacutep ứng (giacircy)RTT = 100 msec O = 5 Kbytes M=10 vagrave X=5

Với băng thocircng thấp thời gian kết nối amp đaacutep ứng trội hơn thời gian truyền

Caacutec kết nối bền vững chỉ cho sự cải thiện khocircng đaacuteng kể trecircn caacutec kết nối song song

Transport Layer 3-111

0

10

20

30

40

50

60

70

28Kbps

100Kbps

1Mbps

10Mbps

non-persistent

persistent

parallel non-persistent

HTTP thời gian đaacutep ứng (giacircy)

RTT =1 sec O = 5 Kbytes M=10 and X=5

Với RTT lớn hơn thời gian đaacutep ứng trội hơn thời gian trễ chờ thiết lập kết nốiTCP amp khởi động chậm Caacutec kết nối bền vững bacircy giờ cho thấy cải thiện rotilde rệt đặc biệtvới caacutec mạng băng thocircng cao

Transport Layer 3-112

Chương 3 Tổng kết caacutec nguyecircn lyacute của caacutec

dịch vụ lớp transport multiplexing

demultiplexing truyền dữ liệu tin cậy điều khiển luồng điều khiển tắc nghẽn

khởi tạo vagrave hiện thực trong Internet UDP TCP

Tiếp theo nghiecircn cứu xong

caacutec vấn đề ldquongoagravei biecircnrdquo (caacutec lớp application transport)

chuẩn bị vagraveo phần ldquolotildeirdquo của mạng

  • Slide 1
  • Chương 3 Lớp Transport
  • Chương 3 Nội dung trigravenh bagravey
  • Caacutec dịch vụ vagrave giao thức Transport
  • Lớp Transport với lớp network
  • Caacutec giao thức lớp transport trecircn Internet
  • Slide 7
  • Multiplexingdemultiplexing
  • Demultiplexing lagravem việc như thế nagraveo
  • Demultiplexing khocircng kết nối
  • Demultiplexing khocircng kết nối (tiếp)
  • Demultiplexing hướng kết nối
  • Demultiplexing hướng kết nối (tiếp)
  • Demultiplexing hướng kết nối Threaded Web Server
  • Slide 15
  • UDP User Datagram Protocol [RFC 768]
  • UDP (tt)
  • UDP checksum
  • Viacute dụ Checksum
  • Slide 20
  • Caacutec nguyecircn lyacute truyền dữ liệu tin cậy
  • Slide 22
  • Slide 23
  • Truyền dữ liệu tin cậy
  • Slide 25
  • Rdt10 truyền dữ liệu tin cậy trecircn 1 kecircnh truyền tin cậy
  • Rdt20 kecircnh với caacutec lỗi
  • rdt20 đặc tả FSM
  • rdt20 hoạt động khi khocircng lỗi
  • rdt20 hoạt động khi coacute lỗi
  • rdt20 coacute lỗ hổng nghiecircm trọng
  • rdt21 người gửi quản lyacute caacutec ACKNAK bị hỏng
  • Slide 33
  • rdt21 thảo luận
  • rdt22 một giao thức khocircng cần NAK
  • rdt22 gửi nhận caacutec mảnh
  • rdt30 caacutec kecircnh với lỗi vagrave mất maacutet
  • rdt30 gửi
  • hagravenh động của rdt30
  • Slide 40
  • Hiệu suất của rdt30
  • rdt30 hoạt động dừng-vagrave-chờ
  • Caacutec giao thức Pipelined
  • Pipelining độ khả dụng tăng
  • Go-Back-N
  • GBN becircn gửi mở rộng FSM
  • GBN becircn nhận mở rộng FSM
  • GBN hoạt động
  • Lặp coacute lựa chọn
  • Lặp coacute lựa chọn caacutec cửa sổ gửi nhận
  • Slide 51
  • Hoạt động của lặp coacute lựa chọn
  • Lặp coacute lựa chọn tigravenh trạng khoacute giải quyết
  • Slide 54
  • TCP Tổng quan RFCs 793 1122 1323 2018 2581
  • TCP cấu truacutec đoạn
  • Caacutec số thứ tự TCP vagrave ACK
  • TCP Round Trip Time vagraveTimeout
  • TCP Round Trip Time vagrave Timeout
  • Viacute dụ đaacutenh giaacute RTT
  • Slide 61
  • TCP truyền dữ liệu tin cậy
  • TCP caacutec sự kiện
  • TCP becircn gửi (đơn giản)
  • TCP caacutec tigravenh huống truyền lại
  • TCP caacutec tigravenh huống truyền lại (tt)
  • TCP sinh ra ACK [RFC 1122 RFC 2581]
  • Truyền lại nhanh
  • Giải thuật truyền lại nhanh
  • Slide 70
  • TCP điều khiển luồng
  • TCP điều khiển luồng caacutech lagravem
  • Slide 73
  • TCP quản lyacute kết nối
  • TCP quản lyacute kết nối (tt)
  • Slide 76
  • Slide 77
  • Slide 78
  • Caacutec nguyecircn lyacute điều khiển tắc nghẽn
  • Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 1
  • Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 2
  • Slide 82
  • Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 3
  • Slide 84
  • Caacutec caacutech tiếp cận đối với điều khiển tắc nghẽn
  • Viacute dụ điều khiển tắc nghẽn ATM ABR
  • Slide 87
  • Slide 88
  • TCP điều khiển tắc nghẽn additive tăng lecircn multiplicative giảm xuống
  • TCP điều khiển tắc nghẽn chi tiết
  • TCP khởi động chậm
  • TCP khởi động chậm (tt)
  • Tinh chế
  • Tinh chế nhận biết mất maacutet
  • Tổng kết TCP điều khiển tắc nghẽn
  • TCP điều khiển tắc nghẽn becircn gửi
  • TCP throughput
  • TCP tương lai
  • TCP tiacutenh cocircng bằng
  • Tại sao phải TCP cocircng bằng
  • TCP tiacutenh cocircng bằng (tt)
  • Mocirc higravenh trễ
  • Cửa sổ tắc nghẽn cố định (1)
  • Cửa sổ tắc nghẽn cố định (2)
  • TCP Mocirc higravenh trễ Khởi động chậm (1)
  • TCP Mocirc higravenh trễ Khởi động chậm (2)
  • TCP Mocirc higravenh trễ(3)
  • TCP Mocirc higravenh trễ (4)
  • HTTP Mocirc higravenh
  • Slide 110
  • Slide 111
  • Chương 3 Tổng kết

Transport Layer 3-28

rdt20 đặc tả FSM

chờ gọi từ lớp trecircn

snkpkt = make_pkt(data checksum)udt_send(sndpkt)

extract(rcvpktdata)deliver_data(data)udt_send(ACK)

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)

rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp isNAK(rcvpkt)

udt_send(NAK)

rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)

chờ ACK hoặc NAK

chờ gọi từ lớp dưới

người gửi

người nhậnrdt_send(data)

Transport Layer 3-29

rdt20 hoạt động khi khocircng lỗi

chờ gọi từ lớp dưới

snkpkt = make_pkt(data checksum)udt_send(sndpkt)

extract(rcvpktdata)deliver_data(data)udt_send(ACK)

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)

rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp isNAK(rcvpkt)

udt_send(NAK)

rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)

chờ ACK hoặc NAK

chờ gọi từ lớp dưới

rdt_send(data)

Transport Layer 3-30

rdt20 hoạt động khi coacute lỗi

chờ gọi từ lớp dưới

snkpkt = make_pkt(data checksum)udt_send(sndpkt)

extract(rcvpktdata)deliver_data(data)udt_send(ACK)

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)

rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp isNAK(rcvpkt)

udt_send(NAK)

rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)

chờ ACK hoặc NAK

chờ gọi từ lớp dưới

rdt_send(data)

Transport Layer 3-31

rdt20 coacute lỗ hổng nghiecircm trọngĐiều gigrave xảy ra nếu

ACKNAK bị hỏng người gửi khocircng biết điều

gigrave đatilde xảy ra tại becircn nhận

khocircng thể đơn phương truyền lại khả năng trugraveng lặp

Quản lyacute trugraveng lặp người gửi truyền lại goacutei

hiện tại nếu ACKNAK bị hỏng

người gửi thecircm số thứ tự vagraveo mỗi goacutei

người nhận hủy (khocircng nhận) goacutei trugraveng lặp

Người gửi gửi 1 goacutei sau đoacute dừng lại chờ phản hồitừ người nhận

dừng vagrave chờ

Transport Layer 3-32

rdt21 người gửi quản lyacute caacutec ACKNAK bị hỏng

chờ gọi 0 từ lớp trecircn

sndpkt = make_pkt(0 data checksum)udt_send(sndpkt)

rdt_send(data)

chờ ACK hoặc NAK

0 udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) ||isNAK(rcvpkt) )

sndpkt = make_pkt(1 data checksum)udt_send(sndpkt)

rdt_send(data)

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) ||isNAK(rcvpkt) )

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt)

chờ gọi 1 từ lớp trecircn

chờ ACK hoặc NAK

1

Transport Layer 3-33

rdt21 người gửi quản lyacute caacutec ACKNAK bị hỏng

chờ 0 từ dưới

sndpkt = make_pkt(NAK chksum)udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp not corrupt(rcvpkt) ampamp has_seq0(rcvpkt)

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp has_seq1(rcvpkt)

extract(rcvpktdata)deliver_data(data)sndpkt = make_pkt(ACK chksum)udt_send(sndpkt)

chờ 1 từ dưới

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp has_seq0(rcvpkt)

extract(rcvpktdata)deliver_data(data)sndpkt = make_pkt(ACK chksum)udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp (corrupt(rcvpkt)

sndpkt = make_pkt(ACK chksum)udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp not corrupt(rcvpkt) ampamp has_seq1(rcvpkt)

rdt_rcv(rcvpkt) ampamp (corrupt(rcvpkt)

sndpkt = make_pkt(ACK chksum)udt_send(sndpkt)

sndpkt = make_pkt(NAK chksum)udt_send(sndpkt)

Transport Layer 3-34

rdt21 thảo luận

người gửi số thứ tự thecircm vagraveo

goacutei chỉ cần hai số thứ tự

(01) lagrave đủ Tại sao phải kiểm tra nếu việc

nhận ACKNAK bị hỏng

số trạng thaacutei tăng lecircn 2 lần trạng thaacutei phải ldquonhớrdquo

goacutei ldquohiện tạirdquo coacute số thứ tự lagrave 0 hay 1

người nhận phải kiểm tra coacute

nhận trugraveng goacutei khocircng trạng thaacutei chỉ rotilde coacute

hay khocircng mong chờ số thứ tự 0 hoặc 1

chuacute yacute người nhận khocircng biết ACKNAK vừa rồi của noacute coacute được người gửi nhận tốt hay khocircng

Transport Layer 3-35

rdt22 một giao thức khocircng cần NAK

chức năng giống như rdt21 chỉ dugraveng caacutec ACK thay cho NAK người nhận gửi ACK cho goacutei vừa

rồi đatilde nhận tốt người nhận phải rotilde ragraveng chegraven số thứ tự của goacutei vừa ACK

trugraveng ACK tại người gửi hậu quả giống như hagravenh động của NAK truyền lại goacutei vừa rồi

Transport Layer 3-36

rdt22 gửi nhận caacutec mảnh

Chờ cho gọi 0 từ

trecircn

sndpkt = make_pkt(0 data checksum)udt_send(sndpkt)

rdt_send(data)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) || isACK(rcvpkt1) )

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt0)

Chờ cho ACK

0

gửi phacircn mảnhFSM

Chờ cho gọi

0 từ dưới

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp has_seq1(rcvpkt)

extract(rcvpktdata)deliver_data(data)sndpkt = make_pkt(ACK1 chksum)udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp (corrupt(rcvpkt) || has_seq1(rcvpkt))

udt_send(sndpkt)

nhận phacircn mảnhFSM

Transport Layer 3-37

rdt30 caacutec kecircnh với lỗi vagrave mất maacutet

Giả định mới kecircnh ưu tiecircn cũng coacute thể lagravem mất caacutec goacutei (dữ liệu hoặc caacutec ACK) checksum số thứ tự

caacutec ACK caacutec việc truyền lại sẽ hỗ trợ nhưng khocircng đủ

Caacutech tiếp cận người gửi chờ ACK trong khoảng thời gian ldquochấp nhận đượcrdquo

truyền lại nếu khocircng nhận ACK trong khoảng thời gian nagravey

nếu goacutei (hoặc ACK) chỉ trễ (khocircng mất) truyền lại sẽ gacircy trugraveng

nhưng dugraveng số thứ tự sẽ giải quyết được

người nhận phải xaacutec định số thứ tự của goacutei vừa gửi ACK

cần bộ định thigrave đếm lugravei

Transport Layer 3-38

rdt30 gửi

sndpkt = make_pkt(0 data checksum)udt_send(sndpkt)start_timer

rdt_send(data)

Chờ cho

ACK 0

rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) ||isACK(rcvpkt1) )

Chờ cho gọi 1 từ trecircn

sndpkt = make_pkt(1 data checksum)udt_send(sndpkt)start_timer

rdt_send(data)

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt0)

rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) ||isACK(rcvpkt0) )

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt1)

stop_timerstop_timer

udt_send(sndpkt)start_timer

timeout

udt_send(sndpkt)start_timer

timeout

rdt_rcv(rcvpkt)

Chờ cho gọi 0 từ trecircn

Chờ cho

ACK 1

rdt_rcv(rcvpkt)

Transport Layer 3-39

hagravenh động của rdt30

Transport Layer 3-40

hagravenh động của rdt30

Transport Layer 3-41

Hiệu suất của rdt30

rdt30 lagravem việc được nhưng đaacutenh giaacute hiệu suất hơi rắc rối viacute dụ liecircn kết 1 Gbps trễ lan truyền giữa hai đầu cuối lagrave 15

ms goacutei 1KB

T truyền = 8kbpkt109 bsec

= 8 microsec

U sender độ khả dụng ndash

U sender

= 008

30008 = 000027

microseconds

L R

RTT + L R =

L (độ dagravei goacutei tiacutenh bằng bits)R (tốc độ truyền bps)

=

goacutei 1KB mỗi 30 msec -gt 33kBs trecircn đường truyền 1 Gbps giao thức network hạn chế việc dugraveng caacutec tagravei nguyecircn vật

lyacute

Transport Layer 3-42

rdt30 hoạt động dừng-vagrave-chờ

goacutei đầu tiecircn đatilde truyền t = 0

gửi nhận

RTT

goacutei cuối cugraveng đatilde truyền t = L R

goacutei đầu tiecircn đatilde đếngoacutei cuối cugraveng đatilde đến gửi ACK

ACK đến gửi goacutei kế tiếp t = RTT + L R

U sender

= 008

30008 = 000027

microseconds

L R

RTT + L R =

Transport Layer 3-43

Caacutec giao thức Pipelined

Pipelining người gửi cho pheacutep gửi nhiều goacutei đồng thời khocircng cần chờ baacuteo nhận được nhoacutem caacutec số thứ tự phải tăng dần phải coacute bộ nhớ đệm tại nơi gửi vagravehoặc nơi nhận

hai dạng phổ biến của caacutec giao thức pipelined go-Back-N Lặp coacute lựa chọn

Transport Layer 3-44

Pipelining độ khả dụng tăng

goacutei đầu tiecircn đatilde truyền t = 0

sender receiver

RTT

goacutei cuối cugraveng đatilde truyền t = L R

goacutei đầu tiecircn đatilde đếngoacutei cuối cugraveng đatilde đến gửi ACK

ACK đến gửi goacuteikế tiếp t = RTT + L R

bit cuối của goacutei thứ 2 đến gửi ACKbit cuối của goacutei thứ 3 đến gửi ACK

U sender

= 024

30008 = 00008

microseconds

3 L R

RTT + L R =

Độ khả dụng tăng lecircngấp 3 lần

Transport Layer 3-45

Go-Back-NBecircn gửi k-bit số thứ tự trong header của goacutei ldquocửa sổrdquo tăng lecircn đến N cho pheacutep gửi caacutec goacutei liecircn tục khocircng cần ACK

ACK(n) ACKs tất cả caacutec goacutei đến chứa số thứ tự n ndash ldquoACK tiacutech lũyrdquo coacute thể nhận caacutec ACK trugraveng lặp (xem becircn nhận)

định thigrave cho mỗi goacutei trecircn đường truyền timeout(n) gửi lại goacutei n vagrave tất cả caacutec goacutei coacute số thứ tự cao

hơn trong cửa sổ

Transport Layer 3-46

GBN becircn gửi mở rộng FSM

chờ start_timerudt_send(sndpkt[base])udt_send(sndpkt[base+1])hellipudt_send(sndpkt[nextseqnum-1])

timeout

rdt_send(data)

if (nextseqnum lt base+N) sndpkt[nextseqnum] = make_pkt(nextseqnumdatachksum) udt_send(sndpkt[nextseqnum]) if (base == nextseqnum) start_timer nextseqnum++ else refuse_data(data)

base = getacknum(rcvpkt)+1If (base == nextseqnum) stop_timer else start_timer

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)

base=1nextseqnum=1

rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)

Transport Layer 3-47

GBN becircn nhận mở rộng FSM

ACK-duy nhất luocircn luocircn gửi ACK cho goacutei đatilde nhận đuacuteng với số thứ tự xếp hạng cao nhất coacute thể sinh ra caacutec ACK trugraveng nhau chỉ cần nhớ expectedseqnum

goacutei khocircng theo thứ tự hủy -gt khocircng nhận vagraveo bộ đệm gửi lại ACK với số thứ tự xếp hạng cao nhất

chờ

udt_send(sndpkt)

default

rdt_rcv(rcvpkt) ampamp notcurrupt(rcvpkt) ampamp hasseqnum(rcvpktexpectedseqnum)

extract(rcvpktdata)deliver_data(data)sndpkt = make_pkt(expectedseqnumACKchksum)udt_send(sndpkt)expectedseqnum++

expectedseqnum=1sndpkt = make_pkt(expectedseqnumACKchksum)

Transport Layer 3-48

GBN hoạt động

Transport Layer 3-49

Lặp coacute lựa chọn

becircn nhận thocircng baacuteo đatilde nhận đuacuteng tất cả từng goacutei một đệm (buffer) caacutec goacutei nếu cần thiết

becircn gửi chỉ gửi lại caacutec goacutei nagraveo khocircng nhận được ACK becircn gửi định thigrave đối với mỗi goacutei khocircng gửi ACK

cửa sổ becircn gửi N số thứ tự liecircn tục hạn chế số thứ tự caacutec goacutei khocircng gửi ACK

Transport Layer 3-50

Lặp coacute lựa chọn caacutec cửa sổ gửi nhận

Transport Layer 3-51

Lặp coacute lựa chọn

dữ liệu từ lớp trecircn nếu số thứ tự kế tiếp sẵn

sagraveng trong cửa sổ gửi goacutei

timeout(n) gửi lại goacutei n taacutei khởi tạo

bộ định thigrave

ACK(n) trong [sendbasesendbase+N]

đaacutenh dấu goacutei n lagrave đatilde nhận nếu goacutei khocircng ACK coacute n

nhỏ nhất dịch chuyển cửa sổ base đến số thứ tự khocircng ACK kế tiếp

Gửigoacutei n trong [rcvbase

rcvbase+N-1]

gửi ACK(n) khocircng thứ tự đệm

(buffer) coacute thứ tự truyền (cũng

truyền caacutec goacutei đatilde đệm coacute thứ tự) dịch chuyển cửa sổ đến goacutei chưa nhận kế tiếp

goacutei n trong [rcvbase-Nrcvbase-1]

ACK(n)

ngược lại lờ đi

Nhận

Transport Layer 3-52

Hoạt động của lặp coacute lựa chọn

Transport Layer 3-53

Lặp coacute lựa chọntigravenh trạng khoacute giải quyếtViacute dụ Số thứ tự 0 1 2 3 Kiacutech thước cửa sổ = 3

becircn nhận khocircng thấy sự khaacutec nhau trong 2 tigravenh huống

chuyển khocircng chiacutenh xaacutec dữ liệu trugraveng lặp như dữ liệu mới trong (a)

Hỏi quan hệ giữa datildey số thứ tự vagrave kiacutech thước cửa sổ

Transport Layer 3-54

Chương 3 Nội dung trigravenh bagravey

31 Caacutec dịch vụ lớp Transport

32 Multiplexing vagrave demultiplexing

33 Vận chuyển khocircng kết nối UDP

34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy

35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối

36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn

37 Điều khiển tắc nghẽn TCP

Transport Layer 3-55

TCP Tổng quan RFCs 793 1122 1323 2018 2581

dữ liệu full duplex luồng dữ liệu đi 2 chiều

trong cugraveng một kết nối MSS maximum

segment size ndash kiacutech thước đoạn tối đa

hướng kết nối bắt tay (trao đổi caacutec

thocircng điệp điều khiển) trạng thaacutei becircn gửi becircn nhận trước khi trao đổi dữ liệu

điều khiển luồng becircn gửi sẽ khocircng lấn aacutet

becircn nhận

point-to-point một becircn gửi một becircn

nhận tin cậy dograveng byte coacute

thứ tự khocircng ldquoranh giới thocircng

điệprdquo kecircnh liecircn lạc

TCP điều khiển luồng vagrave tắc nghẽn thiết lập kiacutech thước cửa sổ

caacutec bộ đệm gửi amp nhận

socketdoor

T C Psend buffer

T C Preceive buffer

socketdoor

segm ent

applicationwrites data

applicationreads data

Transport Layer 3-56

TCP cấu truacutec đoạn

port nguồn port điacutech

32 bits

dữ liệu ứng dụng(độ dagravei thay đổi)

số thứ tự

số ACKcửa sổ nhận

con trỏ URGchecksum

FSRPAUheadlen

notused

Tugravey chọn (độ dagravei thay đổi)

URG dữ liệu khẩn cấp(thường khocircng dugraveng)

ACK ACK hợp lệ

PSH push data now(thường khocircng dugraveng)

RST SYN FINthiết lập kết nối

(caacutec lệnh thiết lậpchia nhỏ)

số byte becircn nhận sẵn sagraveng chấp nhận

đếm bởi số bytecủa dữ liệu

Internetchecksum

(giống UDP)

Transport Layer 3-57

Caacutec số thứ tự TCP vagrave ACKCaacutec số thứ tự

dograveng byte ldquođaacutenh sốrdquo byte đầu tiecircn trong dữ liệu của đoạn

caacutec ACK số thứ tự của byte

kế tiếp được chờ đợi từ phiacutea becircn kia

ACK tiacutech lũyHỏi lagravem thế nagraveo becircn

nhận quản lyacute caacutec đoạn khocircng thứ tự Trả lời TCP khocircng

đề cập tugravey thuộc người hiện thực

Host A Host B

Seq=42 ACK=79 data = lsquoCrsquo

Seq=79 ACK=43 data = lsquoCrsquo

Seq=43 ACK=80

UsernhậplsquoCrsquo

host ACKsnhận phản hồi

lsquoCrsquo

host ACKsbaacuteo nhận

lsquoCrsquo phản hồingược lại lsquoCrsquo

timetigravenh huống telnet đơn giản

Transport Layer 3-58

TCP Round Trip Time vagraveTimeout

Hỏi Lagravem thế nagraveo để thiết lập giaacute trị TCP timeout

dagravei hơn RTT khaacutec với RTT

quaacute ngắn timeout sớm truyền lại khocircng

cần thiết quaacute dagravei phản ứng

chậm đối với việc mất maacutet goacutei

Hỏi Lagravem thế nagraveo để thiết lập RTT

SampleRTT thời gian được đo từ khi truyền đoạn đến khi baacuteo nhận ACK lờ đi việc truyền lại

SampleRTT sẽ thay đổi muốn ước lượng RTT ldquomượt hơnrdquo tiacutenh trung bigravenh một số giaacute

trị đo được gần đoacute khocircng chỉ SampleRTT hiện tại

Transport Layer 3-59

TCP Round Trip Time vagrave Timeout

EstimatedRTT = (1- )EstimatedRTT + SampleRTT

giaacute trị đặc trưng = 0125

Transport Layer 3-60

Viacute dụ đaacutenh giaacute RTTRTT gaiacsumassedu to fantasiaeurecomfr

100

150

200

250

300

350

1 8 15 22 29 36 43 50 57 64 71 78 85 92 99 106

time (seconnds)

RTT

(mill

isec

onds

)

SampleRTT Estimated RTT

Transport Layer 3-61

TCP Round Trip Time vagrave Timeout

Thiết lập timeout EstimtedRTT cộng ldquohệ số dự trữ an toagravenrdquo

sự biến thiecircn lớn trong EstimatedRTT -gt hệ số dự trữ an toagraven lớn hơn ước lượng đầu tiecircn về sự biến thiecircn của SampleRTT từ EstimatedRTT

TimeoutInterval = EstimatedRTT + 4DevRTT

DevRTT = (1-)DevRTT + |SampleRTT-EstimatedRTT|

(tiecircu biểu = 025)

Sau đoacute thiết lập timeout interval

Transport Layer 3-62

TCP truyền dữ liệu tin cậy

TCP tạo dịch vụ rdt trecircn dịch vụ khocircng tin cậy IP

caacutec đoạn Pipelined caacutec ACK tiacutech lũy TCP dugraveng bộ định thigrave

truyền lại đơn

Truyền lại được kiacutech hoạt bởi caacutec sự kiện timeout caacutec ack trugraveng lặp

luacutec đầu khảo saacutet caacutec becircn gửi TCP đơn giản lờ đi caacutec ack trugraveng lặp lờ đi điều khiển luồng

điều khiển tắc nghẽn

Transport Layer 3-63

TCP caacutec sự kiệndữ liệu đatilde nhận từ ứng

dụng tạo đoạn với số thứ

tự của noacute số thứ tự lagrave số theo

byte dữ liệu đầu tiecircn khởi động bộ định thigrave

nếu chưa chạy khoảng thời gian hết

hạn TimeOutInterval

timeout gửi lại đoạn nagraveo gacircy

ra timeout khởi động lại bộ định

thigrave Ack đatilde nhận

cập nhật caacutei gigrave sẽ được ACK

khởi động bộ định thigrave nếu coacute caacutec đoạn cograven chờ

Transport Layer 3-64

TCP becircn gửi(đơn giản)

NextSeqNum = InitialSeqNum SendBase = InitialSeqNum

loop (forever) switch(event)

event data received from application above create TCP segment with sequence number NextSeqNum if (timer currently not running) start timer pass segment to IP NextSeqNum = NextSeqNum + length(data)

event timer timeout retransmit not-yet-acknowledged segment with smallest sequence number start timer

event ACK received with ACK field value of y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer

end of loop forever

Chuacute thiacutechbull SendBase-1 byte vừa được ACK tiacutech lũy Viacute dụbull SendBase-1 = 71y= 73 vigrave thế becircn nhận muốn 73+ y gt SendBase vigrave thế dữ liệu mới được chấp nhận

Transport Layer 3-65

TCP caacutec tigravenh huống truyền lại

Host A

Seq=100 20 bytes data

ACK=100

timetimeout sớm

Host B

Seq=92 8 bytes data

ACK=120

Seq=92 8 bytes data

Seq=

92

tim

eout

ACK=120

Host A

Seq=92 8 bytes data

ACK=100

loss

tim

eout

tigravenh huống mất ACK

Host B

X

Seq=92 8 bytes data

ACK=100

time

Seq=

92

tim

eout

SendBase= 100

SendBase= 120

SendBase= 120

Sendbase= 100

Transport Layer 3-66

TCP caacutec tigravenh huống truyền lại (tt)Host A

Seq=92 8 bytes data

ACK=100

loss

tim

eout

Cumulative ACK scenario

Host B

X

Seq=100 20 bytes data

ACK=120

time

SendBase= 120

Transport Layer 3-67

TCP sinh ra ACK [RFC 1122 RFC 2581]

Sự kiện tại becircn nhận

Đoạn đến với đuacuteng số thứ tự mong muốn Tất cả dữ liệu đếnđatilde được ACK

Đoạn đến với đuacuteng số thứ tự mong muốn Một đoạn khaacutec đangchờ ACK

Caacutec đoạn đến khocircng thứ tựlớn hơn số thứ tự đoạn mong muốnCoacute khoảng trống

Đoạn đếnlấp đầy từng phần hoặc toagraven bộkhoảng trống

TCP becircn nhận hagravenh động

ACK trễ Chờ đến 500mscho đoạn kế tiếp Nếu khocircng coacute đoạnkế tiếp gửi ACK

Gửi ngay một ACK tiacutech lũy chấp nhậncho cả caacutec đoạn theo thứ tự

Gửi ngay ACK trugraveng lặp chỉ thị số thứ tựđoạn của byte kế tiếp đang mong chờ

Gửi ngay ACK với điều kiện lagrave đoạnbắt đầu ngay điểm coacute khoảng trống

Transport Layer 3-68

Truyền lại nhanh

Chu kỳ Time-out thường tương đối dagravei độ trễ dagravei trước khi gửi

lại goacutei đatilde mất

Xaacutec nhận caacutec đoạn đatilde mất bằng caacutec ACK trugraveng lặp becircn gửi thường gửi

nhiều đoạn song song Nếu đoạn bị mất sẽ

xảy ra tigravenh trạng giống như nhiều ACK trugraveng nhau

Nếu becircn gửi nhận 3 ACK của cugraveng một dữ liệu noacute cho lagrave đoạn sau dữ liệu đatilde ACK bị mất Truyền lại nhanh gửi

lại đoạn trước khi bộ định thigrave hết hạn

Transport Layer 3-69

sự kiện ACK đatilde nhận với trường lagrave y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer else increment count of dup ACKs received for y if (count of dup ACKs received for y = 3) resend segment with sequence number y

Giải thuật truyền lại nhanh

một ACK trugraveng lặp cho đoạn đatilde được ACK

Truyền lại nhanh

Transport Layer 3-70

Chương 3 Nội dung trigravenh bagravey

31 Caacutec dịch vụ lớp Transport

32 Multiplexing vagrave demultiplexing

33 Vận chuyển khocircng kết nối UDP

34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy

35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối

36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn

37 Điều khiển tắc nghẽn TCP

Transport Layer 3-71

TCP điều khiển luồng

becircn nhận của kết nối TCP coacute một bộ đệm nhận

dịch vụ so trugraveng tốc độ so trugraveng tốc độ gửi với tốc độ nhận của ứng dụng

tiến trigravenh ứng dụng coacute thể chậm tại luacutec đọc bộ đệm

becircn gửi sẽ khocircng lagravem tragraven bộ đệm vigrave truyền quaacute nhiều vagrave

quaacute nhanh

điều khiển luồng

Transport Layer 3-72

TCP điều khiển luồng caacutech lagravem

(Giả sử becircn nhận TCP loại bỏ caacutec đoạn khocircng coacute thứ tự)

dự phograveng trong bộ đệm= RcvWindow

= RcvBuffer-[LastByteRcvd - LastByteRead]

Becircn nhận thocircng baacuteo khoảng dự trữ nhờ giaacute trị RcvWindow trong caacutec đoạn

Becircn gửi hạn chế dữ liệu khocircng được ACK vagraveo RcvWindow bảo đảm bộ đệm nhận

khocircng tragraven

Transport Layer 3-73

Chương 3 Nội dung trigravenh bagravey

31 Caacutec dịch vụ lớp Transport

32 Multiplexing vagrave demultiplexing

33 Vận chuyển khocircng kết nối UDP

34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy

35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối

36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn

37 Điều khiển tắc nghẽn TCP

Transport Layer 3-74

TCP quản lyacute kết nối

Chuacute yacute Becircn gửi vagrave becircn nhận TCP thiết lập ldquokết nốirdquo trước khi trao đổi dữ liệu

khởi tạo caacutec biến TCP caacutec số thứ tự đoạn thocircng tin caacutec bộ đệm điều

khiển luồng (như RcvWindow)

client người khởi xướng kết nối

Socket clientSocket = new Socket(hostnameport

number) server được tiếp xuacutec bởi

client Socket connectionSocket =

welcomeSocketaccept()

3 phương phaacutep bắt tay

Bước 1 client host gửi đoạnTCP SYN đến server xaacutec định số thứ tự khởi đầu khocircng phải dữ liệu

Bước 2 server host nhận SYN trả lời với đoạn SYNACK

server cấp phaacutet caacutec bộ đệm

xaacutec định số thứ tự khởi đầuBước 3 client nhận SYNACK trả

lời với đoạn ACK (coacute thể chứa dữ liệu)

Transport Layer 3-75

TCP quản lyacute kết nối (tt)

Đoacuteng một kết nối

client đoacuteng socket clientSocketclose()

Bước 1 client gửi đoạn điều khiển TCP FIN đến server

Bước 2 server nhận FIN trả lời với ACK Đoacuteng kết nối gửi FIN

client

FIN

server

ACK

ACK

FIN

đoacuteng

đoacuteng

đatilde đoacutengthời g

ian c

hờ

Transport Layer 3-76

TCP quản lyacute kết nối (tt)

Bước 3 client nhận FIN trả lời với ACK

Trong khoảng ldquothời gian chờrdquo ndash sẽ phản hồi với ACK để nhận caacutec FIN

Bước 4 server nhận ACK Kết nối đatilde đoacuteng

Chuacute yacute với một sửa đổi nhỏ coacute thể quản lyacute nhiều FIN đồng thời

client

FIN

server

ACK

ACK

FIN

đang đoacuteng

đang đoacuteng

đatilde đoacuteng

thời g

ian c

hờ

đatilde đoacuteng

Transport Layer 3-77

TCP quản lyacute kết nối (tt)

chu kỳ sống củaTCP client

chu kỳ sống củaTCP server

Transport Layer 3-78

Chương 3 Nội dung trigravenh bagravey

31 Caacutec dịch vụ lớp Transport

32 Multiplexing vagrave demultiplexing

33 Vận chuyển khocircng kết nối UDP

34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy

35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối

36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn

37 Điều khiển tắc nghẽn TCP

Transport Layer 3-79

Caacutec nguyecircn lyacute điều khiển tắc nghẽn

Tắc nghẽn ldquoquaacute nhiều nguồn gửi quaacute nhanh vagrave quaacute nhiều

dữ liệu đến mạngrdquo khaacutec với điều khiển luồng caacutec biểu hiện

caacutec goacutei bị mất (tragraven bộ đệm tại caacutec router) caacutec độ trễ quaacute dagravei (xếp hagraveng trong bộ đệm

của router) lagrave 1 trong 10 vấn đề nan giải nhất

Transport Layer 3-80

Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 1

2 gửi 2 nhận 1 router caacutec bộ

đệm khocircng giới hạn

khocircng coacute truyền lại

caacutec độ trễ lớn hơn khi tắc nghẽn

năng suất coacute thể đạt tối đa

unlimited shared output link buffers

Host Ain original data

Host B

out

Transport Layer 3-81

Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 2

1 router caacutec bộ đệm coacute giới hạn becircn gửi truyền lại caacutec goacutei đatilde mất

chia sẻ vocirc hạncaacutec bộ đệm ouput

Host A in dữ liệu gốc

Host B

out

in dữ liệu gốc cugraveng với dữ liệu truyền lại

Transport Layer 3-82

Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 2 luocircn luocircn

truyền lại ldquohoagraven toagravenrdquo chỉ khi mất maacutet

truyền lại vigrave trễ (khocircng mất) lagravem cho lớn hơn với cugraveng

in

out

=

in

out

gt

in

out

ldquocaacutec chi phiacuterdquo của tắc nghẽn nhiều việc (truyền lại) caacutec truyền lại khocircng cần thiết liecircn kết nhiều bản sao của

goacutei

R2

R2in

ou

t

b

R2

R2in

ou

t

a

R2

R2in

ou

t

c

R4

R3

Transport Layer 3-83

Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 3 4 người gửi caacutec đường qua nhiều hop timeouttruyền lại

in

Hỏi điều gigrave xảy ra nếu vagrave tăng lecircn

in

chia sẻ vocirc hạncaacutec bộ đệm ouput

Host Ain dữ liệu gốc

Host B

out

in dữ liệu gốc cugraveng với dữ liệu truyền lại

Transport Layer 3-84

Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 3

ldquochi phiacuterdquo khaacutec của tắc nghẽn khi caacutec goacutei bị bỏ bất kỳ ldquokhả năng truyền

upstream dugraveng cho goacutei đoacute sẽ bị latildeng phiacuterdquo

Host A

Host B

o

u

t

Transport Layer 3-85

Caacutec caacutech tiếp cận đối với điều khiển tắc nghẽn

điều khiển tắc nghẽn end-end

khocircng coacute phản hồi rotilde ragraveng từ mạng

tắc nghẽn được suy ra từ việc quan saacutet caacutec hệ thống đầu cuối coacute mất maacutet trễ

tiếp cận được quản lyacute bởi TCP

điều khiển tắc nghẽn coacute sự hỗ trợ của mạng

caacutec router cung cấp phản hồi về caacutec hệ thống đầu cuối 1 bit duy nhất chỉ thị

tắc nghẽn (SNA DECbit TCPIP ECN ATM)

tốc độ sẽ gửi được xaacutec định rotilde ragraveng

2 caacutech

Transport Layer 3-86

Viacute dụ điều khiển tắc nghẽn ATM ABR

ABR tốc độ bit sẵn sagraveng

ldquodịch vụ mềm dẻordquo nếu đường gửi ldquochưa

hếtrdquo becircn gửi sẽ dugraveng

băng thocircng sẵn sagraveng nếu đường gửi tắc

nghẽn becircn gửi điều tiết với

tốc độ tối thiểu

RM (resource management)

gửi bởi becircn gửi rải raacutec với caacutec ocirc dữ liệu

caacutec bit trong ocirc thiết lập bởi caacutec switch bit NI khocircng tăng tốc độ

(tắc nghẽn nhẹ) bit CI tắc nghẽn rotilde rệt

Caacutec ocirc RM được trả về becircn gửi từ becircn nhận với nguyecircn vẹn caacutec bit

Transport Layer 3-87

Viacute dụ điều khiển tắc nghẽn ATM ABR

trường 2-byte ER trong ocirc RM switch đatilde tắc nghẽn coacute thể coacute giaacute trị ER thấp hơn trong ocirc tốc độ gửi do đoacute coacute thể được hỗ trợ tối đa trecircn đường

EFCI bit trong caacutec ocirc dữ liệu được cagravei giaacute trị 1 trong switch đatilde tắc nghẽn nếu ocirc dữ liệu đứng trước ocirc RM coacute cagravei EFCI becircn gửi sẽ cagravei

bit CI trong ocirc RM trả về

Transport Layer 3-88

Chương 3 Nội dung trigravenh bagravey

31 Caacutec dịch vụ lớp Transport

32 Multiplexing vagrave demultiplexing

33 Vận chuyển khocircng kết nối UDP

34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy

35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối

36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn

37 Điều khiển tắc nghẽn TCP

Transport Layer 3-89

TCP điều khiển tắc nghẽn additive tăng lecircn multiplicative giảm xuống

8 Kbytes

16 Kbytes

24 Kbytes

time

congestionwindow

Caacutech tiếp cận tăng tốc độ truyền (kiacutech thước cửa sổ) tigravem khả năng băng thocircng coacute thể cho đến khi coacute mất maacutet xảy ra additive tăng lecircn tăng CongWin bởi 1 MSS

mỗi RTT cho đến khi coacute mất maacutet xảy ra multiplicative giảm xuống bỏ CongWin trong

nửa giai đoạn sau khi mất maacutet

timekiacutech

thư

ớc

cửa

sổ

tắc

nghẽ

n

Tigravem kiếm băng thocircng

Transport Layer 3-90

TCP điều khiển tắc nghẽn chi tiết

becircn gửi hạn chế việc truyền LastByteSent-LastByteAcked

CongWin Cocircng thức

CongWin thay đổi chức năng lagrave nhận biết tắc nghẽn trecircn mạng

Lagravem thế nagraveo becircn gửi nhận biết tắc nghẽn

mất maacutet xảy ra = timeout hoặc 3 ack trugraveng lặp

becircn gửi giảm tốc độ (CongWin) sau khi mất maacutet xảy ra

3 cơ chế AIMD khởi động chậm thận trọng sau khi coacute

caacutec sự kiện timeout

tốc độ = CongWin

RTT Bytess

Transport Layer 3-91

TCP khởi động chậm

Khi kết nối bắt đầu CongWin = 1 MSS Viacute dụ MSS = 500 bytes

amp RTT = 200 ms tốc độ khởi tạo = 20

kbps

băng thocircng sẵn sagraveng coacute thể gtgt MSSRTT mong muốn nhanh

choacuteng tăng tốc lecircn tốc độ coacute thể đaacutep ứng

Khi kết nối bắt đầu tăng tốc lecircn rất nhanh cho đến khi sự cố mất maacutet xảy ra đầu tiecircn

Transport Layer 3-92

TCP khởi động chậm (tt)

Khi kết nối bắt đầu tăng tốc lecircn rất nhanh cho đến khi sự cố mất maacutet xảy ra đầu tiecircn nhacircn đocirci CongWin mỗi

RTT hoagraven thagravenh nhờ tăng CongWin ứng với mỗi ACK đatilde nhận

Tổng kết tốc độ khởi đầu lagrave chậm nhưng sau đoacute tăng tốc rất nhanh

Host A

1 đoạn

RTT

Host B

thời gian

2 đoạn

4 đoạn

Transport Layer 3-93

Tinh chếHỏi Khi nagraveo việc tăng

tốc trở thagravenh tuyến tiacutenh

Trả lời Khi CongWin đạt đến 12 giaacute trị của noacute trước khi timeout

Hiện thực Ngưỡng thay đổi Tại thời điểm coacute sự cố

mất maacutet ngưỡng được cagravei giaacute trị bằng frac12 của CongWin ngay trước đoacute

Transport Layer 3-94

Tinh chế nhận biết mất maacutet

Sau 3 ACK trugraveng lặp CongWin sẽ giảm 12 kiacutech thước cửa sổ

tăng tuyến tiacutenh nhưng sau sự cố

timeout CongWin thay giaacute trị

bằng 1 MSS kiacutech thước cửa sổ

tăng cấp lũy thừa khi đến một ngưỡng

thigrave tăng tuyến tiacutenh

3 ACK trugraveng nhau chỉ ra khả năng truyền của mạng timeout chỉ thị ldquonhiều cảnh baacuteordquo về tigravenh huống tắc nghẽn

Nguyecircn lyacute

Transport Layer 3-95

Tổng kết TCP điều khiển tắc nghẽn

Khi CongWin dưới Threshold becircn gửi đang trong giai đoạn khởi động chậm kiacutech thước cửa sổ tăng nhanh theo cấp lũy thừa

Khi CongWin trecircn Threshold becircn gửi đang trong giai đoạn traacutenh tắc nghẽn kiacutech thước cửa sổ tăng nhanh theo cấp tuyến tiacutenh

Khi coacute 3 ACK trugraveng lặp xảy ra Threshold = CongWin2 vagrave CongWin = Threshold

Khi timeout xảy ra Threshold = CongWin2 vagrave CongWin = 1 MSS

Transport Layer 3-96

TCP điều khiển tắc nghẽn becircn gửi

Trạng thaacutei Sự kiện TCP becircn gửi hagravenh động Diễn giải

Slow Start (SS)-Khởi động chậm

ACK baacuteo nhận cho dữ liệu chưa ACK trước đoacute

CongWin = CongWin + MSS If (CongWin gt Threshold) cagravei đặt trạng thaacutei ldquoTraacutenh tắc nghẽnrdquo

Hậu quả lagravem tăng gấp đocirci CongWin mỗi RTT

CongestionAvoidance (CA) ndashTraacutenh tắc nghẽn

ACK baacuteo nhận cho dữ liệu chưa ACK trước đoacute

CongWin = CongWin+MSS (MSSCongWin)

Additive tăng lecircn lagravem tăng CongWin lecircn 1 MSS mỗi RTT

SS hoặc CA Sự cố mất maacutet xảy ra khi thấy coacute 3 ACK trugraveng lặp

Threshold = CongWin2 CongWin = Thresholdcagravei đặt trạng thaacutei ldquoTraacutenh tắc nghẽnrdquo

Khocirci phục nhanh hiện thực giảm xuống multiplicative CongWin sẽ khocircng giảm xuống dưới 1 MSS

SS hoặc CA Timeout Threshold = CongWin2 CongWin = 1 MSScagravei đặt trạng thaacutei ldquoKhởi động chậmrdquo

Vagraveo chế độ ldquoKhởi động chậmrdquo

SS hoặc CA ACK trugraveng lặp

Đếm ACK tăng lecircn cho đoạn vừa được ACK

CongWin vagrave Threshold khocircng thay đổi

Transport Layer 3-97

TCP throughput

Throughout trung bigravenh của TCP biểu diễn qua kiacutech thước của sổ vagrave RTT Bỏ qua trạng thaacutei ldquoKhởi động chậmrdquo

Cho W lagrave kiacutech thước cửa sổ khi coacute mất maacutet xảy ra

Khi kiacutech thước cửa sổ = W lưu lượng = WRTT

Chỉ ngay sau khi mất maacutet cửa sổ giảm xuống = W2 lưu lượng = W2RTT

throughout trung bigravenh 075 WRTT

Transport Layer 3-98

TCP tương lai

Viacute dụ caacutec đoạn dagravei 1500 byte RTT 100ms lưu lượng 10 Gbps

Kiacutech thước cửa sổ yecircu cầu W = 83333 đoạn trecircn đường truyền

Lưu lượng trong caacutec trường hợp mất maacutet

L = 210-10

Phiecircn bản mới của TCP dagravenh cho nhu cầu tốc độ cao

LRTT

MSS221

Transport Layer 3-99

Mục tiecircu nếu K phiecircn lagravem việc TCP chia sẻ kết nối cổ chai của băng thocircng lagrave R mỗi phiecircn coacute tốc độ trung bigravenh lagrave RK

TCP kết nối 1

router cổ chaikhả năng R

TCP kết nối 2

TCP tiacutenh cocircng bằng

Transport Layer 3-100

Tại sao phải TCP cocircng bằng

2 phiecircn lagravem việc cạnh tranh nhau Additive tăng lưu lượng tăng multiplicative giảm lưu lượng tương xứng

R

R

chia sẻ băng thocircng bằng nhau

Connection 1 throughputConnect

ion 2

th

roughput

traacutenh tắc nghẽn additive tăng lecircnmất maacutet giảm cửa sổ bằng 12

traacutenh tắc nghẽn additive tăng lecircnmất maacutet giảm cửa sổ bằng 12

Transport Layer 3-101

TCP tiacutenh cocircng bằng (tt)

Tiacutenh cocircng bằng amp UDP nhiều ứng dụng

thường khocircng dugraveng TCP khocircng muốn tốc độ bị

điều tiết do điều khiển tắc nghẽn

Thay bằng dugraveng UDP truyền audiovideo với

tốc độ ổn định chịu được mất maacutet

Nghiecircn cứu giao thức thacircn thiện với TCP

Tiacutenh cocircng bằng amp caacutec kết nối TCP song song

khocircng coacute gigrave ngăn cản việc ứng dụng mở caacutec kết nối song song giữa 2 host

Trigravenh duyệt Web lagravem giống như thế

Viacute dụ tốc độ R hỗ trợ 9 kết nối ứng dụng mới yecircu cầu 1

TCP coacute tốc độ R10 ứng dụng mới yecircu cầu 11

TCP coacute tốc độ R2

Transport Layer 3-102

Mocirc higravenh trễ

Hỏi Mất bao lacircu để nhận 1 đối tượng từ Web server sau khi gửi yecircu cầu

Bỏ qua tắc nghẽn trễ bị ảnh hưởng bởi

thiết lập kết nối TCP trễ truyền dữ liệu khởi động chậm

Notation caacutec giả định Giả sử một kết nối giữa

client vagrave server coacute tốc độ R

S MSS (bits) O kiacutech thước đối tượng

(bits) khocircng truyền lại (khocircng

mất maacutet khocircng hỏng)

Kiacutech thước cửa sổ Giả định 1 cửa sổ tắc

nghẽn cố định coacute W đoạn Sau đoacute cửa sổ thay đổi

mocirc higravenh khởi động chậm

Transport Layer 3-103

Cửa sổ tắc nghẽn cố định (1)

Trường hợp đầu tiecircnWSR gt RTT + SR cho

đoạn đầu tiecircn trong cửa sổ trả về trước khi cửa sổ dữ liệu gửi ACK

trễ = 2RTT + OR

Transport Layer 3-104

Cửa sổ tắc nghẽn cố định (2)

Trường hợp thứ hai WSR lt RTT + SR sent

chờ cho ACK sau khi gửi dữ liệu

trễ = 2RTT + OR+ (K-1)[SR + RTT - WSR]

Transport Layer 3-105

TCP Mocirc higravenh trễ Khởi động chậm (1)

Bacircy giờ giả sử kiacutech thước cửa sổ tăng lecircn tugravey theo quaacute trigravenh khởi động chậm

Độ trễ của một đối tượng sẽ lagrave

R

S

R

SRTTP

R

ORTTLatency P )12(2

trong đoacute P lagrave số lần TCP rảnh ở tại server

1min KQP

- trong đoacute Q lagrave số lần server rảnh nếu đối tượng đatilde khởi tạo kiacutech thước

- vagrave K lagrave số lượng cửa sổ bao trugravem đối tượng

Transport Layer 3-106

TCP Mocirc higravenh trễ Khởi động chậm (2)

RTT

initia te TCPconnection

requestobject

first w indow= S R

second w indow= 2S R

third w indow= 4S R

fourth w indow= 8S R

com pletetransm issionobject

delivered

tim e atc lient

tim e atserver

Viacute dụbull OS = 15 đoạnbull K = 4 cửa sổbull Q = 2bull P = minK-1Q = 2

Server rảnh P=2 lần

Caacutec thagravenh phần trễbull 2 RTT dagravenh cho thiết lập kết nối vagrave yecircu cầubull OR để truyền đối tượngbullthời gian server rảnh bởi vigrave khởi động chậm

Server rảnh P = minK-1Q lần

Transport Layer 3-107

TCP Mocirc higravenh trễ(3)

R

S

R

SRTTPRTT

R

O

R

SRTT

R

SRTT

R

O

idleTimeRTTR

O

P

kP

k

P

pp

)12(][2

]2[2

2delay

1

1

1

th window after the timeidle 2 1 kR

SRTT

R

S k

ementacknowledg receivesserver until

segment send tostartsserver when from time RTTR

S

window kth the transmit totime2 1

R

Sk

RTT

initia te TCPconnection

requestobject

first w indow= S R

second w indow= 2S R

third w indow= 4S R

fourth w indow= 8S R

com pletetransm issionobject

delivered

tim e atc lient

tim e atserver

Transport Layer 3-108

TCP Mocirc higravenh trễ (4)

)1(log

)1(logmin

12min

222min

222min

2

2

110

110

S

OS

Okk

S

Ok

SOk

OSSSkK

k

k

k

caacutech tiacutenh toaacuten Q tương tự (xem HW)

K = số lượng cửa sổ bao trugravem đối tượngLagravem thế nagraveo tiacutenh được K

Transport Layer 3-109

HTTP Mocirc higravenh Giả sử trang Web chứa

1 trang HTML (kiacutech thước O bits) M higravenh ảnh (mỗi caacutei kiacutech thướcO bits)

HTTP khocircng bền vững M+1 TCP kết nối Thời gian đaacutep ứng = (M+1)OR + (M+1)2RTT + tổng số thời

gian rảnh HTTP bền vững

2 RTT để yecircu cầu vagrave nhận file HTML 1 RTT để yecircu cầu vagrave nhận M higravenh ảnh Thời gian đaacutep ứng = (M+1)OR + 3RTT + tổng số thời gian

rảnh HTTP khocircng bền vững với X kết nối song song

Giả sử MX lagrave số nguyecircn 1 TCP kết nối cho file MX thiết lập caacutec kết nối song song cho caacutec higravenh ảnh Thời gian đaacutep ứng = (M+1)OR + (MX + 1)2RTT + tổng số

thời gian rảnh

Transport Layer 3-110

02468

101214161820

28Kbps

100Kbps

1Mbps

10Mbps

non-persistent

persistent

parallel non-persistent

HTTP thời gian đaacutep ứng (giacircy)RTT = 100 msec O = 5 Kbytes M=10 vagrave X=5

Với băng thocircng thấp thời gian kết nối amp đaacutep ứng trội hơn thời gian truyền

Caacutec kết nối bền vững chỉ cho sự cải thiện khocircng đaacuteng kể trecircn caacutec kết nối song song

Transport Layer 3-111

0

10

20

30

40

50

60

70

28Kbps

100Kbps

1Mbps

10Mbps

non-persistent

persistent

parallel non-persistent

HTTP thời gian đaacutep ứng (giacircy)

RTT =1 sec O = 5 Kbytes M=10 and X=5

Với RTT lớn hơn thời gian đaacutep ứng trội hơn thời gian trễ chờ thiết lập kết nốiTCP amp khởi động chậm Caacutec kết nối bền vững bacircy giờ cho thấy cải thiện rotilde rệt đặc biệtvới caacutec mạng băng thocircng cao

Transport Layer 3-112

Chương 3 Tổng kết caacutec nguyecircn lyacute của caacutec

dịch vụ lớp transport multiplexing

demultiplexing truyền dữ liệu tin cậy điều khiển luồng điều khiển tắc nghẽn

khởi tạo vagrave hiện thực trong Internet UDP TCP

Tiếp theo nghiecircn cứu xong

caacutec vấn đề ldquongoagravei biecircnrdquo (caacutec lớp application transport)

chuẩn bị vagraveo phần ldquolotildeirdquo của mạng

  • Slide 1
  • Chương 3 Lớp Transport
  • Chương 3 Nội dung trigravenh bagravey
  • Caacutec dịch vụ vagrave giao thức Transport
  • Lớp Transport với lớp network
  • Caacutec giao thức lớp transport trecircn Internet
  • Slide 7
  • Multiplexingdemultiplexing
  • Demultiplexing lagravem việc như thế nagraveo
  • Demultiplexing khocircng kết nối
  • Demultiplexing khocircng kết nối (tiếp)
  • Demultiplexing hướng kết nối
  • Demultiplexing hướng kết nối (tiếp)
  • Demultiplexing hướng kết nối Threaded Web Server
  • Slide 15
  • UDP User Datagram Protocol [RFC 768]
  • UDP (tt)
  • UDP checksum
  • Viacute dụ Checksum
  • Slide 20
  • Caacutec nguyecircn lyacute truyền dữ liệu tin cậy
  • Slide 22
  • Slide 23
  • Truyền dữ liệu tin cậy
  • Slide 25
  • Rdt10 truyền dữ liệu tin cậy trecircn 1 kecircnh truyền tin cậy
  • Rdt20 kecircnh với caacutec lỗi
  • rdt20 đặc tả FSM
  • rdt20 hoạt động khi khocircng lỗi
  • rdt20 hoạt động khi coacute lỗi
  • rdt20 coacute lỗ hổng nghiecircm trọng
  • rdt21 người gửi quản lyacute caacutec ACKNAK bị hỏng
  • Slide 33
  • rdt21 thảo luận
  • rdt22 một giao thức khocircng cần NAK
  • rdt22 gửi nhận caacutec mảnh
  • rdt30 caacutec kecircnh với lỗi vagrave mất maacutet
  • rdt30 gửi
  • hagravenh động của rdt30
  • Slide 40
  • Hiệu suất của rdt30
  • rdt30 hoạt động dừng-vagrave-chờ
  • Caacutec giao thức Pipelined
  • Pipelining độ khả dụng tăng
  • Go-Back-N
  • GBN becircn gửi mở rộng FSM
  • GBN becircn nhận mở rộng FSM
  • GBN hoạt động
  • Lặp coacute lựa chọn
  • Lặp coacute lựa chọn caacutec cửa sổ gửi nhận
  • Slide 51
  • Hoạt động của lặp coacute lựa chọn
  • Lặp coacute lựa chọn tigravenh trạng khoacute giải quyết
  • Slide 54
  • TCP Tổng quan RFCs 793 1122 1323 2018 2581
  • TCP cấu truacutec đoạn
  • Caacutec số thứ tự TCP vagrave ACK
  • TCP Round Trip Time vagraveTimeout
  • TCP Round Trip Time vagrave Timeout
  • Viacute dụ đaacutenh giaacute RTT
  • Slide 61
  • TCP truyền dữ liệu tin cậy
  • TCP caacutec sự kiện
  • TCP becircn gửi (đơn giản)
  • TCP caacutec tigravenh huống truyền lại
  • TCP caacutec tigravenh huống truyền lại (tt)
  • TCP sinh ra ACK [RFC 1122 RFC 2581]
  • Truyền lại nhanh
  • Giải thuật truyền lại nhanh
  • Slide 70
  • TCP điều khiển luồng
  • TCP điều khiển luồng caacutech lagravem
  • Slide 73
  • TCP quản lyacute kết nối
  • TCP quản lyacute kết nối (tt)
  • Slide 76
  • Slide 77
  • Slide 78
  • Caacutec nguyecircn lyacute điều khiển tắc nghẽn
  • Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 1
  • Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 2
  • Slide 82
  • Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 3
  • Slide 84
  • Caacutec caacutech tiếp cận đối với điều khiển tắc nghẽn
  • Viacute dụ điều khiển tắc nghẽn ATM ABR
  • Slide 87
  • Slide 88
  • TCP điều khiển tắc nghẽn additive tăng lecircn multiplicative giảm xuống
  • TCP điều khiển tắc nghẽn chi tiết
  • TCP khởi động chậm
  • TCP khởi động chậm (tt)
  • Tinh chế
  • Tinh chế nhận biết mất maacutet
  • Tổng kết TCP điều khiển tắc nghẽn
  • TCP điều khiển tắc nghẽn becircn gửi
  • TCP throughput
  • TCP tương lai
  • TCP tiacutenh cocircng bằng
  • Tại sao phải TCP cocircng bằng
  • TCP tiacutenh cocircng bằng (tt)
  • Mocirc higravenh trễ
  • Cửa sổ tắc nghẽn cố định (1)
  • Cửa sổ tắc nghẽn cố định (2)
  • TCP Mocirc higravenh trễ Khởi động chậm (1)
  • TCP Mocirc higravenh trễ Khởi động chậm (2)
  • TCP Mocirc higravenh trễ(3)
  • TCP Mocirc higravenh trễ (4)
  • HTTP Mocirc higravenh
  • Slide 110
  • Slide 111
  • Chương 3 Tổng kết

Transport Layer 3-29

rdt20 hoạt động khi khocircng lỗi

chờ gọi từ lớp dưới

snkpkt = make_pkt(data checksum)udt_send(sndpkt)

extract(rcvpktdata)deliver_data(data)udt_send(ACK)

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)

rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp isNAK(rcvpkt)

udt_send(NAK)

rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)

chờ ACK hoặc NAK

chờ gọi từ lớp dưới

rdt_send(data)

Transport Layer 3-30

rdt20 hoạt động khi coacute lỗi

chờ gọi từ lớp dưới

snkpkt = make_pkt(data checksum)udt_send(sndpkt)

extract(rcvpktdata)deliver_data(data)udt_send(ACK)

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)

rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp isNAK(rcvpkt)

udt_send(NAK)

rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)

chờ ACK hoặc NAK

chờ gọi từ lớp dưới

rdt_send(data)

Transport Layer 3-31

rdt20 coacute lỗ hổng nghiecircm trọngĐiều gigrave xảy ra nếu

ACKNAK bị hỏng người gửi khocircng biết điều

gigrave đatilde xảy ra tại becircn nhận

khocircng thể đơn phương truyền lại khả năng trugraveng lặp

Quản lyacute trugraveng lặp người gửi truyền lại goacutei

hiện tại nếu ACKNAK bị hỏng

người gửi thecircm số thứ tự vagraveo mỗi goacutei

người nhận hủy (khocircng nhận) goacutei trugraveng lặp

Người gửi gửi 1 goacutei sau đoacute dừng lại chờ phản hồitừ người nhận

dừng vagrave chờ

Transport Layer 3-32

rdt21 người gửi quản lyacute caacutec ACKNAK bị hỏng

chờ gọi 0 từ lớp trecircn

sndpkt = make_pkt(0 data checksum)udt_send(sndpkt)

rdt_send(data)

chờ ACK hoặc NAK

0 udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) ||isNAK(rcvpkt) )

sndpkt = make_pkt(1 data checksum)udt_send(sndpkt)

rdt_send(data)

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) ||isNAK(rcvpkt) )

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt)

chờ gọi 1 từ lớp trecircn

chờ ACK hoặc NAK

1

Transport Layer 3-33

rdt21 người gửi quản lyacute caacutec ACKNAK bị hỏng

chờ 0 từ dưới

sndpkt = make_pkt(NAK chksum)udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp not corrupt(rcvpkt) ampamp has_seq0(rcvpkt)

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp has_seq1(rcvpkt)

extract(rcvpktdata)deliver_data(data)sndpkt = make_pkt(ACK chksum)udt_send(sndpkt)

chờ 1 từ dưới

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp has_seq0(rcvpkt)

extract(rcvpktdata)deliver_data(data)sndpkt = make_pkt(ACK chksum)udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp (corrupt(rcvpkt)

sndpkt = make_pkt(ACK chksum)udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp not corrupt(rcvpkt) ampamp has_seq1(rcvpkt)

rdt_rcv(rcvpkt) ampamp (corrupt(rcvpkt)

sndpkt = make_pkt(ACK chksum)udt_send(sndpkt)

sndpkt = make_pkt(NAK chksum)udt_send(sndpkt)

Transport Layer 3-34

rdt21 thảo luận

người gửi số thứ tự thecircm vagraveo

goacutei chỉ cần hai số thứ tự

(01) lagrave đủ Tại sao phải kiểm tra nếu việc

nhận ACKNAK bị hỏng

số trạng thaacutei tăng lecircn 2 lần trạng thaacutei phải ldquonhớrdquo

goacutei ldquohiện tạirdquo coacute số thứ tự lagrave 0 hay 1

người nhận phải kiểm tra coacute

nhận trugraveng goacutei khocircng trạng thaacutei chỉ rotilde coacute

hay khocircng mong chờ số thứ tự 0 hoặc 1

chuacute yacute người nhận khocircng biết ACKNAK vừa rồi của noacute coacute được người gửi nhận tốt hay khocircng

Transport Layer 3-35

rdt22 một giao thức khocircng cần NAK

chức năng giống như rdt21 chỉ dugraveng caacutec ACK thay cho NAK người nhận gửi ACK cho goacutei vừa

rồi đatilde nhận tốt người nhận phải rotilde ragraveng chegraven số thứ tự của goacutei vừa ACK

trugraveng ACK tại người gửi hậu quả giống như hagravenh động của NAK truyền lại goacutei vừa rồi

Transport Layer 3-36

rdt22 gửi nhận caacutec mảnh

Chờ cho gọi 0 từ

trecircn

sndpkt = make_pkt(0 data checksum)udt_send(sndpkt)

rdt_send(data)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) || isACK(rcvpkt1) )

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt0)

Chờ cho ACK

0

gửi phacircn mảnhFSM

Chờ cho gọi

0 từ dưới

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp has_seq1(rcvpkt)

extract(rcvpktdata)deliver_data(data)sndpkt = make_pkt(ACK1 chksum)udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp (corrupt(rcvpkt) || has_seq1(rcvpkt))

udt_send(sndpkt)

nhận phacircn mảnhFSM

Transport Layer 3-37

rdt30 caacutec kecircnh với lỗi vagrave mất maacutet

Giả định mới kecircnh ưu tiecircn cũng coacute thể lagravem mất caacutec goacutei (dữ liệu hoặc caacutec ACK) checksum số thứ tự

caacutec ACK caacutec việc truyền lại sẽ hỗ trợ nhưng khocircng đủ

Caacutech tiếp cận người gửi chờ ACK trong khoảng thời gian ldquochấp nhận đượcrdquo

truyền lại nếu khocircng nhận ACK trong khoảng thời gian nagravey

nếu goacutei (hoặc ACK) chỉ trễ (khocircng mất) truyền lại sẽ gacircy trugraveng

nhưng dugraveng số thứ tự sẽ giải quyết được

người nhận phải xaacutec định số thứ tự của goacutei vừa gửi ACK

cần bộ định thigrave đếm lugravei

Transport Layer 3-38

rdt30 gửi

sndpkt = make_pkt(0 data checksum)udt_send(sndpkt)start_timer

rdt_send(data)

Chờ cho

ACK 0

rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) ||isACK(rcvpkt1) )

Chờ cho gọi 1 từ trecircn

sndpkt = make_pkt(1 data checksum)udt_send(sndpkt)start_timer

rdt_send(data)

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt0)

rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) ||isACK(rcvpkt0) )

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt1)

stop_timerstop_timer

udt_send(sndpkt)start_timer

timeout

udt_send(sndpkt)start_timer

timeout

rdt_rcv(rcvpkt)

Chờ cho gọi 0 từ trecircn

Chờ cho

ACK 1

rdt_rcv(rcvpkt)

Transport Layer 3-39

hagravenh động của rdt30

Transport Layer 3-40

hagravenh động của rdt30

Transport Layer 3-41

Hiệu suất của rdt30

rdt30 lagravem việc được nhưng đaacutenh giaacute hiệu suất hơi rắc rối viacute dụ liecircn kết 1 Gbps trễ lan truyền giữa hai đầu cuối lagrave 15

ms goacutei 1KB

T truyền = 8kbpkt109 bsec

= 8 microsec

U sender độ khả dụng ndash

U sender

= 008

30008 = 000027

microseconds

L R

RTT + L R =

L (độ dagravei goacutei tiacutenh bằng bits)R (tốc độ truyền bps)

=

goacutei 1KB mỗi 30 msec -gt 33kBs trecircn đường truyền 1 Gbps giao thức network hạn chế việc dugraveng caacutec tagravei nguyecircn vật

lyacute

Transport Layer 3-42

rdt30 hoạt động dừng-vagrave-chờ

goacutei đầu tiecircn đatilde truyền t = 0

gửi nhận

RTT

goacutei cuối cugraveng đatilde truyền t = L R

goacutei đầu tiecircn đatilde đếngoacutei cuối cugraveng đatilde đến gửi ACK

ACK đến gửi goacutei kế tiếp t = RTT + L R

U sender

= 008

30008 = 000027

microseconds

L R

RTT + L R =

Transport Layer 3-43

Caacutec giao thức Pipelined

Pipelining người gửi cho pheacutep gửi nhiều goacutei đồng thời khocircng cần chờ baacuteo nhận được nhoacutem caacutec số thứ tự phải tăng dần phải coacute bộ nhớ đệm tại nơi gửi vagravehoặc nơi nhận

hai dạng phổ biến của caacutec giao thức pipelined go-Back-N Lặp coacute lựa chọn

Transport Layer 3-44

Pipelining độ khả dụng tăng

goacutei đầu tiecircn đatilde truyền t = 0

sender receiver

RTT

goacutei cuối cugraveng đatilde truyền t = L R

goacutei đầu tiecircn đatilde đếngoacutei cuối cugraveng đatilde đến gửi ACK

ACK đến gửi goacuteikế tiếp t = RTT + L R

bit cuối của goacutei thứ 2 đến gửi ACKbit cuối của goacutei thứ 3 đến gửi ACK

U sender

= 024

30008 = 00008

microseconds

3 L R

RTT + L R =

Độ khả dụng tăng lecircngấp 3 lần

Transport Layer 3-45

Go-Back-NBecircn gửi k-bit số thứ tự trong header của goacutei ldquocửa sổrdquo tăng lecircn đến N cho pheacutep gửi caacutec goacutei liecircn tục khocircng cần ACK

ACK(n) ACKs tất cả caacutec goacutei đến chứa số thứ tự n ndash ldquoACK tiacutech lũyrdquo coacute thể nhận caacutec ACK trugraveng lặp (xem becircn nhận)

định thigrave cho mỗi goacutei trecircn đường truyền timeout(n) gửi lại goacutei n vagrave tất cả caacutec goacutei coacute số thứ tự cao

hơn trong cửa sổ

Transport Layer 3-46

GBN becircn gửi mở rộng FSM

chờ start_timerudt_send(sndpkt[base])udt_send(sndpkt[base+1])hellipudt_send(sndpkt[nextseqnum-1])

timeout

rdt_send(data)

if (nextseqnum lt base+N) sndpkt[nextseqnum] = make_pkt(nextseqnumdatachksum) udt_send(sndpkt[nextseqnum]) if (base == nextseqnum) start_timer nextseqnum++ else refuse_data(data)

base = getacknum(rcvpkt)+1If (base == nextseqnum) stop_timer else start_timer

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)

base=1nextseqnum=1

rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)

Transport Layer 3-47

GBN becircn nhận mở rộng FSM

ACK-duy nhất luocircn luocircn gửi ACK cho goacutei đatilde nhận đuacuteng với số thứ tự xếp hạng cao nhất coacute thể sinh ra caacutec ACK trugraveng nhau chỉ cần nhớ expectedseqnum

goacutei khocircng theo thứ tự hủy -gt khocircng nhận vagraveo bộ đệm gửi lại ACK với số thứ tự xếp hạng cao nhất

chờ

udt_send(sndpkt)

default

rdt_rcv(rcvpkt) ampamp notcurrupt(rcvpkt) ampamp hasseqnum(rcvpktexpectedseqnum)

extract(rcvpktdata)deliver_data(data)sndpkt = make_pkt(expectedseqnumACKchksum)udt_send(sndpkt)expectedseqnum++

expectedseqnum=1sndpkt = make_pkt(expectedseqnumACKchksum)

Transport Layer 3-48

GBN hoạt động

Transport Layer 3-49

Lặp coacute lựa chọn

becircn nhận thocircng baacuteo đatilde nhận đuacuteng tất cả từng goacutei một đệm (buffer) caacutec goacutei nếu cần thiết

becircn gửi chỉ gửi lại caacutec goacutei nagraveo khocircng nhận được ACK becircn gửi định thigrave đối với mỗi goacutei khocircng gửi ACK

cửa sổ becircn gửi N số thứ tự liecircn tục hạn chế số thứ tự caacutec goacutei khocircng gửi ACK

Transport Layer 3-50

Lặp coacute lựa chọn caacutec cửa sổ gửi nhận

Transport Layer 3-51

Lặp coacute lựa chọn

dữ liệu từ lớp trecircn nếu số thứ tự kế tiếp sẵn

sagraveng trong cửa sổ gửi goacutei

timeout(n) gửi lại goacutei n taacutei khởi tạo

bộ định thigrave

ACK(n) trong [sendbasesendbase+N]

đaacutenh dấu goacutei n lagrave đatilde nhận nếu goacutei khocircng ACK coacute n

nhỏ nhất dịch chuyển cửa sổ base đến số thứ tự khocircng ACK kế tiếp

Gửigoacutei n trong [rcvbase

rcvbase+N-1]

gửi ACK(n) khocircng thứ tự đệm

(buffer) coacute thứ tự truyền (cũng

truyền caacutec goacutei đatilde đệm coacute thứ tự) dịch chuyển cửa sổ đến goacutei chưa nhận kế tiếp

goacutei n trong [rcvbase-Nrcvbase-1]

ACK(n)

ngược lại lờ đi

Nhận

Transport Layer 3-52

Hoạt động của lặp coacute lựa chọn

Transport Layer 3-53

Lặp coacute lựa chọntigravenh trạng khoacute giải quyếtViacute dụ Số thứ tự 0 1 2 3 Kiacutech thước cửa sổ = 3

becircn nhận khocircng thấy sự khaacutec nhau trong 2 tigravenh huống

chuyển khocircng chiacutenh xaacutec dữ liệu trugraveng lặp như dữ liệu mới trong (a)

Hỏi quan hệ giữa datildey số thứ tự vagrave kiacutech thước cửa sổ

Transport Layer 3-54

Chương 3 Nội dung trigravenh bagravey

31 Caacutec dịch vụ lớp Transport

32 Multiplexing vagrave demultiplexing

33 Vận chuyển khocircng kết nối UDP

34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy

35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối

36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn

37 Điều khiển tắc nghẽn TCP

Transport Layer 3-55

TCP Tổng quan RFCs 793 1122 1323 2018 2581

dữ liệu full duplex luồng dữ liệu đi 2 chiều

trong cugraveng một kết nối MSS maximum

segment size ndash kiacutech thước đoạn tối đa

hướng kết nối bắt tay (trao đổi caacutec

thocircng điệp điều khiển) trạng thaacutei becircn gửi becircn nhận trước khi trao đổi dữ liệu

điều khiển luồng becircn gửi sẽ khocircng lấn aacutet

becircn nhận

point-to-point một becircn gửi một becircn

nhận tin cậy dograveng byte coacute

thứ tự khocircng ldquoranh giới thocircng

điệprdquo kecircnh liecircn lạc

TCP điều khiển luồng vagrave tắc nghẽn thiết lập kiacutech thước cửa sổ

caacutec bộ đệm gửi amp nhận

socketdoor

T C Psend buffer

T C Preceive buffer

socketdoor

segm ent

applicationwrites data

applicationreads data

Transport Layer 3-56

TCP cấu truacutec đoạn

port nguồn port điacutech

32 bits

dữ liệu ứng dụng(độ dagravei thay đổi)

số thứ tự

số ACKcửa sổ nhận

con trỏ URGchecksum

FSRPAUheadlen

notused

Tugravey chọn (độ dagravei thay đổi)

URG dữ liệu khẩn cấp(thường khocircng dugraveng)

ACK ACK hợp lệ

PSH push data now(thường khocircng dugraveng)

RST SYN FINthiết lập kết nối

(caacutec lệnh thiết lậpchia nhỏ)

số byte becircn nhận sẵn sagraveng chấp nhận

đếm bởi số bytecủa dữ liệu

Internetchecksum

(giống UDP)

Transport Layer 3-57

Caacutec số thứ tự TCP vagrave ACKCaacutec số thứ tự

dograveng byte ldquođaacutenh sốrdquo byte đầu tiecircn trong dữ liệu của đoạn

caacutec ACK số thứ tự của byte

kế tiếp được chờ đợi từ phiacutea becircn kia

ACK tiacutech lũyHỏi lagravem thế nagraveo becircn

nhận quản lyacute caacutec đoạn khocircng thứ tự Trả lời TCP khocircng

đề cập tugravey thuộc người hiện thực

Host A Host B

Seq=42 ACK=79 data = lsquoCrsquo

Seq=79 ACK=43 data = lsquoCrsquo

Seq=43 ACK=80

UsernhậplsquoCrsquo

host ACKsnhận phản hồi

lsquoCrsquo

host ACKsbaacuteo nhận

lsquoCrsquo phản hồingược lại lsquoCrsquo

timetigravenh huống telnet đơn giản

Transport Layer 3-58

TCP Round Trip Time vagraveTimeout

Hỏi Lagravem thế nagraveo để thiết lập giaacute trị TCP timeout

dagravei hơn RTT khaacutec với RTT

quaacute ngắn timeout sớm truyền lại khocircng

cần thiết quaacute dagravei phản ứng

chậm đối với việc mất maacutet goacutei

Hỏi Lagravem thế nagraveo để thiết lập RTT

SampleRTT thời gian được đo từ khi truyền đoạn đến khi baacuteo nhận ACK lờ đi việc truyền lại

SampleRTT sẽ thay đổi muốn ước lượng RTT ldquomượt hơnrdquo tiacutenh trung bigravenh một số giaacute

trị đo được gần đoacute khocircng chỉ SampleRTT hiện tại

Transport Layer 3-59

TCP Round Trip Time vagrave Timeout

EstimatedRTT = (1- )EstimatedRTT + SampleRTT

giaacute trị đặc trưng = 0125

Transport Layer 3-60

Viacute dụ đaacutenh giaacute RTTRTT gaiacsumassedu to fantasiaeurecomfr

100

150

200

250

300

350

1 8 15 22 29 36 43 50 57 64 71 78 85 92 99 106

time (seconnds)

RTT

(mill

isec

onds

)

SampleRTT Estimated RTT

Transport Layer 3-61

TCP Round Trip Time vagrave Timeout

Thiết lập timeout EstimtedRTT cộng ldquohệ số dự trữ an toagravenrdquo

sự biến thiecircn lớn trong EstimatedRTT -gt hệ số dự trữ an toagraven lớn hơn ước lượng đầu tiecircn về sự biến thiecircn của SampleRTT từ EstimatedRTT

TimeoutInterval = EstimatedRTT + 4DevRTT

DevRTT = (1-)DevRTT + |SampleRTT-EstimatedRTT|

(tiecircu biểu = 025)

Sau đoacute thiết lập timeout interval

Transport Layer 3-62

TCP truyền dữ liệu tin cậy

TCP tạo dịch vụ rdt trecircn dịch vụ khocircng tin cậy IP

caacutec đoạn Pipelined caacutec ACK tiacutech lũy TCP dugraveng bộ định thigrave

truyền lại đơn

Truyền lại được kiacutech hoạt bởi caacutec sự kiện timeout caacutec ack trugraveng lặp

luacutec đầu khảo saacutet caacutec becircn gửi TCP đơn giản lờ đi caacutec ack trugraveng lặp lờ đi điều khiển luồng

điều khiển tắc nghẽn

Transport Layer 3-63

TCP caacutec sự kiệndữ liệu đatilde nhận từ ứng

dụng tạo đoạn với số thứ

tự của noacute số thứ tự lagrave số theo

byte dữ liệu đầu tiecircn khởi động bộ định thigrave

nếu chưa chạy khoảng thời gian hết

hạn TimeOutInterval

timeout gửi lại đoạn nagraveo gacircy

ra timeout khởi động lại bộ định

thigrave Ack đatilde nhận

cập nhật caacutei gigrave sẽ được ACK

khởi động bộ định thigrave nếu coacute caacutec đoạn cograven chờ

Transport Layer 3-64

TCP becircn gửi(đơn giản)

NextSeqNum = InitialSeqNum SendBase = InitialSeqNum

loop (forever) switch(event)

event data received from application above create TCP segment with sequence number NextSeqNum if (timer currently not running) start timer pass segment to IP NextSeqNum = NextSeqNum + length(data)

event timer timeout retransmit not-yet-acknowledged segment with smallest sequence number start timer

event ACK received with ACK field value of y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer

end of loop forever

Chuacute thiacutechbull SendBase-1 byte vừa được ACK tiacutech lũy Viacute dụbull SendBase-1 = 71y= 73 vigrave thế becircn nhận muốn 73+ y gt SendBase vigrave thế dữ liệu mới được chấp nhận

Transport Layer 3-65

TCP caacutec tigravenh huống truyền lại

Host A

Seq=100 20 bytes data

ACK=100

timetimeout sớm

Host B

Seq=92 8 bytes data

ACK=120

Seq=92 8 bytes data

Seq=

92

tim

eout

ACK=120

Host A

Seq=92 8 bytes data

ACK=100

loss

tim

eout

tigravenh huống mất ACK

Host B

X

Seq=92 8 bytes data

ACK=100

time

Seq=

92

tim

eout

SendBase= 100

SendBase= 120

SendBase= 120

Sendbase= 100

Transport Layer 3-66

TCP caacutec tigravenh huống truyền lại (tt)Host A

Seq=92 8 bytes data

ACK=100

loss

tim

eout

Cumulative ACK scenario

Host B

X

Seq=100 20 bytes data

ACK=120

time

SendBase= 120

Transport Layer 3-67

TCP sinh ra ACK [RFC 1122 RFC 2581]

Sự kiện tại becircn nhận

Đoạn đến với đuacuteng số thứ tự mong muốn Tất cả dữ liệu đếnđatilde được ACK

Đoạn đến với đuacuteng số thứ tự mong muốn Một đoạn khaacutec đangchờ ACK

Caacutec đoạn đến khocircng thứ tựlớn hơn số thứ tự đoạn mong muốnCoacute khoảng trống

Đoạn đếnlấp đầy từng phần hoặc toagraven bộkhoảng trống

TCP becircn nhận hagravenh động

ACK trễ Chờ đến 500mscho đoạn kế tiếp Nếu khocircng coacute đoạnkế tiếp gửi ACK

Gửi ngay một ACK tiacutech lũy chấp nhậncho cả caacutec đoạn theo thứ tự

Gửi ngay ACK trugraveng lặp chỉ thị số thứ tựđoạn của byte kế tiếp đang mong chờ

Gửi ngay ACK với điều kiện lagrave đoạnbắt đầu ngay điểm coacute khoảng trống

Transport Layer 3-68

Truyền lại nhanh

Chu kỳ Time-out thường tương đối dagravei độ trễ dagravei trước khi gửi

lại goacutei đatilde mất

Xaacutec nhận caacutec đoạn đatilde mất bằng caacutec ACK trugraveng lặp becircn gửi thường gửi

nhiều đoạn song song Nếu đoạn bị mất sẽ

xảy ra tigravenh trạng giống như nhiều ACK trugraveng nhau

Nếu becircn gửi nhận 3 ACK của cugraveng một dữ liệu noacute cho lagrave đoạn sau dữ liệu đatilde ACK bị mất Truyền lại nhanh gửi

lại đoạn trước khi bộ định thigrave hết hạn

Transport Layer 3-69

sự kiện ACK đatilde nhận với trường lagrave y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer else increment count of dup ACKs received for y if (count of dup ACKs received for y = 3) resend segment with sequence number y

Giải thuật truyền lại nhanh

một ACK trugraveng lặp cho đoạn đatilde được ACK

Truyền lại nhanh

Transport Layer 3-70

Chương 3 Nội dung trigravenh bagravey

31 Caacutec dịch vụ lớp Transport

32 Multiplexing vagrave demultiplexing

33 Vận chuyển khocircng kết nối UDP

34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy

35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối

36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn

37 Điều khiển tắc nghẽn TCP

Transport Layer 3-71

TCP điều khiển luồng

becircn nhận của kết nối TCP coacute một bộ đệm nhận

dịch vụ so trugraveng tốc độ so trugraveng tốc độ gửi với tốc độ nhận của ứng dụng

tiến trigravenh ứng dụng coacute thể chậm tại luacutec đọc bộ đệm

becircn gửi sẽ khocircng lagravem tragraven bộ đệm vigrave truyền quaacute nhiều vagrave

quaacute nhanh

điều khiển luồng

Transport Layer 3-72

TCP điều khiển luồng caacutech lagravem

(Giả sử becircn nhận TCP loại bỏ caacutec đoạn khocircng coacute thứ tự)

dự phograveng trong bộ đệm= RcvWindow

= RcvBuffer-[LastByteRcvd - LastByteRead]

Becircn nhận thocircng baacuteo khoảng dự trữ nhờ giaacute trị RcvWindow trong caacutec đoạn

Becircn gửi hạn chế dữ liệu khocircng được ACK vagraveo RcvWindow bảo đảm bộ đệm nhận

khocircng tragraven

Transport Layer 3-73

Chương 3 Nội dung trigravenh bagravey

31 Caacutec dịch vụ lớp Transport

32 Multiplexing vagrave demultiplexing

33 Vận chuyển khocircng kết nối UDP

34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy

35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối

36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn

37 Điều khiển tắc nghẽn TCP

Transport Layer 3-74

TCP quản lyacute kết nối

Chuacute yacute Becircn gửi vagrave becircn nhận TCP thiết lập ldquokết nốirdquo trước khi trao đổi dữ liệu

khởi tạo caacutec biến TCP caacutec số thứ tự đoạn thocircng tin caacutec bộ đệm điều

khiển luồng (như RcvWindow)

client người khởi xướng kết nối

Socket clientSocket = new Socket(hostnameport

number) server được tiếp xuacutec bởi

client Socket connectionSocket =

welcomeSocketaccept()

3 phương phaacutep bắt tay

Bước 1 client host gửi đoạnTCP SYN đến server xaacutec định số thứ tự khởi đầu khocircng phải dữ liệu

Bước 2 server host nhận SYN trả lời với đoạn SYNACK

server cấp phaacutet caacutec bộ đệm

xaacutec định số thứ tự khởi đầuBước 3 client nhận SYNACK trả

lời với đoạn ACK (coacute thể chứa dữ liệu)

Transport Layer 3-75

TCP quản lyacute kết nối (tt)

Đoacuteng một kết nối

client đoacuteng socket clientSocketclose()

Bước 1 client gửi đoạn điều khiển TCP FIN đến server

Bước 2 server nhận FIN trả lời với ACK Đoacuteng kết nối gửi FIN

client

FIN

server

ACK

ACK

FIN

đoacuteng

đoacuteng

đatilde đoacutengthời g

ian c

hờ

Transport Layer 3-76

TCP quản lyacute kết nối (tt)

Bước 3 client nhận FIN trả lời với ACK

Trong khoảng ldquothời gian chờrdquo ndash sẽ phản hồi với ACK để nhận caacutec FIN

Bước 4 server nhận ACK Kết nối đatilde đoacuteng

Chuacute yacute với một sửa đổi nhỏ coacute thể quản lyacute nhiều FIN đồng thời

client

FIN

server

ACK

ACK

FIN

đang đoacuteng

đang đoacuteng

đatilde đoacuteng

thời g

ian c

hờ

đatilde đoacuteng

Transport Layer 3-77

TCP quản lyacute kết nối (tt)

chu kỳ sống củaTCP client

chu kỳ sống củaTCP server

Transport Layer 3-78

Chương 3 Nội dung trigravenh bagravey

31 Caacutec dịch vụ lớp Transport

32 Multiplexing vagrave demultiplexing

33 Vận chuyển khocircng kết nối UDP

34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy

35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối

36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn

37 Điều khiển tắc nghẽn TCP

Transport Layer 3-79

Caacutec nguyecircn lyacute điều khiển tắc nghẽn

Tắc nghẽn ldquoquaacute nhiều nguồn gửi quaacute nhanh vagrave quaacute nhiều

dữ liệu đến mạngrdquo khaacutec với điều khiển luồng caacutec biểu hiện

caacutec goacutei bị mất (tragraven bộ đệm tại caacutec router) caacutec độ trễ quaacute dagravei (xếp hagraveng trong bộ đệm

của router) lagrave 1 trong 10 vấn đề nan giải nhất

Transport Layer 3-80

Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 1

2 gửi 2 nhận 1 router caacutec bộ

đệm khocircng giới hạn

khocircng coacute truyền lại

caacutec độ trễ lớn hơn khi tắc nghẽn

năng suất coacute thể đạt tối đa

unlimited shared output link buffers

Host Ain original data

Host B

out

Transport Layer 3-81

Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 2

1 router caacutec bộ đệm coacute giới hạn becircn gửi truyền lại caacutec goacutei đatilde mất

chia sẻ vocirc hạncaacutec bộ đệm ouput

Host A in dữ liệu gốc

Host B

out

in dữ liệu gốc cugraveng với dữ liệu truyền lại

Transport Layer 3-82

Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 2 luocircn luocircn

truyền lại ldquohoagraven toagravenrdquo chỉ khi mất maacutet

truyền lại vigrave trễ (khocircng mất) lagravem cho lớn hơn với cugraveng

in

out

=

in

out

gt

in

out

ldquocaacutec chi phiacuterdquo của tắc nghẽn nhiều việc (truyền lại) caacutec truyền lại khocircng cần thiết liecircn kết nhiều bản sao của

goacutei

R2

R2in

ou

t

b

R2

R2in

ou

t

a

R2

R2in

ou

t

c

R4

R3

Transport Layer 3-83

Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 3 4 người gửi caacutec đường qua nhiều hop timeouttruyền lại

in

Hỏi điều gigrave xảy ra nếu vagrave tăng lecircn

in

chia sẻ vocirc hạncaacutec bộ đệm ouput

Host Ain dữ liệu gốc

Host B

out

in dữ liệu gốc cugraveng với dữ liệu truyền lại

Transport Layer 3-84

Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 3

ldquochi phiacuterdquo khaacutec của tắc nghẽn khi caacutec goacutei bị bỏ bất kỳ ldquokhả năng truyền

upstream dugraveng cho goacutei đoacute sẽ bị latildeng phiacuterdquo

Host A

Host B

o

u

t

Transport Layer 3-85

Caacutec caacutech tiếp cận đối với điều khiển tắc nghẽn

điều khiển tắc nghẽn end-end

khocircng coacute phản hồi rotilde ragraveng từ mạng

tắc nghẽn được suy ra từ việc quan saacutet caacutec hệ thống đầu cuối coacute mất maacutet trễ

tiếp cận được quản lyacute bởi TCP

điều khiển tắc nghẽn coacute sự hỗ trợ của mạng

caacutec router cung cấp phản hồi về caacutec hệ thống đầu cuối 1 bit duy nhất chỉ thị

tắc nghẽn (SNA DECbit TCPIP ECN ATM)

tốc độ sẽ gửi được xaacutec định rotilde ragraveng

2 caacutech

Transport Layer 3-86

Viacute dụ điều khiển tắc nghẽn ATM ABR

ABR tốc độ bit sẵn sagraveng

ldquodịch vụ mềm dẻordquo nếu đường gửi ldquochưa

hếtrdquo becircn gửi sẽ dugraveng

băng thocircng sẵn sagraveng nếu đường gửi tắc

nghẽn becircn gửi điều tiết với

tốc độ tối thiểu

RM (resource management)

gửi bởi becircn gửi rải raacutec với caacutec ocirc dữ liệu

caacutec bit trong ocirc thiết lập bởi caacutec switch bit NI khocircng tăng tốc độ

(tắc nghẽn nhẹ) bit CI tắc nghẽn rotilde rệt

Caacutec ocirc RM được trả về becircn gửi từ becircn nhận với nguyecircn vẹn caacutec bit

Transport Layer 3-87

Viacute dụ điều khiển tắc nghẽn ATM ABR

trường 2-byte ER trong ocirc RM switch đatilde tắc nghẽn coacute thể coacute giaacute trị ER thấp hơn trong ocirc tốc độ gửi do đoacute coacute thể được hỗ trợ tối đa trecircn đường

EFCI bit trong caacutec ocirc dữ liệu được cagravei giaacute trị 1 trong switch đatilde tắc nghẽn nếu ocirc dữ liệu đứng trước ocirc RM coacute cagravei EFCI becircn gửi sẽ cagravei

bit CI trong ocirc RM trả về

Transport Layer 3-88

Chương 3 Nội dung trigravenh bagravey

31 Caacutec dịch vụ lớp Transport

32 Multiplexing vagrave demultiplexing

33 Vận chuyển khocircng kết nối UDP

34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy

35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối

36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn

37 Điều khiển tắc nghẽn TCP

Transport Layer 3-89

TCP điều khiển tắc nghẽn additive tăng lecircn multiplicative giảm xuống

8 Kbytes

16 Kbytes

24 Kbytes

time

congestionwindow

Caacutech tiếp cận tăng tốc độ truyền (kiacutech thước cửa sổ) tigravem khả năng băng thocircng coacute thể cho đến khi coacute mất maacutet xảy ra additive tăng lecircn tăng CongWin bởi 1 MSS

mỗi RTT cho đến khi coacute mất maacutet xảy ra multiplicative giảm xuống bỏ CongWin trong

nửa giai đoạn sau khi mất maacutet

timekiacutech

thư

ớc

cửa

sổ

tắc

nghẽ

n

Tigravem kiếm băng thocircng

Transport Layer 3-90

TCP điều khiển tắc nghẽn chi tiết

becircn gửi hạn chế việc truyền LastByteSent-LastByteAcked

CongWin Cocircng thức

CongWin thay đổi chức năng lagrave nhận biết tắc nghẽn trecircn mạng

Lagravem thế nagraveo becircn gửi nhận biết tắc nghẽn

mất maacutet xảy ra = timeout hoặc 3 ack trugraveng lặp

becircn gửi giảm tốc độ (CongWin) sau khi mất maacutet xảy ra

3 cơ chế AIMD khởi động chậm thận trọng sau khi coacute

caacutec sự kiện timeout

tốc độ = CongWin

RTT Bytess

Transport Layer 3-91

TCP khởi động chậm

Khi kết nối bắt đầu CongWin = 1 MSS Viacute dụ MSS = 500 bytes

amp RTT = 200 ms tốc độ khởi tạo = 20

kbps

băng thocircng sẵn sagraveng coacute thể gtgt MSSRTT mong muốn nhanh

choacuteng tăng tốc lecircn tốc độ coacute thể đaacutep ứng

Khi kết nối bắt đầu tăng tốc lecircn rất nhanh cho đến khi sự cố mất maacutet xảy ra đầu tiecircn

Transport Layer 3-92

TCP khởi động chậm (tt)

Khi kết nối bắt đầu tăng tốc lecircn rất nhanh cho đến khi sự cố mất maacutet xảy ra đầu tiecircn nhacircn đocirci CongWin mỗi

RTT hoagraven thagravenh nhờ tăng CongWin ứng với mỗi ACK đatilde nhận

Tổng kết tốc độ khởi đầu lagrave chậm nhưng sau đoacute tăng tốc rất nhanh

Host A

1 đoạn

RTT

Host B

thời gian

2 đoạn

4 đoạn

Transport Layer 3-93

Tinh chếHỏi Khi nagraveo việc tăng

tốc trở thagravenh tuyến tiacutenh

Trả lời Khi CongWin đạt đến 12 giaacute trị của noacute trước khi timeout

Hiện thực Ngưỡng thay đổi Tại thời điểm coacute sự cố

mất maacutet ngưỡng được cagravei giaacute trị bằng frac12 của CongWin ngay trước đoacute

Transport Layer 3-94

Tinh chế nhận biết mất maacutet

Sau 3 ACK trugraveng lặp CongWin sẽ giảm 12 kiacutech thước cửa sổ

tăng tuyến tiacutenh nhưng sau sự cố

timeout CongWin thay giaacute trị

bằng 1 MSS kiacutech thước cửa sổ

tăng cấp lũy thừa khi đến một ngưỡng

thigrave tăng tuyến tiacutenh

3 ACK trugraveng nhau chỉ ra khả năng truyền của mạng timeout chỉ thị ldquonhiều cảnh baacuteordquo về tigravenh huống tắc nghẽn

Nguyecircn lyacute

Transport Layer 3-95

Tổng kết TCP điều khiển tắc nghẽn

Khi CongWin dưới Threshold becircn gửi đang trong giai đoạn khởi động chậm kiacutech thước cửa sổ tăng nhanh theo cấp lũy thừa

Khi CongWin trecircn Threshold becircn gửi đang trong giai đoạn traacutenh tắc nghẽn kiacutech thước cửa sổ tăng nhanh theo cấp tuyến tiacutenh

Khi coacute 3 ACK trugraveng lặp xảy ra Threshold = CongWin2 vagrave CongWin = Threshold

Khi timeout xảy ra Threshold = CongWin2 vagrave CongWin = 1 MSS

Transport Layer 3-96

TCP điều khiển tắc nghẽn becircn gửi

Trạng thaacutei Sự kiện TCP becircn gửi hagravenh động Diễn giải

Slow Start (SS)-Khởi động chậm

ACK baacuteo nhận cho dữ liệu chưa ACK trước đoacute

CongWin = CongWin + MSS If (CongWin gt Threshold) cagravei đặt trạng thaacutei ldquoTraacutenh tắc nghẽnrdquo

Hậu quả lagravem tăng gấp đocirci CongWin mỗi RTT

CongestionAvoidance (CA) ndashTraacutenh tắc nghẽn

ACK baacuteo nhận cho dữ liệu chưa ACK trước đoacute

CongWin = CongWin+MSS (MSSCongWin)

Additive tăng lecircn lagravem tăng CongWin lecircn 1 MSS mỗi RTT

SS hoặc CA Sự cố mất maacutet xảy ra khi thấy coacute 3 ACK trugraveng lặp

Threshold = CongWin2 CongWin = Thresholdcagravei đặt trạng thaacutei ldquoTraacutenh tắc nghẽnrdquo

Khocirci phục nhanh hiện thực giảm xuống multiplicative CongWin sẽ khocircng giảm xuống dưới 1 MSS

SS hoặc CA Timeout Threshold = CongWin2 CongWin = 1 MSScagravei đặt trạng thaacutei ldquoKhởi động chậmrdquo

Vagraveo chế độ ldquoKhởi động chậmrdquo

SS hoặc CA ACK trugraveng lặp

Đếm ACK tăng lecircn cho đoạn vừa được ACK

CongWin vagrave Threshold khocircng thay đổi

Transport Layer 3-97

TCP throughput

Throughout trung bigravenh của TCP biểu diễn qua kiacutech thước của sổ vagrave RTT Bỏ qua trạng thaacutei ldquoKhởi động chậmrdquo

Cho W lagrave kiacutech thước cửa sổ khi coacute mất maacutet xảy ra

Khi kiacutech thước cửa sổ = W lưu lượng = WRTT

Chỉ ngay sau khi mất maacutet cửa sổ giảm xuống = W2 lưu lượng = W2RTT

throughout trung bigravenh 075 WRTT

Transport Layer 3-98

TCP tương lai

Viacute dụ caacutec đoạn dagravei 1500 byte RTT 100ms lưu lượng 10 Gbps

Kiacutech thước cửa sổ yecircu cầu W = 83333 đoạn trecircn đường truyền

Lưu lượng trong caacutec trường hợp mất maacutet

L = 210-10

Phiecircn bản mới của TCP dagravenh cho nhu cầu tốc độ cao

LRTT

MSS221

Transport Layer 3-99

Mục tiecircu nếu K phiecircn lagravem việc TCP chia sẻ kết nối cổ chai của băng thocircng lagrave R mỗi phiecircn coacute tốc độ trung bigravenh lagrave RK

TCP kết nối 1

router cổ chaikhả năng R

TCP kết nối 2

TCP tiacutenh cocircng bằng

Transport Layer 3-100

Tại sao phải TCP cocircng bằng

2 phiecircn lagravem việc cạnh tranh nhau Additive tăng lưu lượng tăng multiplicative giảm lưu lượng tương xứng

R

R

chia sẻ băng thocircng bằng nhau

Connection 1 throughputConnect

ion 2

th

roughput

traacutenh tắc nghẽn additive tăng lecircnmất maacutet giảm cửa sổ bằng 12

traacutenh tắc nghẽn additive tăng lecircnmất maacutet giảm cửa sổ bằng 12

Transport Layer 3-101

TCP tiacutenh cocircng bằng (tt)

Tiacutenh cocircng bằng amp UDP nhiều ứng dụng

thường khocircng dugraveng TCP khocircng muốn tốc độ bị

điều tiết do điều khiển tắc nghẽn

Thay bằng dugraveng UDP truyền audiovideo với

tốc độ ổn định chịu được mất maacutet

Nghiecircn cứu giao thức thacircn thiện với TCP

Tiacutenh cocircng bằng amp caacutec kết nối TCP song song

khocircng coacute gigrave ngăn cản việc ứng dụng mở caacutec kết nối song song giữa 2 host

Trigravenh duyệt Web lagravem giống như thế

Viacute dụ tốc độ R hỗ trợ 9 kết nối ứng dụng mới yecircu cầu 1

TCP coacute tốc độ R10 ứng dụng mới yecircu cầu 11

TCP coacute tốc độ R2

Transport Layer 3-102

Mocirc higravenh trễ

Hỏi Mất bao lacircu để nhận 1 đối tượng từ Web server sau khi gửi yecircu cầu

Bỏ qua tắc nghẽn trễ bị ảnh hưởng bởi

thiết lập kết nối TCP trễ truyền dữ liệu khởi động chậm

Notation caacutec giả định Giả sử một kết nối giữa

client vagrave server coacute tốc độ R

S MSS (bits) O kiacutech thước đối tượng

(bits) khocircng truyền lại (khocircng

mất maacutet khocircng hỏng)

Kiacutech thước cửa sổ Giả định 1 cửa sổ tắc

nghẽn cố định coacute W đoạn Sau đoacute cửa sổ thay đổi

mocirc higravenh khởi động chậm

Transport Layer 3-103

Cửa sổ tắc nghẽn cố định (1)

Trường hợp đầu tiecircnWSR gt RTT + SR cho

đoạn đầu tiecircn trong cửa sổ trả về trước khi cửa sổ dữ liệu gửi ACK

trễ = 2RTT + OR

Transport Layer 3-104

Cửa sổ tắc nghẽn cố định (2)

Trường hợp thứ hai WSR lt RTT + SR sent

chờ cho ACK sau khi gửi dữ liệu

trễ = 2RTT + OR+ (K-1)[SR + RTT - WSR]

Transport Layer 3-105

TCP Mocirc higravenh trễ Khởi động chậm (1)

Bacircy giờ giả sử kiacutech thước cửa sổ tăng lecircn tugravey theo quaacute trigravenh khởi động chậm

Độ trễ của một đối tượng sẽ lagrave

R

S

R

SRTTP

R

ORTTLatency P )12(2

trong đoacute P lagrave số lần TCP rảnh ở tại server

1min KQP

- trong đoacute Q lagrave số lần server rảnh nếu đối tượng đatilde khởi tạo kiacutech thước

- vagrave K lagrave số lượng cửa sổ bao trugravem đối tượng

Transport Layer 3-106

TCP Mocirc higravenh trễ Khởi động chậm (2)

RTT

initia te TCPconnection

requestobject

first w indow= S R

second w indow= 2S R

third w indow= 4S R

fourth w indow= 8S R

com pletetransm issionobject

delivered

tim e atc lient

tim e atserver

Viacute dụbull OS = 15 đoạnbull K = 4 cửa sổbull Q = 2bull P = minK-1Q = 2

Server rảnh P=2 lần

Caacutec thagravenh phần trễbull 2 RTT dagravenh cho thiết lập kết nối vagrave yecircu cầubull OR để truyền đối tượngbullthời gian server rảnh bởi vigrave khởi động chậm

Server rảnh P = minK-1Q lần

Transport Layer 3-107

TCP Mocirc higravenh trễ(3)

R

S

R

SRTTPRTT

R

O

R

SRTT

R

SRTT

R

O

idleTimeRTTR

O

P

kP

k

P

pp

)12(][2

]2[2

2delay

1

1

1

th window after the timeidle 2 1 kR

SRTT

R

S k

ementacknowledg receivesserver until

segment send tostartsserver when from time RTTR

S

window kth the transmit totime2 1

R

Sk

RTT

initia te TCPconnection

requestobject

first w indow= S R

second w indow= 2S R

third w indow= 4S R

fourth w indow= 8S R

com pletetransm issionobject

delivered

tim e atc lient

tim e atserver

Transport Layer 3-108

TCP Mocirc higravenh trễ (4)

)1(log

)1(logmin

12min

222min

222min

2

2

110

110

S

OS

Okk

S

Ok

SOk

OSSSkK

k

k

k

caacutech tiacutenh toaacuten Q tương tự (xem HW)

K = số lượng cửa sổ bao trugravem đối tượngLagravem thế nagraveo tiacutenh được K

Transport Layer 3-109

HTTP Mocirc higravenh Giả sử trang Web chứa

1 trang HTML (kiacutech thước O bits) M higravenh ảnh (mỗi caacutei kiacutech thướcO bits)

HTTP khocircng bền vững M+1 TCP kết nối Thời gian đaacutep ứng = (M+1)OR + (M+1)2RTT + tổng số thời

gian rảnh HTTP bền vững

2 RTT để yecircu cầu vagrave nhận file HTML 1 RTT để yecircu cầu vagrave nhận M higravenh ảnh Thời gian đaacutep ứng = (M+1)OR + 3RTT + tổng số thời gian

rảnh HTTP khocircng bền vững với X kết nối song song

Giả sử MX lagrave số nguyecircn 1 TCP kết nối cho file MX thiết lập caacutec kết nối song song cho caacutec higravenh ảnh Thời gian đaacutep ứng = (M+1)OR + (MX + 1)2RTT + tổng số

thời gian rảnh

Transport Layer 3-110

02468

101214161820

28Kbps

100Kbps

1Mbps

10Mbps

non-persistent

persistent

parallel non-persistent

HTTP thời gian đaacutep ứng (giacircy)RTT = 100 msec O = 5 Kbytes M=10 vagrave X=5

Với băng thocircng thấp thời gian kết nối amp đaacutep ứng trội hơn thời gian truyền

Caacutec kết nối bền vững chỉ cho sự cải thiện khocircng đaacuteng kể trecircn caacutec kết nối song song

Transport Layer 3-111

0

10

20

30

40

50

60

70

28Kbps

100Kbps

1Mbps

10Mbps

non-persistent

persistent

parallel non-persistent

HTTP thời gian đaacutep ứng (giacircy)

RTT =1 sec O = 5 Kbytes M=10 and X=5

Với RTT lớn hơn thời gian đaacutep ứng trội hơn thời gian trễ chờ thiết lập kết nốiTCP amp khởi động chậm Caacutec kết nối bền vững bacircy giờ cho thấy cải thiện rotilde rệt đặc biệtvới caacutec mạng băng thocircng cao

Transport Layer 3-112

Chương 3 Tổng kết caacutec nguyecircn lyacute của caacutec

dịch vụ lớp transport multiplexing

demultiplexing truyền dữ liệu tin cậy điều khiển luồng điều khiển tắc nghẽn

khởi tạo vagrave hiện thực trong Internet UDP TCP

Tiếp theo nghiecircn cứu xong

caacutec vấn đề ldquongoagravei biecircnrdquo (caacutec lớp application transport)

chuẩn bị vagraveo phần ldquolotildeirdquo của mạng

  • Slide 1
  • Chương 3 Lớp Transport
  • Chương 3 Nội dung trigravenh bagravey
  • Caacutec dịch vụ vagrave giao thức Transport
  • Lớp Transport với lớp network
  • Caacutec giao thức lớp transport trecircn Internet
  • Slide 7
  • Multiplexingdemultiplexing
  • Demultiplexing lagravem việc như thế nagraveo
  • Demultiplexing khocircng kết nối
  • Demultiplexing khocircng kết nối (tiếp)
  • Demultiplexing hướng kết nối
  • Demultiplexing hướng kết nối (tiếp)
  • Demultiplexing hướng kết nối Threaded Web Server
  • Slide 15
  • UDP User Datagram Protocol [RFC 768]
  • UDP (tt)
  • UDP checksum
  • Viacute dụ Checksum
  • Slide 20
  • Caacutec nguyecircn lyacute truyền dữ liệu tin cậy
  • Slide 22
  • Slide 23
  • Truyền dữ liệu tin cậy
  • Slide 25
  • Rdt10 truyền dữ liệu tin cậy trecircn 1 kecircnh truyền tin cậy
  • Rdt20 kecircnh với caacutec lỗi
  • rdt20 đặc tả FSM
  • rdt20 hoạt động khi khocircng lỗi
  • rdt20 hoạt động khi coacute lỗi
  • rdt20 coacute lỗ hổng nghiecircm trọng
  • rdt21 người gửi quản lyacute caacutec ACKNAK bị hỏng
  • Slide 33
  • rdt21 thảo luận
  • rdt22 một giao thức khocircng cần NAK
  • rdt22 gửi nhận caacutec mảnh
  • rdt30 caacutec kecircnh với lỗi vagrave mất maacutet
  • rdt30 gửi
  • hagravenh động của rdt30
  • Slide 40
  • Hiệu suất của rdt30
  • rdt30 hoạt động dừng-vagrave-chờ
  • Caacutec giao thức Pipelined
  • Pipelining độ khả dụng tăng
  • Go-Back-N
  • GBN becircn gửi mở rộng FSM
  • GBN becircn nhận mở rộng FSM
  • GBN hoạt động
  • Lặp coacute lựa chọn
  • Lặp coacute lựa chọn caacutec cửa sổ gửi nhận
  • Slide 51
  • Hoạt động của lặp coacute lựa chọn
  • Lặp coacute lựa chọn tigravenh trạng khoacute giải quyết
  • Slide 54
  • TCP Tổng quan RFCs 793 1122 1323 2018 2581
  • TCP cấu truacutec đoạn
  • Caacutec số thứ tự TCP vagrave ACK
  • TCP Round Trip Time vagraveTimeout
  • TCP Round Trip Time vagrave Timeout
  • Viacute dụ đaacutenh giaacute RTT
  • Slide 61
  • TCP truyền dữ liệu tin cậy
  • TCP caacutec sự kiện
  • TCP becircn gửi (đơn giản)
  • TCP caacutec tigravenh huống truyền lại
  • TCP caacutec tigravenh huống truyền lại (tt)
  • TCP sinh ra ACK [RFC 1122 RFC 2581]
  • Truyền lại nhanh
  • Giải thuật truyền lại nhanh
  • Slide 70
  • TCP điều khiển luồng
  • TCP điều khiển luồng caacutech lagravem
  • Slide 73
  • TCP quản lyacute kết nối
  • TCP quản lyacute kết nối (tt)
  • Slide 76
  • Slide 77
  • Slide 78
  • Caacutec nguyecircn lyacute điều khiển tắc nghẽn
  • Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 1
  • Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 2
  • Slide 82
  • Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 3
  • Slide 84
  • Caacutec caacutech tiếp cận đối với điều khiển tắc nghẽn
  • Viacute dụ điều khiển tắc nghẽn ATM ABR
  • Slide 87
  • Slide 88
  • TCP điều khiển tắc nghẽn additive tăng lecircn multiplicative giảm xuống
  • TCP điều khiển tắc nghẽn chi tiết
  • TCP khởi động chậm
  • TCP khởi động chậm (tt)
  • Tinh chế
  • Tinh chế nhận biết mất maacutet
  • Tổng kết TCP điều khiển tắc nghẽn
  • TCP điều khiển tắc nghẽn becircn gửi
  • TCP throughput
  • TCP tương lai
  • TCP tiacutenh cocircng bằng
  • Tại sao phải TCP cocircng bằng
  • TCP tiacutenh cocircng bằng (tt)
  • Mocirc higravenh trễ
  • Cửa sổ tắc nghẽn cố định (1)
  • Cửa sổ tắc nghẽn cố định (2)
  • TCP Mocirc higravenh trễ Khởi động chậm (1)
  • TCP Mocirc higravenh trễ Khởi động chậm (2)
  • TCP Mocirc higravenh trễ(3)
  • TCP Mocirc higravenh trễ (4)
  • HTTP Mocirc higravenh
  • Slide 110
  • Slide 111
  • Chương 3 Tổng kết

Transport Layer 3-30

rdt20 hoạt động khi coacute lỗi

chờ gọi từ lớp dưới

snkpkt = make_pkt(data checksum)udt_send(sndpkt)

extract(rcvpktdata)deliver_data(data)udt_send(ACK)

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)

rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp isNAK(rcvpkt)

udt_send(NAK)

rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)

chờ ACK hoặc NAK

chờ gọi từ lớp dưới

rdt_send(data)

Transport Layer 3-31

rdt20 coacute lỗ hổng nghiecircm trọngĐiều gigrave xảy ra nếu

ACKNAK bị hỏng người gửi khocircng biết điều

gigrave đatilde xảy ra tại becircn nhận

khocircng thể đơn phương truyền lại khả năng trugraveng lặp

Quản lyacute trugraveng lặp người gửi truyền lại goacutei

hiện tại nếu ACKNAK bị hỏng

người gửi thecircm số thứ tự vagraveo mỗi goacutei

người nhận hủy (khocircng nhận) goacutei trugraveng lặp

Người gửi gửi 1 goacutei sau đoacute dừng lại chờ phản hồitừ người nhận

dừng vagrave chờ

Transport Layer 3-32

rdt21 người gửi quản lyacute caacutec ACKNAK bị hỏng

chờ gọi 0 từ lớp trecircn

sndpkt = make_pkt(0 data checksum)udt_send(sndpkt)

rdt_send(data)

chờ ACK hoặc NAK

0 udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) ||isNAK(rcvpkt) )

sndpkt = make_pkt(1 data checksum)udt_send(sndpkt)

rdt_send(data)

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) ||isNAK(rcvpkt) )

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt)

chờ gọi 1 từ lớp trecircn

chờ ACK hoặc NAK

1

Transport Layer 3-33

rdt21 người gửi quản lyacute caacutec ACKNAK bị hỏng

chờ 0 từ dưới

sndpkt = make_pkt(NAK chksum)udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp not corrupt(rcvpkt) ampamp has_seq0(rcvpkt)

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp has_seq1(rcvpkt)

extract(rcvpktdata)deliver_data(data)sndpkt = make_pkt(ACK chksum)udt_send(sndpkt)

chờ 1 từ dưới

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp has_seq0(rcvpkt)

extract(rcvpktdata)deliver_data(data)sndpkt = make_pkt(ACK chksum)udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp (corrupt(rcvpkt)

sndpkt = make_pkt(ACK chksum)udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp not corrupt(rcvpkt) ampamp has_seq1(rcvpkt)

rdt_rcv(rcvpkt) ampamp (corrupt(rcvpkt)

sndpkt = make_pkt(ACK chksum)udt_send(sndpkt)

sndpkt = make_pkt(NAK chksum)udt_send(sndpkt)

Transport Layer 3-34

rdt21 thảo luận

người gửi số thứ tự thecircm vagraveo

goacutei chỉ cần hai số thứ tự

(01) lagrave đủ Tại sao phải kiểm tra nếu việc

nhận ACKNAK bị hỏng

số trạng thaacutei tăng lecircn 2 lần trạng thaacutei phải ldquonhớrdquo

goacutei ldquohiện tạirdquo coacute số thứ tự lagrave 0 hay 1

người nhận phải kiểm tra coacute

nhận trugraveng goacutei khocircng trạng thaacutei chỉ rotilde coacute

hay khocircng mong chờ số thứ tự 0 hoặc 1

chuacute yacute người nhận khocircng biết ACKNAK vừa rồi của noacute coacute được người gửi nhận tốt hay khocircng

Transport Layer 3-35

rdt22 một giao thức khocircng cần NAK

chức năng giống như rdt21 chỉ dugraveng caacutec ACK thay cho NAK người nhận gửi ACK cho goacutei vừa

rồi đatilde nhận tốt người nhận phải rotilde ragraveng chegraven số thứ tự của goacutei vừa ACK

trugraveng ACK tại người gửi hậu quả giống như hagravenh động của NAK truyền lại goacutei vừa rồi

Transport Layer 3-36

rdt22 gửi nhận caacutec mảnh

Chờ cho gọi 0 từ

trecircn

sndpkt = make_pkt(0 data checksum)udt_send(sndpkt)

rdt_send(data)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) || isACK(rcvpkt1) )

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt0)

Chờ cho ACK

0

gửi phacircn mảnhFSM

Chờ cho gọi

0 từ dưới

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp has_seq1(rcvpkt)

extract(rcvpktdata)deliver_data(data)sndpkt = make_pkt(ACK1 chksum)udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp (corrupt(rcvpkt) || has_seq1(rcvpkt))

udt_send(sndpkt)

nhận phacircn mảnhFSM

Transport Layer 3-37

rdt30 caacutec kecircnh với lỗi vagrave mất maacutet

Giả định mới kecircnh ưu tiecircn cũng coacute thể lagravem mất caacutec goacutei (dữ liệu hoặc caacutec ACK) checksum số thứ tự

caacutec ACK caacutec việc truyền lại sẽ hỗ trợ nhưng khocircng đủ

Caacutech tiếp cận người gửi chờ ACK trong khoảng thời gian ldquochấp nhận đượcrdquo

truyền lại nếu khocircng nhận ACK trong khoảng thời gian nagravey

nếu goacutei (hoặc ACK) chỉ trễ (khocircng mất) truyền lại sẽ gacircy trugraveng

nhưng dugraveng số thứ tự sẽ giải quyết được

người nhận phải xaacutec định số thứ tự của goacutei vừa gửi ACK

cần bộ định thigrave đếm lugravei

Transport Layer 3-38

rdt30 gửi

sndpkt = make_pkt(0 data checksum)udt_send(sndpkt)start_timer

rdt_send(data)

Chờ cho

ACK 0

rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) ||isACK(rcvpkt1) )

Chờ cho gọi 1 từ trecircn

sndpkt = make_pkt(1 data checksum)udt_send(sndpkt)start_timer

rdt_send(data)

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt0)

rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) ||isACK(rcvpkt0) )

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt1)

stop_timerstop_timer

udt_send(sndpkt)start_timer

timeout

udt_send(sndpkt)start_timer

timeout

rdt_rcv(rcvpkt)

Chờ cho gọi 0 từ trecircn

Chờ cho

ACK 1

rdt_rcv(rcvpkt)

Transport Layer 3-39

hagravenh động của rdt30

Transport Layer 3-40

hagravenh động của rdt30

Transport Layer 3-41

Hiệu suất của rdt30

rdt30 lagravem việc được nhưng đaacutenh giaacute hiệu suất hơi rắc rối viacute dụ liecircn kết 1 Gbps trễ lan truyền giữa hai đầu cuối lagrave 15

ms goacutei 1KB

T truyền = 8kbpkt109 bsec

= 8 microsec

U sender độ khả dụng ndash

U sender

= 008

30008 = 000027

microseconds

L R

RTT + L R =

L (độ dagravei goacutei tiacutenh bằng bits)R (tốc độ truyền bps)

=

goacutei 1KB mỗi 30 msec -gt 33kBs trecircn đường truyền 1 Gbps giao thức network hạn chế việc dugraveng caacutec tagravei nguyecircn vật

lyacute

Transport Layer 3-42

rdt30 hoạt động dừng-vagrave-chờ

goacutei đầu tiecircn đatilde truyền t = 0

gửi nhận

RTT

goacutei cuối cugraveng đatilde truyền t = L R

goacutei đầu tiecircn đatilde đếngoacutei cuối cugraveng đatilde đến gửi ACK

ACK đến gửi goacutei kế tiếp t = RTT + L R

U sender

= 008

30008 = 000027

microseconds

L R

RTT + L R =

Transport Layer 3-43

Caacutec giao thức Pipelined

Pipelining người gửi cho pheacutep gửi nhiều goacutei đồng thời khocircng cần chờ baacuteo nhận được nhoacutem caacutec số thứ tự phải tăng dần phải coacute bộ nhớ đệm tại nơi gửi vagravehoặc nơi nhận

hai dạng phổ biến của caacutec giao thức pipelined go-Back-N Lặp coacute lựa chọn

Transport Layer 3-44

Pipelining độ khả dụng tăng

goacutei đầu tiecircn đatilde truyền t = 0

sender receiver

RTT

goacutei cuối cugraveng đatilde truyền t = L R

goacutei đầu tiecircn đatilde đếngoacutei cuối cugraveng đatilde đến gửi ACK

ACK đến gửi goacuteikế tiếp t = RTT + L R

bit cuối của goacutei thứ 2 đến gửi ACKbit cuối của goacutei thứ 3 đến gửi ACK

U sender

= 024

30008 = 00008

microseconds

3 L R

RTT + L R =

Độ khả dụng tăng lecircngấp 3 lần

Transport Layer 3-45

Go-Back-NBecircn gửi k-bit số thứ tự trong header của goacutei ldquocửa sổrdquo tăng lecircn đến N cho pheacutep gửi caacutec goacutei liecircn tục khocircng cần ACK

ACK(n) ACKs tất cả caacutec goacutei đến chứa số thứ tự n ndash ldquoACK tiacutech lũyrdquo coacute thể nhận caacutec ACK trugraveng lặp (xem becircn nhận)

định thigrave cho mỗi goacutei trecircn đường truyền timeout(n) gửi lại goacutei n vagrave tất cả caacutec goacutei coacute số thứ tự cao

hơn trong cửa sổ

Transport Layer 3-46

GBN becircn gửi mở rộng FSM

chờ start_timerudt_send(sndpkt[base])udt_send(sndpkt[base+1])hellipudt_send(sndpkt[nextseqnum-1])

timeout

rdt_send(data)

if (nextseqnum lt base+N) sndpkt[nextseqnum] = make_pkt(nextseqnumdatachksum) udt_send(sndpkt[nextseqnum]) if (base == nextseqnum) start_timer nextseqnum++ else refuse_data(data)

base = getacknum(rcvpkt)+1If (base == nextseqnum) stop_timer else start_timer

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)

base=1nextseqnum=1

rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)

Transport Layer 3-47

GBN becircn nhận mở rộng FSM

ACK-duy nhất luocircn luocircn gửi ACK cho goacutei đatilde nhận đuacuteng với số thứ tự xếp hạng cao nhất coacute thể sinh ra caacutec ACK trugraveng nhau chỉ cần nhớ expectedseqnum

goacutei khocircng theo thứ tự hủy -gt khocircng nhận vagraveo bộ đệm gửi lại ACK với số thứ tự xếp hạng cao nhất

chờ

udt_send(sndpkt)

default

rdt_rcv(rcvpkt) ampamp notcurrupt(rcvpkt) ampamp hasseqnum(rcvpktexpectedseqnum)

extract(rcvpktdata)deliver_data(data)sndpkt = make_pkt(expectedseqnumACKchksum)udt_send(sndpkt)expectedseqnum++

expectedseqnum=1sndpkt = make_pkt(expectedseqnumACKchksum)

Transport Layer 3-48

GBN hoạt động

Transport Layer 3-49

Lặp coacute lựa chọn

becircn nhận thocircng baacuteo đatilde nhận đuacuteng tất cả từng goacutei một đệm (buffer) caacutec goacutei nếu cần thiết

becircn gửi chỉ gửi lại caacutec goacutei nagraveo khocircng nhận được ACK becircn gửi định thigrave đối với mỗi goacutei khocircng gửi ACK

cửa sổ becircn gửi N số thứ tự liecircn tục hạn chế số thứ tự caacutec goacutei khocircng gửi ACK

Transport Layer 3-50

Lặp coacute lựa chọn caacutec cửa sổ gửi nhận

Transport Layer 3-51

Lặp coacute lựa chọn

dữ liệu từ lớp trecircn nếu số thứ tự kế tiếp sẵn

sagraveng trong cửa sổ gửi goacutei

timeout(n) gửi lại goacutei n taacutei khởi tạo

bộ định thigrave

ACK(n) trong [sendbasesendbase+N]

đaacutenh dấu goacutei n lagrave đatilde nhận nếu goacutei khocircng ACK coacute n

nhỏ nhất dịch chuyển cửa sổ base đến số thứ tự khocircng ACK kế tiếp

Gửigoacutei n trong [rcvbase

rcvbase+N-1]

gửi ACK(n) khocircng thứ tự đệm

(buffer) coacute thứ tự truyền (cũng

truyền caacutec goacutei đatilde đệm coacute thứ tự) dịch chuyển cửa sổ đến goacutei chưa nhận kế tiếp

goacutei n trong [rcvbase-Nrcvbase-1]

ACK(n)

ngược lại lờ đi

Nhận

Transport Layer 3-52

Hoạt động của lặp coacute lựa chọn

Transport Layer 3-53

Lặp coacute lựa chọntigravenh trạng khoacute giải quyếtViacute dụ Số thứ tự 0 1 2 3 Kiacutech thước cửa sổ = 3

becircn nhận khocircng thấy sự khaacutec nhau trong 2 tigravenh huống

chuyển khocircng chiacutenh xaacutec dữ liệu trugraveng lặp như dữ liệu mới trong (a)

Hỏi quan hệ giữa datildey số thứ tự vagrave kiacutech thước cửa sổ

Transport Layer 3-54

Chương 3 Nội dung trigravenh bagravey

31 Caacutec dịch vụ lớp Transport

32 Multiplexing vagrave demultiplexing

33 Vận chuyển khocircng kết nối UDP

34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy

35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối

36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn

37 Điều khiển tắc nghẽn TCP

Transport Layer 3-55

TCP Tổng quan RFCs 793 1122 1323 2018 2581

dữ liệu full duplex luồng dữ liệu đi 2 chiều

trong cugraveng một kết nối MSS maximum

segment size ndash kiacutech thước đoạn tối đa

hướng kết nối bắt tay (trao đổi caacutec

thocircng điệp điều khiển) trạng thaacutei becircn gửi becircn nhận trước khi trao đổi dữ liệu

điều khiển luồng becircn gửi sẽ khocircng lấn aacutet

becircn nhận

point-to-point một becircn gửi một becircn

nhận tin cậy dograveng byte coacute

thứ tự khocircng ldquoranh giới thocircng

điệprdquo kecircnh liecircn lạc

TCP điều khiển luồng vagrave tắc nghẽn thiết lập kiacutech thước cửa sổ

caacutec bộ đệm gửi amp nhận

socketdoor

T C Psend buffer

T C Preceive buffer

socketdoor

segm ent

applicationwrites data

applicationreads data

Transport Layer 3-56

TCP cấu truacutec đoạn

port nguồn port điacutech

32 bits

dữ liệu ứng dụng(độ dagravei thay đổi)

số thứ tự

số ACKcửa sổ nhận

con trỏ URGchecksum

FSRPAUheadlen

notused

Tugravey chọn (độ dagravei thay đổi)

URG dữ liệu khẩn cấp(thường khocircng dugraveng)

ACK ACK hợp lệ

PSH push data now(thường khocircng dugraveng)

RST SYN FINthiết lập kết nối

(caacutec lệnh thiết lậpchia nhỏ)

số byte becircn nhận sẵn sagraveng chấp nhận

đếm bởi số bytecủa dữ liệu

Internetchecksum

(giống UDP)

Transport Layer 3-57

Caacutec số thứ tự TCP vagrave ACKCaacutec số thứ tự

dograveng byte ldquođaacutenh sốrdquo byte đầu tiecircn trong dữ liệu của đoạn

caacutec ACK số thứ tự của byte

kế tiếp được chờ đợi từ phiacutea becircn kia

ACK tiacutech lũyHỏi lagravem thế nagraveo becircn

nhận quản lyacute caacutec đoạn khocircng thứ tự Trả lời TCP khocircng

đề cập tugravey thuộc người hiện thực

Host A Host B

Seq=42 ACK=79 data = lsquoCrsquo

Seq=79 ACK=43 data = lsquoCrsquo

Seq=43 ACK=80

UsernhậplsquoCrsquo

host ACKsnhận phản hồi

lsquoCrsquo

host ACKsbaacuteo nhận

lsquoCrsquo phản hồingược lại lsquoCrsquo

timetigravenh huống telnet đơn giản

Transport Layer 3-58

TCP Round Trip Time vagraveTimeout

Hỏi Lagravem thế nagraveo để thiết lập giaacute trị TCP timeout

dagravei hơn RTT khaacutec với RTT

quaacute ngắn timeout sớm truyền lại khocircng

cần thiết quaacute dagravei phản ứng

chậm đối với việc mất maacutet goacutei

Hỏi Lagravem thế nagraveo để thiết lập RTT

SampleRTT thời gian được đo từ khi truyền đoạn đến khi baacuteo nhận ACK lờ đi việc truyền lại

SampleRTT sẽ thay đổi muốn ước lượng RTT ldquomượt hơnrdquo tiacutenh trung bigravenh một số giaacute

trị đo được gần đoacute khocircng chỉ SampleRTT hiện tại

Transport Layer 3-59

TCP Round Trip Time vagrave Timeout

EstimatedRTT = (1- )EstimatedRTT + SampleRTT

giaacute trị đặc trưng = 0125

Transport Layer 3-60

Viacute dụ đaacutenh giaacute RTTRTT gaiacsumassedu to fantasiaeurecomfr

100

150

200

250

300

350

1 8 15 22 29 36 43 50 57 64 71 78 85 92 99 106

time (seconnds)

RTT

(mill

isec

onds

)

SampleRTT Estimated RTT

Transport Layer 3-61

TCP Round Trip Time vagrave Timeout

Thiết lập timeout EstimtedRTT cộng ldquohệ số dự trữ an toagravenrdquo

sự biến thiecircn lớn trong EstimatedRTT -gt hệ số dự trữ an toagraven lớn hơn ước lượng đầu tiecircn về sự biến thiecircn của SampleRTT từ EstimatedRTT

TimeoutInterval = EstimatedRTT + 4DevRTT

DevRTT = (1-)DevRTT + |SampleRTT-EstimatedRTT|

(tiecircu biểu = 025)

Sau đoacute thiết lập timeout interval

Transport Layer 3-62

TCP truyền dữ liệu tin cậy

TCP tạo dịch vụ rdt trecircn dịch vụ khocircng tin cậy IP

caacutec đoạn Pipelined caacutec ACK tiacutech lũy TCP dugraveng bộ định thigrave

truyền lại đơn

Truyền lại được kiacutech hoạt bởi caacutec sự kiện timeout caacutec ack trugraveng lặp

luacutec đầu khảo saacutet caacutec becircn gửi TCP đơn giản lờ đi caacutec ack trugraveng lặp lờ đi điều khiển luồng

điều khiển tắc nghẽn

Transport Layer 3-63

TCP caacutec sự kiệndữ liệu đatilde nhận từ ứng

dụng tạo đoạn với số thứ

tự của noacute số thứ tự lagrave số theo

byte dữ liệu đầu tiecircn khởi động bộ định thigrave

nếu chưa chạy khoảng thời gian hết

hạn TimeOutInterval

timeout gửi lại đoạn nagraveo gacircy

ra timeout khởi động lại bộ định

thigrave Ack đatilde nhận

cập nhật caacutei gigrave sẽ được ACK

khởi động bộ định thigrave nếu coacute caacutec đoạn cograven chờ

Transport Layer 3-64

TCP becircn gửi(đơn giản)

NextSeqNum = InitialSeqNum SendBase = InitialSeqNum

loop (forever) switch(event)

event data received from application above create TCP segment with sequence number NextSeqNum if (timer currently not running) start timer pass segment to IP NextSeqNum = NextSeqNum + length(data)

event timer timeout retransmit not-yet-acknowledged segment with smallest sequence number start timer

event ACK received with ACK field value of y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer

end of loop forever

Chuacute thiacutechbull SendBase-1 byte vừa được ACK tiacutech lũy Viacute dụbull SendBase-1 = 71y= 73 vigrave thế becircn nhận muốn 73+ y gt SendBase vigrave thế dữ liệu mới được chấp nhận

Transport Layer 3-65

TCP caacutec tigravenh huống truyền lại

Host A

Seq=100 20 bytes data

ACK=100

timetimeout sớm

Host B

Seq=92 8 bytes data

ACK=120

Seq=92 8 bytes data

Seq=

92

tim

eout

ACK=120

Host A

Seq=92 8 bytes data

ACK=100

loss

tim

eout

tigravenh huống mất ACK

Host B

X

Seq=92 8 bytes data

ACK=100

time

Seq=

92

tim

eout

SendBase= 100

SendBase= 120

SendBase= 120

Sendbase= 100

Transport Layer 3-66

TCP caacutec tigravenh huống truyền lại (tt)Host A

Seq=92 8 bytes data

ACK=100

loss

tim

eout

Cumulative ACK scenario

Host B

X

Seq=100 20 bytes data

ACK=120

time

SendBase= 120

Transport Layer 3-67

TCP sinh ra ACK [RFC 1122 RFC 2581]

Sự kiện tại becircn nhận

Đoạn đến với đuacuteng số thứ tự mong muốn Tất cả dữ liệu đếnđatilde được ACK

Đoạn đến với đuacuteng số thứ tự mong muốn Một đoạn khaacutec đangchờ ACK

Caacutec đoạn đến khocircng thứ tựlớn hơn số thứ tự đoạn mong muốnCoacute khoảng trống

Đoạn đếnlấp đầy từng phần hoặc toagraven bộkhoảng trống

TCP becircn nhận hagravenh động

ACK trễ Chờ đến 500mscho đoạn kế tiếp Nếu khocircng coacute đoạnkế tiếp gửi ACK

Gửi ngay một ACK tiacutech lũy chấp nhậncho cả caacutec đoạn theo thứ tự

Gửi ngay ACK trugraveng lặp chỉ thị số thứ tựđoạn của byte kế tiếp đang mong chờ

Gửi ngay ACK với điều kiện lagrave đoạnbắt đầu ngay điểm coacute khoảng trống

Transport Layer 3-68

Truyền lại nhanh

Chu kỳ Time-out thường tương đối dagravei độ trễ dagravei trước khi gửi

lại goacutei đatilde mất

Xaacutec nhận caacutec đoạn đatilde mất bằng caacutec ACK trugraveng lặp becircn gửi thường gửi

nhiều đoạn song song Nếu đoạn bị mất sẽ

xảy ra tigravenh trạng giống như nhiều ACK trugraveng nhau

Nếu becircn gửi nhận 3 ACK của cugraveng một dữ liệu noacute cho lagrave đoạn sau dữ liệu đatilde ACK bị mất Truyền lại nhanh gửi

lại đoạn trước khi bộ định thigrave hết hạn

Transport Layer 3-69

sự kiện ACK đatilde nhận với trường lagrave y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer else increment count of dup ACKs received for y if (count of dup ACKs received for y = 3) resend segment with sequence number y

Giải thuật truyền lại nhanh

một ACK trugraveng lặp cho đoạn đatilde được ACK

Truyền lại nhanh

Transport Layer 3-70

Chương 3 Nội dung trigravenh bagravey

31 Caacutec dịch vụ lớp Transport

32 Multiplexing vagrave demultiplexing

33 Vận chuyển khocircng kết nối UDP

34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy

35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối

36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn

37 Điều khiển tắc nghẽn TCP

Transport Layer 3-71

TCP điều khiển luồng

becircn nhận của kết nối TCP coacute một bộ đệm nhận

dịch vụ so trugraveng tốc độ so trugraveng tốc độ gửi với tốc độ nhận của ứng dụng

tiến trigravenh ứng dụng coacute thể chậm tại luacutec đọc bộ đệm

becircn gửi sẽ khocircng lagravem tragraven bộ đệm vigrave truyền quaacute nhiều vagrave

quaacute nhanh

điều khiển luồng

Transport Layer 3-72

TCP điều khiển luồng caacutech lagravem

(Giả sử becircn nhận TCP loại bỏ caacutec đoạn khocircng coacute thứ tự)

dự phograveng trong bộ đệm= RcvWindow

= RcvBuffer-[LastByteRcvd - LastByteRead]

Becircn nhận thocircng baacuteo khoảng dự trữ nhờ giaacute trị RcvWindow trong caacutec đoạn

Becircn gửi hạn chế dữ liệu khocircng được ACK vagraveo RcvWindow bảo đảm bộ đệm nhận

khocircng tragraven

Transport Layer 3-73

Chương 3 Nội dung trigravenh bagravey

31 Caacutec dịch vụ lớp Transport

32 Multiplexing vagrave demultiplexing

33 Vận chuyển khocircng kết nối UDP

34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy

35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối

36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn

37 Điều khiển tắc nghẽn TCP

Transport Layer 3-74

TCP quản lyacute kết nối

Chuacute yacute Becircn gửi vagrave becircn nhận TCP thiết lập ldquokết nốirdquo trước khi trao đổi dữ liệu

khởi tạo caacutec biến TCP caacutec số thứ tự đoạn thocircng tin caacutec bộ đệm điều

khiển luồng (như RcvWindow)

client người khởi xướng kết nối

Socket clientSocket = new Socket(hostnameport

number) server được tiếp xuacutec bởi

client Socket connectionSocket =

welcomeSocketaccept()

3 phương phaacutep bắt tay

Bước 1 client host gửi đoạnTCP SYN đến server xaacutec định số thứ tự khởi đầu khocircng phải dữ liệu

Bước 2 server host nhận SYN trả lời với đoạn SYNACK

server cấp phaacutet caacutec bộ đệm

xaacutec định số thứ tự khởi đầuBước 3 client nhận SYNACK trả

lời với đoạn ACK (coacute thể chứa dữ liệu)

Transport Layer 3-75

TCP quản lyacute kết nối (tt)

Đoacuteng một kết nối

client đoacuteng socket clientSocketclose()

Bước 1 client gửi đoạn điều khiển TCP FIN đến server

Bước 2 server nhận FIN trả lời với ACK Đoacuteng kết nối gửi FIN

client

FIN

server

ACK

ACK

FIN

đoacuteng

đoacuteng

đatilde đoacutengthời g

ian c

hờ

Transport Layer 3-76

TCP quản lyacute kết nối (tt)

Bước 3 client nhận FIN trả lời với ACK

Trong khoảng ldquothời gian chờrdquo ndash sẽ phản hồi với ACK để nhận caacutec FIN

Bước 4 server nhận ACK Kết nối đatilde đoacuteng

Chuacute yacute với một sửa đổi nhỏ coacute thể quản lyacute nhiều FIN đồng thời

client

FIN

server

ACK

ACK

FIN

đang đoacuteng

đang đoacuteng

đatilde đoacuteng

thời g

ian c

hờ

đatilde đoacuteng

Transport Layer 3-77

TCP quản lyacute kết nối (tt)

chu kỳ sống củaTCP client

chu kỳ sống củaTCP server

Transport Layer 3-78

Chương 3 Nội dung trigravenh bagravey

31 Caacutec dịch vụ lớp Transport

32 Multiplexing vagrave demultiplexing

33 Vận chuyển khocircng kết nối UDP

34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy

35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối

36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn

37 Điều khiển tắc nghẽn TCP

Transport Layer 3-79

Caacutec nguyecircn lyacute điều khiển tắc nghẽn

Tắc nghẽn ldquoquaacute nhiều nguồn gửi quaacute nhanh vagrave quaacute nhiều

dữ liệu đến mạngrdquo khaacutec với điều khiển luồng caacutec biểu hiện

caacutec goacutei bị mất (tragraven bộ đệm tại caacutec router) caacutec độ trễ quaacute dagravei (xếp hagraveng trong bộ đệm

của router) lagrave 1 trong 10 vấn đề nan giải nhất

Transport Layer 3-80

Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 1

2 gửi 2 nhận 1 router caacutec bộ

đệm khocircng giới hạn

khocircng coacute truyền lại

caacutec độ trễ lớn hơn khi tắc nghẽn

năng suất coacute thể đạt tối đa

unlimited shared output link buffers

Host Ain original data

Host B

out

Transport Layer 3-81

Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 2

1 router caacutec bộ đệm coacute giới hạn becircn gửi truyền lại caacutec goacutei đatilde mất

chia sẻ vocirc hạncaacutec bộ đệm ouput

Host A in dữ liệu gốc

Host B

out

in dữ liệu gốc cugraveng với dữ liệu truyền lại

Transport Layer 3-82

Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 2 luocircn luocircn

truyền lại ldquohoagraven toagravenrdquo chỉ khi mất maacutet

truyền lại vigrave trễ (khocircng mất) lagravem cho lớn hơn với cugraveng

in

out

=

in

out

gt

in

out

ldquocaacutec chi phiacuterdquo của tắc nghẽn nhiều việc (truyền lại) caacutec truyền lại khocircng cần thiết liecircn kết nhiều bản sao của

goacutei

R2

R2in

ou

t

b

R2

R2in

ou

t

a

R2

R2in

ou

t

c

R4

R3

Transport Layer 3-83

Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 3 4 người gửi caacutec đường qua nhiều hop timeouttruyền lại

in

Hỏi điều gigrave xảy ra nếu vagrave tăng lecircn

in

chia sẻ vocirc hạncaacutec bộ đệm ouput

Host Ain dữ liệu gốc

Host B

out

in dữ liệu gốc cugraveng với dữ liệu truyền lại

Transport Layer 3-84

Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 3

ldquochi phiacuterdquo khaacutec của tắc nghẽn khi caacutec goacutei bị bỏ bất kỳ ldquokhả năng truyền

upstream dugraveng cho goacutei đoacute sẽ bị latildeng phiacuterdquo

Host A

Host B

o

u

t

Transport Layer 3-85

Caacutec caacutech tiếp cận đối với điều khiển tắc nghẽn

điều khiển tắc nghẽn end-end

khocircng coacute phản hồi rotilde ragraveng từ mạng

tắc nghẽn được suy ra từ việc quan saacutet caacutec hệ thống đầu cuối coacute mất maacutet trễ

tiếp cận được quản lyacute bởi TCP

điều khiển tắc nghẽn coacute sự hỗ trợ của mạng

caacutec router cung cấp phản hồi về caacutec hệ thống đầu cuối 1 bit duy nhất chỉ thị

tắc nghẽn (SNA DECbit TCPIP ECN ATM)

tốc độ sẽ gửi được xaacutec định rotilde ragraveng

2 caacutech

Transport Layer 3-86

Viacute dụ điều khiển tắc nghẽn ATM ABR

ABR tốc độ bit sẵn sagraveng

ldquodịch vụ mềm dẻordquo nếu đường gửi ldquochưa

hếtrdquo becircn gửi sẽ dugraveng

băng thocircng sẵn sagraveng nếu đường gửi tắc

nghẽn becircn gửi điều tiết với

tốc độ tối thiểu

RM (resource management)

gửi bởi becircn gửi rải raacutec với caacutec ocirc dữ liệu

caacutec bit trong ocirc thiết lập bởi caacutec switch bit NI khocircng tăng tốc độ

(tắc nghẽn nhẹ) bit CI tắc nghẽn rotilde rệt

Caacutec ocirc RM được trả về becircn gửi từ becircn nhận với nguyecircn vẹn caacutec bit

Transport Layer 3-87

Viacute dụ điều khiển tắc nghẽn ATM ABR

trường 2-byte ER trong ocirc RM switch đatilde tắc nghẽn coacute thể coacute giaacute trị ER thấp hơn trong ocirc tốc độ gửi do đoacute coacute thể được hỗ trợ tối đa trecircn đường

EFCI bit trong caacutec ocirc dữ liệu được cagravei giaacute trị 1 trong switch đatilde tắc nghẽn nếu ocirc dữ liệu đứng trước ocirc RM coacute cagravei EFCI becircn gửi sẽ cagravei

bit CI trong ocirc RM trả về

Transport Layer 3-88

Chương 3 Nội dung trigravenh bagravey

31 Caacutec dịch vụ lớp Transport

32 Multiplexing vagrave demultiplexing

33 Vận chuyển khocircng kết nối UDP

34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy

35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối

36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn

37 Điều khiển tắc nghẽn TCP

Transport Layer 3-89

TCP điều khiển tắc nghẽn additive tăng lecircn multiplicative giảm xuống

8 Kbytes

16 Kbytes

24 Kbytes

time

congestionwindow

Caacutech tiếp cận tăng tốc độ truyền (kiacutech thước cửa sổ) tigravem khả năng băng thocircng coacute thể cho đến khi coacute mất maacutet xảy ra additive tăng lecircn tăng CongWin bởi 1 MSS

mỗi RTT cho đến khi coacute mất maacutet xảy ra multiplicative giảm xuống bỏ CongWin trong

nửa giai đoạn sau khi mất maacutet

timekiacutech

thư

ớc

cửa

sổ

tắc

nghẽ

n

Tigravem kiếm băng thocircng

Transport Layer 3-90

TCP điều khiển tắc nghẽn chi tiết

becircn gửi hạn chế việc truyền LastByteSent-LastByteAcked

CongWin Cocircng thức

CongWin thay đổi chức năng lagrave nhận biết tắc nghẽn trecircn mạng

Lagravem thế nagraveo becircn gửi nhận biết tắc nghẽn

mất maacutet xảy ra = timeout hoặc 3 ack trugraveng lặp

becircn gửi giảm tốc độ (CongWin) sau khi mất maacutet xảy ra

3 cơ chế AIMD khởi động chậm thận trọng sau khi coacute

caacutec sự kiện timeout

tốc độ = CongWin

RTT Bytess

Transport Layer 3-91

TCP khởi động chậm

Khi kết nối bắt đầu CongWin = 1 MSS Viacute dụ MSS = 500 bytes

amp RTT = 200 ms tốc độ khởi tạo = 20

kbps

băng thocircng sẵn sagraveng coacute thể gtgt MSSRTT mong muốn nhanh

choacuteng tăng tốc lecircn tốc độ coacute thể đaacutep ứng

Khi kết nối bắt đầu tăng tốc lecircn rất nhanh cho đến khi sự cố mất maacutet xảy ra đầu tiecircn

Transport Layer 3-92

TCP khởi động chậm (tt)

Khi kết nối bắt đầu tăng tốc lecircn rất nhanh cho đến khi sự cố mất maacutet xảy ra đầu tiecircn nhacircn đocirci CongWin mỗi

RTT hoagraven thagravenh nhờ tăng CongWin ứng với mỗi ACK đatilde nhận

Tổng kết tốc độ khởi đầu lagrave chậm nhưng sau đoacute tăng tốc rất nhanh

Host A

1 đoạn

RTT

Host B

thời gian

2 đoạn

4 đoạn

Transport Layer 3-93

Tinh chếHỏi Khi nagraveo việc tăng

tốc trở thagravenh tuyến tiacutenh

Trả lời Khi CongWin đạt đến 12 giaacute trị của noacute trước khi timeout

Hiện thực Ngưỡng thay đổi Tại thời điểm coacute sự cố

mất maacutet ngưỡng được cagravei giaacute trị bằng frac12 của CongWin ngay trước đoacute

Transport Layer 3-94

Tinh chế nhận biết mất maacutet

Sau 3 ACK trugraveng lặp CongWin sẽ giảm 12 kiacutech thước cửa sổ

tăng tuyến tiacutenh nhưng sau sự cố

timeout CongWin thay giaacute trị

bằng 1 MSS kiacutech thước cửa sổ

tăng cấp lũy thừa khi đến một ngưỡng

thigrave tăng tuyến tiacutenh

3 ACK trugraveng nhau chỉ ra khả năng truyền của mạng timeout chỉ thị ldquonhiều cảnh baacuteordquo về tigravenh huống tắc nghẽn

Nguyecircn lyacute

Transport Layer 3-95

Tổng kết TCP điều khiển tắc nghẽn

Khi CongWin dưới Threshold becircn gửi đang trong giai đoạn khởi động chậm kiacutech thước cửa sổ tăng nhanh theo cấp lũy thừa

Khi CongWin trecircn Threshold becircn gửi đang trong giai đoạn traacutenh tắc nghẽn kiacutech thước cửa sổ tăng nhanh theo cấp tuyến tiacutenh

Khi coacute 3 ACK trugraveng lặp xảy ra Threshold = CongWin2 vagrave CongWin = Threshold

Khi timeout xảy ra Threshold = CongWin2 vagrave CongWin = 1 MSS

Transport Layer 3-96

TCP điều khiển tắc nghẽn becircn gửi

Trạng thaacutei Sự kiện TCP becircn gửi hagravenh động Diễn giải

Slow Start (SS)-Khởi động chậm

ACK baacuteo nhận cho dữ liệu chưa ACK trước đoacute

CongWin = CongWin + MSS If (CongWin gt Threshold) cagravei đặt trạng thaacutei ldquoTraacutenh tắc nghẽnrdquo

Hậu quả lagravem tăng gấp đocirci CongWin mỗi RTT

CongestionAvoidance (CA) ndashTraacutenh tắc nghẽn

ACK baacuteo nhận cho dữ liệu chưa ACK trước đoacute

CongWin = CongWin+MSS (MSSCongWin)

Additive tăng lecircn lagravem tăng CongWin lecircn 1 MSS mỗi RTT

SS hoặc CA Sự cố mất maacutet xảy ra khi thấy coacute 3 ACK trugraveng lặp

Threshold = CongWin2 CongWin = Thresholdcagravei đặt trạng thaacutei ldquoTraacutenh tắc nghẽnrdquo

Khocirci phục nhanh hiện thực giảm xuống multiplicative CongWin sẽ khocircng giảm xuống dưới 1 MSS

SS hoặc CA Timeout Threshold = CongWin2 CongWin = 1 MSScagravei đặt trạng thaacutei ldquoKhởi động chậmrdquo

Vagraveo chế độ ldquoKhởi động chậmrdquo

SS hoặc CA ACK trugraveng lặp

Đếm ACK tăng lecircn cho đoạn vừa được ACK

CongWin vagrave Threshold khocircng thay đổi

Transport Layer 3-97

TCP throughput

Throughout trung bigravenh của TCP biểu diễn qua kiacutech thước của sổ vagrave RTT Bỏ qua trạng thaacutei ldquoKhởi động chậmrdquo

Cho W lagrave kiacutech thước cửa sổ khi coacute mất maacutet xảy ra

Khi kiacutech thước cửa sổ = W lưu lượng = WRTT

Chỉ ngay sau khi mất maacutet cửa sổ giảm xuống = W2 lưu lượng = W2RTT

throughout trung bigravenh 075 WRTT

Transport Layer 3-98

TCP tương lai

Viacute dụ caacutec đoạn dagravei 1500 byte RTT 100ms lưu lượng 10 Gbps

Kiacutech thước cửa sổ yecircu cầu W = 83333 đoạn trecircn đường truyền

Lưu lượng trong caacutec trường hợp mất maacutet

L = 210-10

Phiecircn bản mới của TCP dagravenh cho nhu cầu tốc độ cao

LRTT

MSS221

Transport Layer 3-99

Mục tiecircu nếu K phiecircn lagravem việc TCP chia sẻ kết nối cổ chai của băng thocircng lagrave R mỗi phiecircn coacute tốc độ trung bigravenh lagrave RK

TCP kết nối 1

router cổ chaikhả năng R

TCP kết nối 2

TCP tiacutenh cocircng bằng

Transport Layer 3-100

Tại sao phải TCP cocircng bằng

2 phiecircn lagravem việc cạnh tranh nhau Additive tăng lưu lượng tăng multiplicative giảm lưu lượng tương xứng

R

R

chia sẻ băng thocircng bằng nhau

Connection 1 throughputConnect

ion 2

th

roughput

traacutenh tắc nghẽn additive tăng lecircnmất maacutet giảm cửa sổ bằng 12

traacutenh tắc nghẽn additive tăng lecircnmất maacutet giảm cửa sổ bằng 12

Transport Layer 3-101

TCP tiacutenh cocircng bằng (tt)

Tiacutenh cocircng bằng amp UDP nhiều ứng dụng

thường khocircng dugraveng TCP khocircng muốn tốc độ bị

điều tiết do điều khiển tắc nghẽn

Thay bằng dugraveng UDP truyền audiovideo với

tốc độ ổn định chịu được mất maacutet

Nghiecircn cứu giao thức thacircn thiện với TCP

Tiacutenh cocircng bằng amp caacutec kết nối TCP song song

khocircng coacute gigrave ngăn cản việc ứng dụng mở caacutec kết nối song song giữa 2 host

Trigravenh duyệt Web lagravem giống như thế

Viacute dụ tốc độ R hỗ trợ 9 kết nối ứng dụng mới yecircu cầu 1

TCP coacute tốc độ R10 ứng dụng mới yecircu cầu 11

TCP coacute tốc độ R2

Transport Layer 3-102

Mocirc higravenh trễ

Hỏi Mất bao lacircu để nhận 1 đối tượng từ Web server sau khi gửi yecircu cầu

Bỏ qua tắc nghẽn trễ bị ảnh hưởng bởi

thiết lập kết nối TCP trễ truyền dữ liệu khởi động chậm

Notation caacutec giả định Giả sử một kết nối giữa

client vagrave server coacute tốc độ R

S MSS (bits) O kiacutech thước đối tượng

(bits) khocircng truyền lại (khocircng

mất maacutet khocircng hỏng)

Kiacutech thước cửa sổ Giả định 1 cửa sổ tắc

nghẽn cố định coacute W đoạn Sau đoacute cửa sổ thay đổi

mocirc higravenh khởi động chậm

Transport Layer 3-103

Cửa sổ tắc nghẽn cố định (1)

Trường hợp đầu tiecircnWSR gt RTT + SR cho

đoạn đầu tiecircn trong cửa sổ trả về trước khi cửa sổ dữ liệu gửi ACK

trễ = 2RTT + OR

Transport Layer 3-104

Cửa sổ tắc nghẽn cố định (2)

Trường hợp thứ hai WSR lt RTT + SR sent

chờ cho ACK sau khi gửi dữ liệu

trễ = 2RTT + OR+ (K-1)[SR + RTT - WSR]

Transport Layer 3-105

TCP Mocirc higravenh trễ Khởi động chậm (1)

Bacircy giờ giả sử kiacutech thước cửa sổ tăng lecircn tugravey theo quaacute trigravenh khởi động chậm

Độ trễ của một đối tượng sẽ lagrave

R

S

R

SRTTP

R

ORTTLatency P )12(2

trong đoacute P lagrave số lần TCP rảnh ở tại server

1min KQP

- trong đoacute Q lagrave số lần server rảnh nếu đối tượng đatilde khởi tạo kiacutech thước

- vagrave K lagrave số lượng cửa sổ bao trugravem đối tượng

Transport Layer 3-106

TCP Mocirc higravenh trễ Khởi động chậm (2)

RTT

initia te TCPconnection

requestobject

first w indow= S R

second w indow= 2S R

third w indow= 4S R

fourth w indow= 8S R

com pletetransm issionobject

delivered

tim e atc lient

tim e atserver

Viacute dụbull OS = 15 đoạnbull K = 4 cửa sổbull Q = 2bull P = minK-1Q = 2

Server rảnh P=2 lần

Caacutec thagravenh phần trễbull 2 RTT dagravenh cho thiết lập kết nối vagrave yecircu cầubull OR để truyền đối tượngbullthời gian server rảnh bởi vigrave khởi động chậm

Server rảnh P = minK-1Q lần

Transport Layer 3-107

TCP Mocirc higravenh trễ(3)

R

S

R

SRTTPRTT

R

O

R

SRTT

R

SRTT

R

O

idleTimeRTTR

O

P

kP

k

P

pp

)12(][2

]2[2

2delay

1

1

1

th window after the timeidle 2 1 kR

SRTT

R

S k

ementacknowledg receivesserver until

segment send tostartsserver when from time RTTR

S

window kth the transmit totime2 1

R

Sk

RTT

initia te TCPconnection

requestobject

first w indow= S R

second w indow= 2S R

third w indow= 4S R

fourth w indow= 8S R

com pletetransm issionobject

delivered

tim e atc lient

tim e atserver

Transport Layer 3-108

TCP Mocirc higravenh trễ (4)

)1(log

)1(logmin

12min

222min

222min

2

2

110

110

S

OS

Okk

S

Ok

SOk

OSSSkK

k

k

k

caacutech tiacutenh toaacuten Q tương tự (xem HW)

K = số lượng cửa sổ bao trugravem đối tượngLagravem thế nagraveo tiacutenh được K

Transport Layer 3-109

HTTP Mocirc higravenh Giả sử trang Web chứa

1 trang HTML (kiacutech thước O bits) M higravenh ảnh (mỗi caacutei kiacutech thướcO bits)

HTTP khocircng bền vững M+1 TCP kết nối Thời gian đaacutep ứng = (M+1)OR + (M+1)2RTT + tổng số thời

gian rảnh HTTP bền vững

2 RTT để yecircu cầu vagrave nhận file HTML 1 RTT để yecircu cầu vagrave nhận M higravenh ảnh Thời gian đaacutep ứng = (M+1)OR + 3RTT + tổng số thời gian

rảnh HTTP khocircng bền vững với X kết nối song song

Giả sử MX lagrave số nguyecircn 1 TCP kết nối cho file MX thiết lập caacutec kết nối song song cho caacutec higravenh ảnh Thời gian đaacutep ứng = (M+1)OR + (MX + 1)2RTT + tổng số

thời gian rảnh

Transport Layer 3-110

02468

101214161820

28Kbps

100Kbps

1Mbps

10Mbps

non-persistent

persistent

parallel non-persistent

HTTP thời gian đaacutep ứng (giacircy)RTT = 100 msec O = 5 Kbytes M=10 vagrave X=5

Với băng thocircng thấp thời gian kết nối amp đaacutep ứng trội hơn thời gian truyền

Caacutec kết nối bền vững chỉ cho sự cải thiện khocircng đaacuteng kể trecircn caacutec kết nối song song

Transport Layer 3-111

0

10

20

30

40

50

60

70

28Kbps

100Kbps

1Mbps

10Mbps

non-persistent

persistent

parallel non-persistent

HTTP thời gian đaacutep ứng (giacircy)

RTT =1 sec O = 5 Kbytes M=10 and X=5

Với RTT lớn hơn thời gian đaacutep ứng trội hơn thời gian trễ chờ thiết lập kết nốiTCP amp khởi động chậm Caacutec kết nối bền vững bacircy giờ cho thấy cải thiện rotilde rệt đặc biệtvới caacutec mạng băng thocircng cao

Transport Layer 3-112

Chương 3 Tổng kết caacutec nguyecircn lyacute của caacutec

dịch vụ lớp transport multiplexing

demultiplexing truyền dữ liệu tin cậy điều khiển luồng điều khiển tắc nghẽn

khởi tạo vagrave hiện thực trong Internet UDP TCP

Tiếp theo nghiecircn cứu xong

caacutec vấn đề ldquongoagravei biecircnrdquo (caacutec lớp application transport)

chuẩn bị vagraveo phần ldquolotildeirdquo của mạng

  • Slide 1
  • Chương 3 Lớp Transport
  • Chương 3 Nội dung trigravenh bagravey
  • Caacutec dịch vụ vagrave giao thức Transport
  • Lớp Transport với lớp network
  • Caacutec giao thức lớp transport trecircn Internet
  • Slide 7
  • Multiplexingdemultiplexing
  • Demultiplexing lagravem việc như thế nagraveo
  • Demultiplexing khocircng kết nối
  • Demultiplexing khocircng kết nối (tiếp)
  • Demultiplexing hướng kết nối
  • Demultiplexing hướng kết nối (tiếp)
  • Demultiplexing hướng kết nối Threaded Web Server
  • Slide 15
  • UDP User Datagram Protocol [RFC 768]
  • UDP (tt)
  • UDP checksum
  • Viacute dụ Checksum
  • Slide 20
  • Caacutec nguyecircn lyacute truyền dữ liệu tin cậy
  • Slide 22
  • Slide 23
  • Truyền dữ liệu tin cậy
  • Slide 25
  • Rdt10 truyền dữ liệu tin cậy trecircn 1 kecircnh truyền tin cậy
  • Rdt20 kecircnh với caacutec lỗi
  • rdt20 đặc tả FSM
  • rdt20 hoạt động khi khocircng lỗi
  • rdt20 hoạt động khi coacute lỗi
  • rdt20 coacute lỗ hổng nghiecircm trọng
  • rdt21 người gửi quản lyacute caacutec ACKNAK bị hỏng
  • Slide 33
  • rdt21 thảo luận
  • rdt22 một giao thức khocircng cần NAK
  • rdt22 gửi nhận caacutec mảnh
  • rdt30 caacutec kecircnh với lỗi vagrave mất maacutet
  • rdt30 gửi
  • hagravenh động của rdt30
  • Slide 40
  • Hiệu suất của rdt30
  • rdt30 hoạt động dừng-vagrave-chờ
  • Caacutec giao thức Pipelined
  • Pipelining độ khả dụng tăng
  • Go-Back-N
  • GBN becircn gửi mở rộng FSM
  • GBN becircn nhận mở rộng FSM
  • GBN hoạt động
  • Lặp coacute lựa chọn
  • Lặp coacute lựa chọn caacutec cửa sổ gửi nhận
  • Slide 51
  • Hoạt động của lặp coacute lựa chọn
  • Lặp coacute lựa chọn tigravenh trạng khoacute giải quyết
  • Slide 54
  • TCP Tổng quan RFCs 793 1122 1323 2018 2581
  • TCP cấu truacutec đoạn
  • Caacutec số thứ tự TCP vagrave ACK
  • TCP Round Trip Time vagraveTimeout
  • TCP Round Trip Time vagrave Timeout
  • Viacute dụ đaacutenh giaacute RTT
  • Slide 61
  • TCP truyền dữ liệu tin cậy
  • TCP caacutec sự kiện
  • TCP becircn gửi (đơn giản)
  • TCP caacutec tigravenh huống truyền lại
  • TCP caacutec tigravenh huống truyền lại (tt)
  • TCP sinh ra ACK [RFC 1122 RFC 2581]
  • Truyền lại nhanh
  • Giải thuật truyền lại nhanh
  • Slide 70
  • TCP điều khiển luồng
  • TCP điều khiển luồng caacutech lagravem
  • Slide 73
  • TCP quản lyacute kết nối
  • TCP quản lyacute kết nối (tt)
  • Slide 76
  • Slide 77
  • Slide 78
  • Caacutec nguyecircn lyacute điều khiển tắc nghẽn
  • Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 1
  • Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 2
  • Slide 82
  • Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 3
  • Slide 84
  • Caacutec caacutech tiếp cận đối với điều khiển tắc nghẽn
  • Viacute dụ điều khiển tắc nghẽn ATM ABR
  • Slide 87
  • Slide 88
  • TCP điều khiển tắc nghẽn additive tăng lecircn multiplicative giảm xuống
  • TCP điều khiển tắc nghẽn chi tiết
  • TCP khởi động chậm
  • TCP khởi động chậm (tt)
  • Tinh chế
  • Tinh chế nhận biết mất maacutet
  • Tổng kết TCP điều khiển tắc nghẽn
  • TCP điều khiển tắc nghẽn becircn gửi
  • TCP throughput
  • TCP tương lai
  • TCP tiacutenh cocircng bằng
  • Tại sao phải TCP cocircng bằng
  • TCP tiacutenh cocircng bằng (tt)
  • Mocirc higravenh trễ
  • Cửa sổ tắc nghẽn cố định (1)
  • Cửa sổ tắc nghẽn cố định (2)
  • TCP Mocirc higravenh trễ Khởi động chậm (1)
  • TCP Mocirc higravenh trễ Khởi động chậm (2)
  • TCP Mocirc higravenh trễ(3)
  • TCP Mocirc higravenh trễ (4)
  • HTTP Mocirc higravenh
  • Slide 110
  • Slide 111
  • Chương 3 Tổng kết

Transport Layer 3-31

rdt20 coacute lỗ hổng nghiecircm trọngĐiều gigrave xảy ra nếu

ACKNAK bị hỏng người gửi khocircng biết điều

gigrave đatilde xảy ra tại becircn nhận

khocircng thể đơn phương truyền lại khả năng trugraveng lặp

Quản lyacute trugraveng lặp người gửi truyền lại goacutei

hiện tại nếu ACKNAK bị hỏng

người gửi thecircm số thứ tự vagraveo mỗi goacutei

người nhận hủy (khocircng nhận) goacutei trugraveng lặp

Người gửi gửi 1 goacutei sau đoacute dừng lại chờ phản hồitừ người nhận

dừng vagrave chờ

Transport Layer 3-32

rdt21 người gửi quản lyacute caacutec ACKNAK bị hỏng

chờ gọi 0 từ lớp trecircn

sndpkt = make_pkt(0 data checksum)udt_send(sndpkt)

rdt_send(data)

chờ ACK hoặc NAK

0 udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) ||isNAK(rcvpkt) )

sndpkt = make_pkt(1 data checksum)udt_send(sndpkt)

rdt_send(data)

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) ||isNAK(rcvpkt) )

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt)

chờ gọi 1 từ lớp trecircn

chờ ACK hoặc NAK

1

Transport Layer 3-33

rdt21 người gửi quản lyacute caacutec ACKNAK bị hỏng

chờ 0 từ dưới

sndpkt = make_pkt(NAK chksum)udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp not corrupt(rcvpkt) ampamp has_seq0(rcvpkt)

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp has_seq1(rcvpkt)

extract(rcvpktdata)deliver_data(data)sndpkt = make_pkt(ACK chksum)udt_send(sndpkt)

chờ 1 từ dưới

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp has_seq0(rcvpkt)

extract(rcvpktdata)deliver_data(data)sndpkt = make_pkt(ACK chksum)udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp (corrupt(rcvpkt)

sndpkt = make_pkt(ACK chksum)udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp not corrupt(rcvpkt) ampamp has_seq1(rcvpkt)

rdt_rcv(rcvpkt) ampamp (corrupt(rcvpkt)

sndpkt = make_pkt(ACK chksum)udt_send(sndpkt)

sndpkt = make_pkt(NAK chksum)udt_send(sndpkt)

Transport Layer 3-34

rdt21 thảo luận

người gửi số thứ tự thecircm vagraveo

goacutei chỉ cần hai số thứ tự

(01) lagrave đủ Tại sao phải kiểm tra nếu việc

nhận ACKNAK bị hỏng

số trạng thaacutei tăng lecircn 2 lần trạng thaacutei phải ldquonhớrdquo

goacutei ldquohiện tạirdquo coacute số thứ tự lagrave 0 hay 1

người nhận phải kiểm tra coacute

nhận trugraveng goacutei khocircng trạng thaacutei chỉ rotilde coacute

hay khocircng mong chờ số thứ tự 0 hoặc 1

chuacute yacute người nhận khocircng biết ACKNAK vừa rồi của noacute coacute được người gửi nhận tốt hay khocircng

Transport Layer 3-35

rdt22 một giao thức khocircng cần NAK

chức năng giống như rdt21 chỉ dugraveng caacutec ACK thay cho NAK người nhận gửi ACK cho goacutei vừa

rồi đatilde nhận tốt người nhận phải rotilde ragraveng chegraven số thứ tự của goacutei vừa ACK

trugraveng ACK tại người gửi hậu quả giống như hagravenh động của NAK truyền lại goacutei vừa rồi

Transport Layer 3-36

rdt22 gửi nhận caacutec mảnh

Chờ cho gọi 0 từ

trecircn

sndpkt = make_pkt(0 data checksum)udt_send(sndpkt)

rdt_send(data)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) || isACK(rcvpkt1) )

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt0)

Chờ cho ACK

0

gửi phacircn mảnhFSM

Chờ cho gọi

0 từ dưới

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp has_seq1(rcvpkt)

extract(rcvpktdata)deliver_data(data)sndpkt = make_pkt(ACK1 chksum)udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp (corrupt(rcvpkt) || has_seq1(rcvpkt))

udt_send(sndpkt)

nhận phacircn mảnhFSM

Transport Layer 3-37

rdt30 caacutec kecircnh với lỗi vagrave mất maacutet

Giả định mới kecircnh ưu tiecircn cũng coacute thể lagravem mất caacutec goacutei (dữ liệu hoặc caacutec ACK) checksum số thứ tự

caacutec ACK caacutec việc truyền lại sẽ hỗ trợ nhưng khocircng đủ

Caacutech tiếp cận người gửi chờ ACK trong khoảng thời gian ldquochấp nhận đượcrdquo

truyền lại nếu khocircng nhận ACK trong khoảng thời gian nagravey

nếu goacutei (hoặc ACK) chỉ trễ (khocircng mất) truyền lại sẽ gacircy trugraveng

nhưng dugraveng số thứ tự sẽ giải quyết được

người nhận phải xaacutec định số thứ tự của goacutei vừa gửi ACK

cần bộ định thigrave đếm lugravei

Transport Layer 3-38

rdt30 gửi

sndpkt = make_pkt(0 data checksum)udt_send(sndpkt)start_timer

rdt_send(data)

Chờ cho

ACK 0

rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) ||isACK(rcvpkt1) )

Chờ cho gọi 1 từ trecircn

sndpkt = make_pkt(1 data checksum)udt_send(sndpkt)start_timer

rdt_send(data)

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt0)

rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) ||isACK(rcvpkt0) )

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt1)

stop_timerstop_timer

udt_send(sndpkt)start_timer

timeout

udt_send(sndpkt)start_timer

timeout

rdt_rcv(rcvpkt)

Chờ cho gọi 0 từ trecircn

Chờ cho

ACK 1

rdt_rcv(rcvpkt)

Transport Layer 3-39

hagravenh động của rdt30

Transport Layer 3-40

hagravenh động của rdt30

Transport Layer 3-41

Hiệu suất của rdt30

rdt30 lagravem việc được nhưng đaacutenh giaacute hiệu suất hơi rắc rối viacute dụ liecircn kết 1 Gbps trễ lan truyền giữa hai đầu cuối lagrave 15

ms goacutei 1KB

T truyền = 8kbpkt109 bsec

= 8 microsec

U sender độ khả dụng ndash

U sender

= 008

30008 = 000027

microseconds

L R

RTT + L R =

L (độ dagravei goacutei tiacutenh bằng bits)R (tốc độ truyền bps)

=

goacutei 1KB mỗi 30 msec -gt 33kBs trecircn đường truyền 1 Gbps giao thức network hạn chế việc dugraveng caacutec tagravei nguyecircn vật

lyacute

Transport Layer 3-42

rdt30 hoạt động dừng-vagrave-chờ

goacutei đầu tiecircn đatilde truyền t = 0

gửi nhận

RTT

goacutei cuối cugraveng đatilde truyền t = L R

goacutei đầu tiecircn đatilde đếngoacutei cuối cugraveng đatilde đến gửi ACK

ACK đến gửi goacutei kế tiếp t = RTT + L R

U sender

= 008

30008 = 000027

microseconds

L R

RTT + L R =

Transport Layer 3-43

Caacutec giao thức Pipelined

Pipelining người gửi cho pheacutep gửi nhiều goacutei đồng thời khocircng cần chờ baacuteo nhận được nhoacutem caacutec số thứ tự phải tăng dần phải coacute bộ nhớ đệm tại nơi gửi vagravehoặc nơi nhận

hai dạng phổ biến của caacutec giao thức pipelined go-Back-N Lặp coacute lựa chọn

Transport Layer 3-44

Pipelining độ khả dụng tăng

goacutei đầu tiecircn đatilde truyền t = 0

sender receiver

RTT

goacutei cuối cugraveng đatilde truyền t = L R

goacutei đầu tiecircn đatilde đếngoacutei cuối cugraveng đatilde đến gửi ACK

ACK đến gửi goacuteikế tiếp t = RTT + L R

bit cuối của goacutei thứ 2 đến gửi ACKbit cuối của goacutei thứ 3 đến gửi ACK

U sender

= 024

30008 = 00008

microseconds

3 L R

RTT + L R =

Độ khả dụng tăng lecircngấp 3 lần

Transport Layer 3-45

Go-Back-NBecircn gửi k-bit số thứ tự trong header của goacutei ldquocửa sổrdquo tăng lecircn đến N cho pheacutep gửi caacutec goacutei liecircn tục khocircng cần ACK

ACK(n) ACKs tất cả caacutec goacutei đến chứa số thứ tự n ndash ldquoACK tiacutech lũyrdquo coacute thể nhận caacutec ACK trugraveng lặp (xem becircn nhận)

định thigrave cho mỗi goacutei trecircn đường truyền timeout(n) gửi lại goacutei n vagrave tất cả caacutec goacutei coacute số thứ tự cao

hơn trong cửa sổ

Transport Layer 3-46

GBN becircn gửi mở rộng FSM

chờ start_timerudt_send(sndpkt[base])udt_send(sndpkt[base+1])hellipudt_send(sndpkt[nextseqnum-1])

timeout

rdt_send(data)

if (nextseqnum lt base+N) sndpkt[nextseqnum] = make_pkt(nextseqnumdatachksum) udt_send(sndpkt[nextseqnum]) if (base == nextseqnum) start_timer nextseqnum++ else refuse_data(data)

base = getacknum(rcvpkt)+1If (base == nextseqnum) stop_timer else start_timer

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)

base=1nextseqnum=1

rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)

Transport Layer 3-47

GBN becircn nhận mở rộng FSM

ACK-duy nhất luocircn luocircn gửi ACK cho goacutei đatilde nhận đuacuteng với số thứ tự xếp hạng cao nhất coacute thể sinh ra caacutec ACK trugraveng nhau chỉ cần nhớ expectedseqnum

goacutei khocircng theo thứ tự hủy -gt khocircng nhận vagraveo bộ đệm gửi lại ACK với số thứ tự xếp hạng cao nhất

chờ

udt_send(sndpkt)

default

rdt_rcv(rcvpkt) ampamp notcurrupt(rcvpkt) ampamp hasseqnum(rcvpktexpectedseqnum)

extract(rcvpktdata)deliver_data(data)sndpkt = make_pkt(expectedseqnumACKchksum)udt_send(sndpkt)expectedseqnum++

expectedseqnum=1sndpkt = make_pkt(expectedseqnumACKchksum)

Transport Layer 3-48

GBN hoạt động

Transport Layer 3-49

Lặp coacute lựa chọn

becircn nhận thocircng baacuteo đatilde nhận đuacuteng tất cả từng goacutei một đệm (buffer) caacutec goacutei nếu cần thiết

becircn gửi chỉ gửi lại caacutec goacutei nagraveo khocircng nhận được ACK becircn gửi định thigrave đối với mỗi goacutei khocircng gửi ACK

cửa sổ becircn gửi N số thứ tự liecircn tục hạn chế số thứ tự caacutec goacutei khocircng gửi ACK

Transport Layer 3-50

Lặp coacute lựa chọn caacutec cửa sổ gửi nhận

Transport Layer 3-51

Lặp coacute lựa chọn

dữ liệu từ lớp trecircn nếu số thứ tự kế tiếp sẵn

sagraveng trong cửa sổ gửi goacutei

timeout(n) gửi lại goacutei n taacutei khởi tạo

bộ định thigrave

ACK(n) trong [sendbasesendbase+N]

đaacutenh dấu goacutei n lagrave đatilde nhận nếu goacutei khocircng ACK coacute n

nhỏ nhất dịch chuyển cửa sổ base đến số thứ tự khocircng ACK kế tiếp

Gửigoacutei n trong [rcvbase

rcvbase+N-1]

gửi ACK(n) khocircng thứ tự đệm

(buffer) coacute thứ tự truyền (cũng

truyền caacutec goacutei đatilde đệm coacute thứ tự) dịch chuyển cửa sổ đến goacutei chưa nhận kế tiếp

goacutei n trong [rcvbase-Nrcvbase-1]

ACK(n)

ngược lại lờ đi

Nhận

Transport Layer 3-52

Hoạt động của lặp coacute lựa chọn

Transport Layer 3-53

Lặp coacute lựa chọntigravenh trạng khoacute giải quyếtViacute dụ Số thứ tự 0 1 2 3 Kiacutech thước cửa sổ = 3

becircn nhận khocircng thấy sự khaacutec nhau trong 2 tigravenh huống

chuyển khocircng chiacutenh xaacutec dữ liệu trugraveng lặp như dữ liệu mới trong (a)

Hỏi quan hệ giữa datildey số thứ tự vagrave kiacutech thước cửa sổ

Transport Layer 3-54

Chương 3 Nội dung trigravenh bagravey

31 Caacutec dịch vụ lớp Transport

32 Multiplexing vagrave demultiplexing

33 Vận chuyển khocircng kết nối UDP

34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy

35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối

36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn

37 Điều khiển tắc nghẽn TCP

Transport Layer 3-55

TCP Tổng quan RFCs 793 1122 1323 2018 2581

dữ liệu full duplex luồng dữ liệu đi 2 chiều

trong cugraveng một kết nối MSS maximum

segment size ndash kiacutech thước đoạn tối đa

hướng kết nối bắt tay (trao đổi caacutec

thocircng điệp điều khiển) trạng thaacutei becircn gửi becircn nhận trước khi trao đổi dữ liệu

điều khiển luồng becircn gửi sẽ khocircng lấn aacutet

becircn nhận

point-to-point một becircn gửi một becircn

nhận tin cậy dograveng byte coacute

thứ tự khocircng ldquoranh giới thocircng

điệprdquo kecircnh liecircn lạc

TCP điều khiển luồng vagrave tắc nghẽn thiết lập kiacutech thước cửa sổ

caacutec bộ đệm gửi amp nhận

socketdoor

T C Psend buffer

T C Preceive buffer

socketdoor

segm ent

applicationwrites data

applicationreads data

Transport Layer 3-56

TCP cấu truacutec đoạn

port nguồn port điacutech

32 bits

dữ liệu ứng dụng(độ dagravei thay đổi)

số thứ tự

số ACKcửa sổ nhận

con trỏ URGchecksum

FSRPAUheadlen

notused

Tugravey chọn (độ dagravei thay đổi)

URG dữ liệu khẩn cấp(thường khocircng dugraveng)

ACK ACK hợp lệ

PSH push data now(thường khocircng dugraveng)

RST SYN FINthiết lập kết nối

(caacutec lệnh thiết lậpchia nhỏ)

số byte becircn nhận sẵn sagraveng chấp nhận

đếm bởi số bytecủa dữ liệu

Internetchecksum

(giống UDP)

Transport Layer 3-57

Caacutec số thứ tự TCP vagrave ACKCaacutec số thứ tự

dograveng byte ldquođaacutenh sốrdquo byte đầu tiecircn trong dữ liệu của đoạn

caacutec ACK số thứ tự của byte

kế tiếp được chờ đợi từ phiacutea becircn kia

ACK tiacutech lũyHỏi lagravem thế nagraveo becircn

nhận quản lyacute caacutec đoạn khocircng thứ tự Trả lời TCP khocircng

đề cập tugravey thuộc người hiện thực

Host A Host B

Seq=42 ACK=79 data = lsquoCrsquo

Seq=79 ACK=43 data = lsquoCrsquo

Seq=43 ACK=80

UsernhậplsquoCrsquo

host ACKsnhận phản hồi

lsquoCrsquo

host ACKsbaacuteo nhận

lsquoCrsquo phản hồingược lại lsquoCrsquo

timetigravenh huống telnet đơn giản

Transport Layer 3-58

TCP Round Trip Time vagraveTimeout

Hỏi Lagravem thế nagraveo để thiết lập giaacute trị TCP timeout

dagravei hơn RTT khaacutec với RTT

quaacute ngắn timeout sớm truyền lại khocircng

cần thiết quaacute dagravei phản ứng

chậm đối với việc mất maacutet goacutei

Hỏi Lagravem thế nagraveo để thiết lập RTT

SampleRTT thời gian được đo từ khi truyền đoạn đến khi baacuteo nhận ACK lờ đi việc truyền lại

SampleRTT sẽ thay đổi muốn ước lượng RTT ldquomượt hơnrdquo tiacutenh trung bigravenh một số giaacute

trị đo được gần đoacute khocircng chỉ SampleRTT hiện tại

Transport Layer 3-59

TCP Round Trip Time vagrave Timeout

EstimatedRTT = (1- )EstimatedRTT + SampleRTT

giaacute trị đặc trưng = 0125

Transport Layer 3-60

Viacute dụ đaacutenh giaacute RTTRTT gaiacsumassedu to fantasiaeurecomfr

100

150

200

250

300

350

1 8 15 22 29 36 43 50 57 64 71 78 85 92 99 106

time (seconnds)

RTT

(mill

isec

onds

)

SampleRTT Estimated RTT

Transport Layer 3-61

TCP Round Trip Time vagrave Timeout

Thiết lập timeout EstimtedRTT cộng ldquohệ số dự trữ an toagravenrdquo

sự biến thiecircn lớn trong EstimatedRTT -gt hệ số dự trữ an toagraven lớn hơn ước lượng đầu tiecircn về sự biến thiecircn của SampleRTT từ EstimatedRTT

TimeoutInterval = EstimatedRTT + 4DevRTT

DevRTT = (1-)DevRTT + |SampleRTT-EstimatedRTT|

(tiecircu biểu = 025)

Sau đoacute thiết lập timeout interval

Transport Layer 3-62

TCP truyền dữ liệu tin cậy

TCP tạo dịch vụ rdt trecircn dịch vụ khocircng tin cậy IP

caacutec đoạn Pipelined caacutec ACK tiacutech lũy TCP dugraveng bộ định thigrave

truyền lại đơn

Truyền lại được kiacutech hoạt bởi caacutec sự kiện timeout caacutec ack trugraveng lặp

luacutec đầu khảo saacutet caacutec becircn gửi TCP đơn giản lờ đi caacutec ack trugraveng lặp lờ đi điều khiển luồng

điều khiển tắc nghẽn

Transport Layer 3-63

TCP caacutec sự kiệndữ liệu đatilde nhận từ ứng

dụng tạo đoạn với số thứ

tự của noacute số thứ tự lagrave số theo

byte dữ liệu đầu tiecircn khởi động bộ định thigrave

nếu chưa chạy khoảng thời gian hết

hạn TimeOutInterval

timeout gửi lại đoạn nagraveo gacircy

ra timeout khởi động lại bộ định

thigrave Ack đatilde nhận

cập nhật caacutei gigrave sẽ được ACK

khởi động bộ định thigrave nếu coacute caacutec đoạn cograven chờ

Transport Layer 3-64

TCP becircn gửi(đơn giản)

NextSeqNum = InitialSeqNum SendBase = InitialSeqNum

loop (forever) switch(event)

event data received from application above create TCP segment with sequence number NextSeqNum if (timer currently not running) start timer pass segment to IP NextSeqNum = NextSeqNum + length(data)

event timer timeout retransmit not-yet-acknowledged segment with smallest sequence number start timer

event ACK received with ACK field value of y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer

end of loop forever

Chuacute thiacutechbull SendBase-1 byte vừa được ACK tiacutech lũy Viacute dụbull SendBase-1 = 71y= 73 vigrave thế becircn nhận muốn 73+ y gt SendBase vigrave thế dữ liệu mới được chấp nhận

Transport Layer 3-65

TCP caacutec tigravenh huống truyền lại

Host A

Seq=100 20 bytes data

ACK=100

timetimeout sớm

Host B

Seq=92 8 bytes data

ACK=120

Seq=92 8 bytes data

Seq=

92

tim

eout

ACK=120

Host A

Seq=92 8 bytes data

ACK=100

loss

tim

eout

tigravenh huống mất ACK

Host B

X

Seq=92 8 bytes data

ACK=100

time

Seq=

92

tim

eout

SendBase= 100

SendBase= 120

SendBase= 120

Sendbase= 100

Transport Layer 3-66

TCP caacutec tigravenh huống truyền lại (tt)Host A

Seq=92 8 bytes data

ACK=100

loss

tim

eout

Cumulative ACK scenario

Host B

X

Seq=100 20 bytes data

ACK=120

time

SendBase= 120

Transport Layer 3-67

TCP sinh ra ACK [RFC 1122 RFC 2581]

Sự kiện tại becircn nhận

Đoạn đến với đuacuteng số thứ tự mong muốn Tất cả dữ liệu đếnđatilde được ACK

Đoạn đến với đuacuteng số thứ tự mong muốn Một đoạn khaacutec đangchờ ACK

Caacutec đoạn đến khocircng thứ tựlớn hơn số thứ tự đoạn mong muốnCoacute khoảng trống

Đoạn đếnlấp đầy từng phần hoặc toagraven bộkhoảng trống

TCP becircn nhận hagravenh động

ACK trễ Chờ đến 500mscho đoạn kế tiếp Nếu khocircng coacute đoạnkế tiếp gửi ACK

Gửi ngay một ACK tiacutech lũy chấp nhậncho cả caacutec đoạn theo thứ tự

Gửi ngay ACK trugraveng lặp chỉ thị số thứ tựđoạn của byte kế tiếp đang mong chờ

Gửi ngay ACK với điều kiện lagrave đoạnbắt đầu ngay điểm coacute khoảng trống

Transport Layer 3-68

Truyền lại nhanh

Chu kỳ Time-out thường tương đối dagravei độ trễ dagravei trước khi gửi

lại goacutei đatilde mất

Xaacutec nhận caacutec đoạn đatilde mất bằng caacutec ACK trugraveng lặp becircn gửi thường gửi

nhiều đoạn song song Nếu đoạn bị mất sẽ

xảy ra tigravenh trạng giống như nhiều ACK trugraveng nhau

Nếu becircn gửi nhận 3 ACK của cugraveng một dữ liệu noacute cho lagrave đoạn sau dữ liệu đatilde ACK bị mất Truyền lại nhanh gửi

lại đoạn trước khi bộ định thigrave hết hạn

Transport Layer 3-69

sự kiện ACK đatilde nhận với trường lagrave y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer else increment count of dup ACKs received for y if (count of dup ACKs received for y = 3) resend segment with sequence number y

Giải thuật truyền lại nhanh

một ACK trugraveng lặp cho đoạn đatilde được ACK

Truyền lại nhanh

Transport Layer 3-70

Chương 3 Nội dung trigravenh bagravey

31 Caacutec dịch vụ lớp Transport

32 Multiplexing vagrave demultiplexing

33 Vận chuyển khocircng kết nối UDP

34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy

35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối

36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn

37 Điều khiển tắc nghẽn TCP

Transport Layer 3-71

TCP điều khiển luồng

becircn nhận của kết nối TCP coacute một bộ đệm nhận

dịch vụ so trugraveng tốc độ so trugraveng tốc độ gửi với tốc độ nhận của ứng dụng

tiến trigravenh ứng dụng coacute thể chậm tại luacutec đọc bộ đệm

becircn gửi sẽ khocircng lagravem tragraven bộ đệm vigrave truyền quaacute nhiều vagrave

quaacute nhanh

điều khiển luồng

Transport Layer 3-72

TCP điều khiển luồng caacutech lagravem

(Giả sử becircn nhận TCP loại bỏ caacutec đoạn khocircng coacute thứ tự)

dự phograveng trong bộ đệm= RcvWindow

= RcvBuffer-[LastByteRcvd - LastByteRead]

Becircn nhận thocircng baacuteo khoảng dự trữ nhờ giaacute trị RcvWindow trong caacutec đoạn

Becircn gửi hạn chế dữ liệu khocircng được ACK vagraveo RcvWindow bảo đảm bộ đệm nhận

khocircng tragraven

Transport Layer 3-73

Chương 3 Nội dung trigravenh bagravey

31 Caacutec dịch vụ lớp Transport

32 Multiplexing vagrave demultiplexing

33 Vận chuyển khocircng kết nối UDP

34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy

35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối

36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn

37 Điều khiển tắc nghẽn TCP

Transport Layer 3-74

TCP quản lyacute kết nối

Chuacute yacute Becircn gửi vagrave becircn nhận TCP thiết lập ldquokết nốirdquo trước khi trao đổi dữ liệu

khởi tạo caacutec biến TCP caacutec số thứ tự đoạn thocircng tin caacutec bộ đệm điều

khiển luồng (như RcvWindow)

client người khởi xướng kết nối

Socket clientSocket = new Socket(hostnameport

number) server được tiếp xuacutec bởi

client Socket connectionSocket =

welcomeSocketaccept()

3 phương phaacutep bắt tay

Bước 1 client host gửi đoạnTCP SYN đến server xaacutec định số thứ tự khởi đầu khocircng phải dữ liệu

Bước 2 server host nhận SYN trả lời với đoạn SYNACK

server cấp phaacutet caacutec bộ đệm

xaacutec định số thứ tự khởi đầuBước 3 client nhận SYNACK trả

lời với đoạn ACK (coacute thể chứa dữ liệu)

Transport Layer 3-75

TCP quản lyacute kết nối (tt)

Đoacuteng một kết nối

client đoacuteng socket clientSocketclose()

Bước 1 client gửi đoạn điều khiển TCP FIN đến server

Bước 2 server nhận FIN trả lời với ACK Đoacuteng kết nối gửi FIN

client

FIN

server

ACK

ACK

FIN

đoacuteng

đoacuteng

đatilde đoacutengthời g

ian c

hờ

Transport Layer 3-76

TCP quản lyacute kết nối (tt)

Bước 3 client nhận FIN trả lời với ACK

Trong khoảng ldquothời gian chờrdquo ndash sẽ phản hồi với ACK để nhận caacutec FIN

Bước 4 server nhận ACK Kết nối đatilde đoacuteng

Chuacute yacute với một sửa đổi nhỏ coacute thể quản lyacute nhiều FIN đồng thời

client

FIN

server

ACK

ACK

FIN

đang đoacuteng

đang đoacuteng

đatilde đoacuteng

thời g

ian c

hờ

đatilde đoacuteng

Transport Layer 3-77

TCP quản lyacute kết nối (tt)

chu kỳ sống củaTCP client

chu kỳ sống củaTCP server

Transport Layer 3-78

Chương 3 Nội dung trigravenh bagravey

31 Caacutec dịch vụ lớp Transport

32 Multiplexing vagrave demultiplexing

33 Vận chuyển khocircng kết nối UDP

34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy

35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối

36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn

37 Điều khiển tắc nghẽn TCP

Transport Layer 3-79

Caacutec nguyecircn lyacute điều khiển tắc nghẽn

Tắc nghẽn ldquoquaacute nhiều nguồn gửi quaacute nhanh vagrave quaacute nhiều

dữ liệu đến mạngrdquo khaacutec với điều khiển luồng caacutec biểu hiện

caacutec goacutei bị mất (tragraven bộ đệm tại caacutec router) caacutec độ trễ quaacute dagravei (xếp hagraveng trong bộ đệm

của router) lagrave 1 trong 10 vấn đề nan giải nhất

Transport Layer 3-80

Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 1

2 gửi 2 nhận 1 router caacutec bộ

đệm khocircng giới hạn

khocircng coacute truyền lại

caacutec độ trễ lớn hơn khi tắc nghẽn

năng suất coacute thể đạt tối đa

unlimited shared output link buffers

Host Ain original data

Host B

out

Transport Layer 3-81

Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 2

1 router caacutec bộ đệm coacute giới hạn becircn gửi truyền lại caacutec goacutei đatilde mất

chia sẻ vocirc hạncaacutec bộ đệm ouput

Host A in dữ liệu gốc

Host B

out

in dữ liệu gốc cugraveng với dữ liệu truyền lại

Transport Layer 3-82

Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 2 luocircn luocircn

truyền lại ldquohoagraven toagravenrdquo chỉ khi mất maacutet

truyền lại vigrave trễ (khocircng mất) lagravem cho lớn hơn với cugraveng

in

out

=

in

out

gt

in

out

ldquocaacutec chi phiacuterdquo của tắc nghẽn nhiều việc (truyền lại) caacutec truyền lại khocircng cần thiết liecircn kết nhiều bản sao của

goacutei

R2

R2in

ou

t

b

R2

R2in

ou

t

a

R2

R2in

ou

t

c

R4

R3

Transport Layer 3-83

Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 3 4 người gửi caacutec đường qua nhiều hop timeouttruyền lại

in

Hỏi điều gigrave xảy ra nếu vagrave tăng lecircn

in

chia sẻ vocirc hạncaacutec bộ đệm ouput

Host Ain dữ liệu gốc

Host B

out

in dữ liệu gốc cugraveng với dữ liệu truyền lại

Transport Layer 3-84

Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 3

ldquochi phiacuterdquo khaacutec của tắc nghẽn khi caacutec goacutei bị bỏ bất kỳ ldquokhả năng truyền

upstream dugraveng cho goacutei đoacute sẽ bị latildeng phiacuterdquo

Host A

Host B

o

u

t

Transport Layer 3-85

Caacutec caacutech tiếp cận đối với điều khiển tắc nghẽn

điều khiển tắc nghẽn end-end

khocircng coacute phản hồi rotilde ragraveng từ mạng

tắc nghẽn được suy ra từ việc quan saacutet caacutec hệ thống đầu cuối coacute mất maacutet trễ

tiếp cận được quản lyacute bởi TCP

điều khiển tắc nghẽn coacute sự hỗ trợ của mạng

caacutec router cung cấp phản hồi về caacutec hệ thống đầu cuối 1 bit duy nhất chỉ thị

tắc nghẽn (SNA DECbit TCPIP ECN ATM)

tốc độ sẽ gửi được xaacutec định rotilde ragraveng

2 caacutech

Transport Layer 3-86

Viacute dụ điều khiển tắc nghẽn ATM ABR

ABR tốc độ bit sẵn sagraveng

ldquodịch vụ mềm dẻordquo nếu đường gửi ldquochưa

hếtrdquo becircn gửi sẽ dugraveng

băng thocircng sẵn sagraveng nếu đường gửi tắc

nghẽn becircn gửi điều tiết với

tốc độ tối thiểu

RM (resource management)

gửi bởi becircn gửi rải raacutec với caacutec ocirc dữ liệu

caacutec bit trong ocirc thiết lập bởi caacutec switch bit NI khocircng tăng tốc độ

(tắc nghẽn nhẹ) bit CI tắc nghẽn rotilde rệt

Caacutec ocirc RM được trả về becircn gửi từ becircn nhận với nguyecircn vẹn caacutec bit

Transport Layer 3-87

Viacute dụ điều khiển tắc nghẽn ATM ABR

trường 2-byte ER trong ocirc RM switch đatilde tắc nghẽn coacute thể coacute giaacute trị ER thấp hơn trong ocirc tốc độ gửi do đoacute coacute thể được hỗ trợ tối đa trecircn đường

EFCI bit trong caacutec ocirc dữ liệu được cagravei giaacute trị 1 trong switch đatilde tắc nghẽn nếu ocirc dữ liệu đứng trước ocirc RM coacute cagravei EFCI becircn gửi sẽ cagravei

bit CI trong ocirc RM trả về

Transport Layer 3-88

Chương 3 Nội dung trigravenh bagravey

31 Caacutec dịch vụ lớp Transport

32 Multiplexing vagrave demultiplexing

33 Vận chuyển khocircng kết nối UDP

34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy

35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối

36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn

37 Điều khiển tắc nghẽn TCP

Transport Layer 3-89

TCP điều khiển tắc nghẽn additive tăng lecircn multiplicative giảm xuống

8 Kbytes

16 Kbytes

24 Kbytes

time

congestionwindow

Caacutech tiếp cận tăng tốc độ truyền (kiacutech thước cửa sổ) tigravem khả năng băng thocircng coacute thể cho đến khi coacute mất maacutet xảy ra additive tăng lecircn tăng CongWin bởi 1 MSS

mỗi RTT cho đến khi coacute mất maacutet xảy ra multiplicative giảm xuống bỏ CongWin trong

nửa giai đoạn sau khi mất maacutet

timekiacutech

thư

ớc

cửa

sổ

tắc

nghẽ

n

Tigravem kiếm băng thocircng

Transport Layer 3-90

TCP điều khiển tắc nghẽn chi tiết

becircn gửi hạn chế việc truyền LastByteSent-LastByteAcked

CongWin Cocircng thức

CongWin thay đổi chức năng lagrave nhận biết tắc nghẽn trecircn mạng

Lagravem thế nagraveo becircn gửi nhận biết tắc nghẽn

mất maacutet xảy ra = timeout hoặc 3 ack trugraveng lặp

becircn gửi giảm tốc độ (CongWin) sau khi mất maacutet xảy ra

3 cơ chế AIMD khởi động chậm thận trọng sau khi coacute

caacutec sự kiện timeout

tốc độ = CongWin

RTT Bytess

Transport Layer 3-91

TCP khởi động chậm

Khi kết nối bắt đầu CongWin = 1 MSS Viacute dụ MSS = 500 bytes

amp RTT = 200 ms tốc độ khởi tạo = 20

kbps

băng thocircng sẵn sagraveng coacute thể gtgt MSSRTT mong muốn nhanh

choacuteng tăng tốc lecircn tốc độ coacute thể đaacutep ứng

Khi kết nối bắt đầu tăng tốc lecircn rất nhanh cho đến khi sự cố mất maacutet xảy ra đầu tiecircn

Transport Layer 3-92

TCP khởi động chậm (tt)

Khi kết nối bắt đầu tăng tốc lecircn rất nhanh cho đến khi sự cố mất maacutet xảy ra đầu tiecircn nhacircn đocirci CongWin mỗi

RTT hoagraven thagravenh nhờ tăng CongWin ứng với mỗi ACK đatilde nhận

Tổng kết tốc độ khởi đầu lagrave chậm nhưng sau đoacute tăng tốc rất nhanh

Host A

1 đoạn

RTT

Host B

thời gian

2 đoạn

4 đoạn

Transport Layer 3-93

Tinh chếHỏi Khi nagraveo việc tăng

tốc trở thagravenh tuyến tiacutenh

Trả lời Khi CongWin đạt đến 12 giaacute trị của noacute trước khi timeout

Hiện thực Ngưỡng thay đổi Tại thời điểm coacute sự cố

mất maacutet ngưỡng được cagravei giaacute trị bằng frac12 của CongWin ngay trước đoacute

Transport Layer 3-94

Tinh chế nhận biết mất maacutet

Sau 3 ACK trugraveng lặp CongWin sẽ giảm 12 kiacutech thước cửa sổ

tăng tuyến tiacutenh nhưng sau sự cố

timeout CongWin thay giaacute trị

bằng 1 MSS kiacutech thước cửa sổ

tăng cấp lũy thừa khi đến một ngưỡng

thigrave tăng tuyến tiacutenh

3 ACK trugraveng nhau chỉ ra khả năng truyền của mạng timeout chỉ thị ldquonhiều cảnh baacuteordquo về tigravenh huống tắc nghẽn

Nguyecircn lyacute

Transport Layer 3-95

Tổng kết TCP điều khiển tắc nghẽn

Khi CongWin dưới Threshold becircn gửi đang trong giai đoạn khởi động chậm kiacutech thước cửa sổ tăng nhanh theo cấp lũy thừa

Khi CongWin trecircn Threshold becircn gửi đang trong giai đoạn traacutenh tắc nghẽn kiacutech thước cửa sổ tăng nhanh theo cấp tuyến tiacutenh

Khi coacute 3 ACK trugraveng lặp xảy ra Threshold = CongWin2 vagrave CongWin = Threshold

Khi timeout xảy ra Threshold = CongWin2 vagrave CongWin = 1 MSS

Transport Layer 3-96

TCP điều khiển tắc nghẽn becircn gửi

Trạng thaacutei Sự kiện TCP becircn gửi hagravenh động Diễn giải

Slow Start (SS)-Khởi động chậm

ACK baacuteo nhận cho dữ liệu chưa ACK trước đoacute

CongWin = CongWin + MSS If (CongWin gt Threshold) cagravei đặt trạng thaacutei ldquoTraacutenh tắc nghẽnrdquo

Hậu quả lagravem tăng gấp đocirci CongWin mỗi RTT

CongestionAvoidance (CA) ndashTraacutenh tắc nghẽn

ACK baacuteo nhận cho dữ liệu chưa ACK trước đoacute

CongWin = CongWin+MSS (MSSCongWin)

Additive tăng lecircn lagravem tăng CongWin lecircn 1 MSS mỗi RTT

SS hoặc CA Sự cố mất maacutet xảy ra khi thấy coacute 3 ACK trugraveng lặp

Threshold = CongWin2 CongWin = Thresholdcagravei đặt trạng thaacutei ldquoTraacutenh tắc nghẽnrdquo

Khocirci phục nhanh hiện thực giảm xuống multiplicative CongWin sẽ khocircng giảm xuống dưới 1 MSS

SS hoặc CA Timeout Threshold = CongWin2 CongWin = 1 MSScagravei đặt trạng thaacutei ldquoKhởi động chậmrdquo

Vagraveo chế độ ldquoKhởi động chậmrdquo

SS hoặc CA ACK trugraveng lặp

Đếm ACK tăng lecircn cho đoạn vừa được ACK

CongWin vagrave Threshold khocircng thay đổi

Transport Layer 3-97

TCP throughput

Throughout trung bigravenh của TCP biểu diễn qua kiacutech thước của sổ vagrave RTT Bỏ qua trạng thaacutei ldquoKhởi động chậmrdquo

Cho W lagrave kiacutech thước cửa sổ khi coacute mất maacutet xảy ra

Khi kiacutech thước cửa sổ = W lưu lượng = WRTT

Chỉ ngay sau khi mất maacutet cửa sổ giảm xuống = W2 lưu lượng = W2RTT

throughout trung bigravenh 075 WRTT

Transport Layer 3-98

TCP tương lai

Viacute dụ caacutec đoạn dagravei 1500 byte RTT 100ms lưu lượng 10 Gbps

Kiacutech thước cửa sổ yecircu cầu W = 83333 đoạn trecircn đường truyền

Lưu lượng trong caacutec trường hợp mất maacutet

L = 210-10

Phiecircn bản mới của TCP dagravenh cho nhu cầu tốc độ cao

LRTT

MSS221

Transport Layer 3-99

Mục tiecircu nếu K phiecircn lagravem việc TCP chia sẻ kết nối cổ chai của băng thocircng lagrave R mỗi phiecircn coacute tốc độ trung bigravenh lagrave RK

TCP kết nối 1

router cổ chaikhả năng R

TCP kết nối 2

TCP tiacutenh cocircng bằng

Transport Layer 3-100

Tại sao phải TCP cocircng bằng

2 phiecircn lagravem việc cạnh tranh nhau Additive tăng lưu lượng tăng multiplicative giảm lưu lượng tương xứng

R

R

chia sẻ băng thocircng bằng nhau

Connection 1 throughputConnect

ion 2

th

roughput

traacutenh tắc nghẽn additive tăng lecircnmất maacutet giảm cửa sổ bằng 12

traacutenh tắc nghẽn additive tăng lecircnmất maacutet giảm cửa sổ bằng 12

Transport Layer 3-101

TCP tiacutenh cocircng bằng (tt)

Tiacutenh cocircng bằng amp UDP nhiều ứng dụng

thường khocircng dugraveng TCP khocircng muốn tốc độ bị

điều tiết do điều khiển tắc nghẽn

Thay bằng dugraveng UDP truyền audiovideo với

tốc độ ổn định chịu được mất maacutet

Nghiecircn cứu giao thức thacircn thiện với TCP

Tiacutenh cocircng bằng amp caacutec kết nối TCP song song

khocircng coacute gigrave ngăn cản việc ứng dụng mở caacutec kết nối song song giữa 2 host

Trigravenh duyệt Web lagravem giống như thế

Viacute dụ tốc độ R hỗ trợ 9 kết nối ứng dụng mới yecircu cầu 1

TCP coacute tốc độ R10 ứng dụng mới yecircu cầu 11

TCP coacute tốc độ R2

Transport Layer 3-102

Mocirc higravenh trễ

Hỏi Mất bao lacircu để nhận 1 đối tượng từ Web server sau khi gửi yecircu cầu

Bỏ qua tắc nghẽn trễ bị ảnh hưởng bởi

thiết lập kết nối TCP trễ truyền dữ liệu khởi động chậm

Notation caacutec giả định Giả sử một kết nối giữa

client vagrave server coacute tốc độ R

S MSS (bits) O kiacutech thước đối tượng

(bits) khocircng truyền lại (khocircng

mất maacutet khocircng hỏng)

Kiacutech thước cửa sổ Giả định 1 cửa sổ tắc

nghẽn cố định coacute W đoạn Sau đoacute cửa sổ thay đổi

mocirc higravenh khởi động chậm

Transport Layer 3-103

Cửa sổ tắc nghẽn cố định (1)

Trường hợp đầu tiecircnWSR gt RTT + SR cho

đoạn đầu tiecircn trong cửa sổ trả về trước khi cửa sổ dữ liệu gửi ACK

trễ = 2RTT + OR

Transport Layer 3-104

Cửa sổ tắc nghẽn cố định (2)

Trường hợp thứ hai WSR lt RTT + SR sent

chờ cho ACK sau khi gửi dữ liệu

trễ = 2RTT + OR+ (K-1)[SR + RTT - WSR]

Transport Layer 3-105

TCP Mocirc higravenh trễ Khởi động chậm (1)

Bacircy giờ giả sử kiacutech thước cửa sổ tăng lecircn tugravey theo quaacute trigravenh khởi động chậm

Độ trễ của một đối tượng sẽ lagrave

R

S

R

SRTTP

R

ORTTLatency P )12(2

trong đoacute P lagrave số lần TCP rảnh ở tại server

1min KQP

- trong đoacute Q lagrave số lần server rảnh nếu đối tượng đatilde khởi tạo kiacutech thước

- vagrave K lagrave số lượng cửa sổ bao trugravem đối tượng

Transport Layer 3-106

TCP Mocirc higravenh trễ Khởi động chậm (2)

RTT

initia te TCPconnection

requestobject

first w indow= S R

second w indow= 2S R

third w indow= 4S R

fourth w indow= 8S R

com pletetransm issionobject

delivered

tim e atc lient

tim e atserver

Viacute dụbull OS = 15 đoạnbull K = 4 cửa sổbull Q = 2bull P = minK-1Q = 2

Server rảnh P=2 lần

Caacutec thagravenh phần trễbull 2 RTT dagravenh cho thiết lập kết nối vagrave yecircu cầubull OR để truyền đối tượngbullthời gian server rảnh bởi vigrave khởi động chậm

Server rảnh P = minK-1Q lần

Transport Layer 3-107

TCP Mocirc higravenh trễ(3)

R

S

R

SRTTPRTT

R

O

R

SRTT

R

SRTT

R

O

idleTimeRTTR

O

P

kP

k

P

pp

)12(][2

]2[2

2delay

1

1

1

th window after the timeidle 2 1 kR

SRTT

R

S k

ementacknowledg receivesserver until

segment send tostartsserver when from time RTTR

S

window kth the transmit totime2 1

R

Sk

RTT

initia te TCPconnection

requestobject

first w indow= S R

second w indow= 2S R

third w indow= 4S R

fourth w indow= 8S R

com pletetransm issionobject

delivered

tim e atc lient

tim e atserver

Transport Layer 3-108

TCP Mocirc higravenh trễ (4)

)1(log

)1(logmin

12min

222min

222min

2

2

110

110

S

OS

Okk

S

Ok

SOk

OSSSkK

k

k

k

caacutech tiacutenh toaacuten Q tương tự (xem HW)

K = số lượng cửa sổ bao trugravem đối tượngLagravem thế nagraveo tiacutenh được K

Transport Layer 3-109

HTTP Mocirc higravenh Giả sử trang Web chứa

1 trang HTML (kiacutech thước O bits) M higravenh ảnh (mỗi caacutei kiacutech thướcO bits)

HTTP khocircng bền vững M+1 TCP kết nối Thời gian đaacutep ứng = (M+1)OR + (M+1)2RTT + tổng số thời

gian rảnh HTTP bền vững

2 RTT để yecircu cầu vagrave nhận file HTML 1 RTT để yecircu cầu vagrave nhận M higravenh ảnh Thời gian đaacutep ứng = (M+1)OR + 3RTT + tổng số thời gian

rảnh HTTP khocircng bền vững với X kết nối song song

Giả sử MX lagrave số nguyecircn 1 TCP kết nối cho file MX thiết lập caacutec kết nối song song cho caacutec higravenh ảnh Thời gian đaacutep ứng = (M+1)OR + (MX + 1)2RTT + tổng số

thời gian rảnh

Transport Layer 3-110

02468

101214161820

28Kbps

100Kbps

1Mbps

10Mbps

non-persistent

persistent

parallel non-persistent

HTTP thời gian đaacutep ứng (giacircy)RTT = 100 msec O = 5 Kbytes M=10 vagrave X=5

Với băng thocircng thấp thời gian kết nối amp đaacutep ứng trội hơn thời gian truyền

Caacutec kết nối bền vững chỉ cho sự cải thiện khocircng đaacuteng kể trecircn caacutec kết nối song song

Transport Layer 3-111

0

10

20

30

40

50

60

70

28Kbps

100Kbps

1Mbps

10Mbps

non-persistent

persistent

parallel non-persistent

HTTP thời gian đaacutep ứng (giacircy)

RTT =1 sec O = 5 Kbytes M=10 and X=5

Với RTT lớn hơn thời gian đaacutep ứng trội hơn thời gian trễ chờ thiết lập kết nốiTCP amp khởi động chậm Caacutec kết nối bền vững bacircy giờ cho thấy cải thiện rotilde rệt đặc biệtvới caacutec mạng băng thocircng cao

Transport Layer 3-112

Chương 3 Tổng kết caacutec nguyecircn lyacute của caacutec

dịch vụ lớp transport multiplexing

demultiplexing truyền dữ liệu tin cậy điều khiển luồng điều khiển tắc nghẽn

khởi tạo vagrave hiện thực trong Internet UDP TCP

Tiếp theo nghiecircn cứu xong

caacutec vấn đề ldquongoagravei biecircnrdquo (caacutec lớp application transport)

chuẩn bị vagraveo phần ldquolotildeirdquo của mạng

  • Slide 1
  • Chương 3 Lớp Transport
  • Chương 3 Nội dung trigravenh bagravey
  • Caacutec dịch vụ vagrave giao thức Transport
  • Lớp Transport với lớp network
  • Caacutec giao thức lớp transport trecircn Internet
  • Slide 7
  • Multiplexingdemultiplexing
  • Demultiplexing lagravem việc như thế nagraveo
  • Demultiplexing khocircng kết nối
  • Demultiplexing khocircng kết nối (tiếp)
  • Demultiplexing hướng kết nối
  • Demultiplexing hướng kết nối (tiếp)
  • Demultiplexing hướng kết nối Threaded Web Server
  • Slide 15
  • UDP User Datagram Protocol [RFC 768]
  • UDP (tt)
  • UDP checksum
  • Viacute dụ Checksum
  • Slide 20
  • Caacutec nguyecircn lyacute truyền dữ liệu tin cậy
  • Slide 22
  • Slide 23
  • Truyền dữ liệu tin cậy
  • Slide 25
  • Rdt10 truyền dữ liệu tin cậy trecircn 1 kecircnh truyền tin cậy
  • Rdt20 kecircnh với caacutec lỗi
  • rdt20 đặc tả FSM
  • rdt20 hoạt động khi khocircng lỗi
  • rdt20 hoạt động khi coacute lỗi
  • rdt20 coacute lỗ hổng nghiecircm trọng
  • rdt21 người gửi quản lyacute caacutec ACKNAK bị hỏng
  • Slide 33
  • rdt21 thảo luận
  • rdt22 một giao thức khocircng cần NAK
  • rdt22 gửi nhận caacutec mảnh
  • rdt30 caacutec kecircnh với lỗi vagrave mất maacutet
  • rdt30 gửi
  • hagravenh động của rdt30
  • Slide 40
  • Hiệu suất của rdt30
  • rdt30 hoạt động dừng-vagrave-chờ
  • Caacutec giao thức Pipelined
  • Pipelining độ khả dụng tăng
  • Go-Back-N
  • GBN becircn gửi mở rộng FSM
  • GBN becircn nhận mở rộng FSM
  • GBN hoạt động
  • Lặp coacute lựa chọn
  • Lặp coacute lựa chọn caacutec cửa sổ gửi nhận
  • Slide 51
  • Hoạt động của lặp coacute lựa chọn
  • Lặp coacute lựa chọn tigravenh trạng khoacute giải quyết
  • Slide 54
  • TCP Tổng quan RFCs 793 1122 1323 2018 2581
  • TCP cấu truacutec đoạn
  • Caacutec số thứ tự TCP vagrave ACK
  • TCP Round Trip Time vagraveTimeout
  • TCP Round Trip Time vagrave Timeout
  • Viacute dụ đaacutenh giaacute RTT
  • Slide 61
  • TCP truyền dữ liệu tin cậy
  • TCP caacutec sự kiện
  • TCP becircn gửi (đơn giản)
  • TCP caacutec tigravenh huống truyền lại
  • TCP caacutec tigravenh huống truyền lại (tt)
  • TCP sinh ra ACK [RFC 1122 RFC 2581]
  • Truyền lại nhanh
  • Giải thuật truyền lại nhanh
  • Slide 70
  • TCP điều khiển luồng
  • TCP điều khiển luồng caacutech lagravem
  • Slide 73
  • TCP quản lyacute kết nối
  • TCP quản lyacute kết nối (tt)
  • Slide 76
  • Slide 77
  • Slide 78
  • Caacutec nguyecircn lyacute điều khiển tắc nghẽn
  • Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 1
  • Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 2
  • Slide 82
  • Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 3
  • Slide 84
  • Caacutec caacutech tiếp cận đối với điều khiển tắc nghẽn
  • Viacute dụ điều khiển tắc nghẽn ATM ABR
  • Slide 87
  • Slide 88
  • TCP điều khiển tắc nghẽn additive tăng lecircn multiplicative giảm xuống
  • TCP điều khiển tắc nghẽn chi tiết
  • TCP khởi động chậm
  • TCP khởi động chậm (tt)
  • Tinh chế
  • Tinh chế nhận biết mất maacutet
  • Tổng kết TCP điều khiển tắc nghẽn
  • TCP điều khiển tắc nghẽn becircn gửi
  • TCP throughput
  • TCP tương lai
  • TCP tiacutenh cocircng bằng
  • Tại sao phải TCP cocircng bằng
  • TCP tiacutenh cocircng bằng (tt)
  • Mocirc higravenh trễ
  • Cửa sổ tắc nghẽn cố định (1)
  • Cửa sổ tắc nghẽn cố định (2)
  • TCP Mocirc higravenh trễ Khởi động chậm (1)
  • TCP Mocirc higravenh trễ Khởi động chậm (2)
  • TCP Mocirc higravenh trễ(3)
  • TCP Mocirc higravenh trễ (4)
  • HTTP Mocirc higravenh
  • Slide 110
  • Slide 111
  • Chương 3 Tổng kết

Transport Layer 3-32

rdt21 người gửi quản lyacute caacutec ACKNAK bị hỏng

chờ gọi 0 từ lớp trecircn

sndpkt = make_pkt(0 data checksum)udt_send(sndpkt)

rdt_send(data)

chờ ACK hoặc NAK

0 udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) ||isNAK(rcvpkt) )

sndpkt = make_pkt(1 data checksum)udt_send(sndpkt)

rdt_send(data)

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) ||isNAK(rcvpkt) )

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt)

chờ gọi 1 từ lớp trecircn

chờ ACK hoặc NAK

1

Transport Layer 3-33

rdt21 người gửi quản lyacute caacutec ACKNAK bị hỏng

chờ 0 từ dưới

sndpkt = make_pkt(NAK chksum)udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp not corrupt(rcvpkt) ampamp has_seq0(rcvpkt)

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp has_seq1(rcvpkt)

extract(rcvpktdata)deliver_data(data)sndpkt = make_pkt(ACK chksum)udt_send(sndpkt)

chờ 1 từ dưới

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp has_seq0(rcvpkt)

extract(rcvpktdata)deliver_data(data)sndpkt = make_pkt(ACK chksum)udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp (corrupt(rcvpkt)

sndpkt = make_pkt(ACK chksum)udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp not corrupt(rcvpkt) ampamp has_seq1(rcvpkt)

rdt_rcv(rcvpkt) ampamp (corrupt(rcvpkt)

sndpkt = make_pkt(ACK chksum)udt_send(sndpkt)

sndpkt = make_pkt(NAK chksum)udt_send(sndpkt)

Transport Layer 3-34

rdt21 thảo luận

người gửi số thứ tự thecircm vagraveo

goacutei chỉ cần hai số thứ tự

(01) lagrave đủ Tại sao phải kiểm tra nếu việc

nhận ACKNAK bị hỏng

số trạng thaacutei tăng lecircn 2 lần trạng thaacutei phải ldquonhớrdquo

goacutei ldquohiện tạirdquo coacute số thứ tự lagrave 0 hay 1

người nhận phải kiểm tra coacute

nhận trugraveng goacutei khocircng trạng thaacutei chỉ rotilde coacute

hay khocircng mong chờ số thứ tự 0 hoặc 1

chuacute yacute người nhận khocircng biết ACKNAK vừa rồi của noacute coacute được người gửi nhận tốt hay khocircng

Transport Layer 3-35

rdt22 một giao thức khocircng cần NAK

chức năng giống như rdt21 chỉ dugraveng caacutec ACK thay cho NAK người nhận gửi ACK cho goacutei vừa

rồi đatilde nhận tốt người nhận phải rotilde ragraveng chegraven số thứ tự của goacutei vừa ACK

trugraveng ACK tại người gửi hậu quả giống như hagravenh động của NAK truyền lại goacutei vừa rồi

Transport Layer 3-36

rdt22 gửi nhận caacutec mảnh

Chờ cho gọi 0 từ

trecircn

sndpkt = make_pkt(0 data checksum)udt_send(sndpkt)

rdt_send(data)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) || isACK(rcvpkt1) )

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt0)

Chờ cho ACK

0

gửi phacircn mảnhFSM

Chờ cho gọi

0 từ dưới

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp has_seq1(rcvpkt)

extract(rcvpktdata)deliver_data(data)sndpkt = make_pkt(ACK1 chksum)udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp (corrupt(rcvpkt) || has_seq1(rcvpkt))

udt_send(sndpkt)

nhận phacircn mảnhFSM

Transport Layer 3-37

rdt30 caacutec kecircnh với lỗi vagrave mất maacutet

Giả định mới kecircnh ưu tiecircn cũng coacute thể lagravem mất caacutec goacutei (dữ liệu hoặc caacutec ACK) checksum số thứ tự

caacutec ACK caacutec việc truyền lại sẽ hỗ trợ nhưng khocircng đủ

Caacutech tiếp cận người gửi chờ ACK trong khoảng thời gian ldquochấp nhận đượcrdquo

truyền lại nếu khocircng nhận ACK trong khoảng thời gian nagravey

nếu goacutei (hoặc ACK) chỉ trễ (khocircng mất) truyền lại sẽ gacircy trugraveng

nhưng dugraveng số thứ tự sẽ giải quyết được

người nhận phải xaacutec định số thứ tự của goacutei vừa gửi ACK

cần bộ định thigrave đếm lugravei

Transport Layer 3-38

rdt30 gửi

sndpkt = make_pkt(0 data checksum)udt_send(sndpkt)start_timer

rdt_send(data)

Chờ cho

ACK 0

rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) ||isACK(rcvpkt1) )

Chờ cho gọi 1 từ trecircn

sndpkt = make_pkt(1 data checksum)udt_send(sndpkt)start_timer

rdt_send(data)

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt0)

rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) ||isACK(rcvpkt0) )

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt1)

stop_timerstop_timer

udt_send(sndpkt)start_timer

timeout

udt_send(sndpkt)start_timer

timeout

rdt_rcv(rcvpkt)

Chờ cho gọi 0 từ trecircn

Chờ cho

ACK 1

rdt_rcv(rcvpkt)

Transport Layer 3-39

hagravenh động của rdt30

Transport Layer 3-40

hagravenh động của rdt30

Transport Layer 3-41

Hiệu suất của rdt30

rdt30 lagravem việc được nhưng đaacutenh giaacute hiệu suất hơi rắc rối viacute dụ liecircn kết 1 Gbps trễ lan truyền giữa hai đầu cuối lagrave 15

ms goacutei 1KB

T truyền = 8kbpkt109 bsec

= 8 microsec

U sender độ khả dụng ndash

U sender

= 008

30008 = 000027

microseconds

L R

RTT + L R =

L (độ dagravei goacutei tiacutenh bằng bits)R (tốc độ truyền bps)

=

goacutei 1KB mỗi 30 msec -gt 33kBs trecircn đường truyền 1 Gbps giao thức network hạn chế việc dugraveng caacutec tagravei nguyecircn vật

lyacute

Transport Layer 3-42

rdt30 hoạt động dừng-vagrave-chờ

goacutei đầu tiecircn đatilde truyền t = 0

gửi nhận

RTT

goacutei cuối cugraveng đatilde truyền t = L R

goacutei đầu tiecircn đatilde đếngoacutei cuối cugraveng đatilde đến gửi ACK

ACK đến gửi goacutei kế tiếp t = RTT + L R

U sender

= 008

30008 = 000027

microseconds

L R

RTT + L R =

Transport Layer 3-43

Caacutec giao thức Pipelined

Pipelining người gửi cho pheacutep gửi nhiều goacutei đồng thời khocircng cần chờ baacuteo nhận được nhoacutem caacutec số thứ tự phải tăng dần phải coacute bộ nhớ đệm tại nơi gửi vagravehoặc nơi nhận

hai dạng phổ biến của caacutec giao thức pipelined go-Back-N Lặp coacute lựa chọn

Transport Layer 3-44

Pipelining độ khả dụng tăng

goacutei đầu tiecircn đatilde truyền t = 0

sender receiver

RTT

goacutei cuối cugraveng đatilde truyền t = L R

goacutei đầu tiecircn đatilde đếngoacutei cuối cugraveng đatilde đến gửi ACK

ACK đến gửi goacuteikế tiếp t = RTT + L R

bit cuối của goacutei thứ 2 đến gửi ACKbit cuối của goacutei thứ 3 đến gửi ACK

U sender

= 024

30008 = 00008

microseconds

3 L R

RTT + L R =

Độ khả dụng tăng lecircngấp 3 lần

Transport Layer 3-45

Go-Back-NBecircn gửi k-bit số thứ tự trong header của goacutei ldquocửa sổrdquo tăng lecircn đến N cho pheacutep gửi caacutec goacutei liecircn tục khocircng cần ACK

ACK(n) ACKs tất cả caacutec goacutei đến chứa số thứ tự n ndash ldquoACK tiacutech lũyrdquo coacute thể nhận caacutec ACK trugraveng lặp (xem becircn nhận)

định thigrave cho mỗi goacutei trecircn đường truyền timeout(n) gửi lại goacutei n vagrave tất cả caacutec goacutei coacute số thứ tự cao

hơn trong cửa sổ

Transport Layer 3-46

GBN becircn gửi mở rộng FSM

chờ start_timerudt_send(sndpkt[base])udt_send(sndpkt[base+1])hellipudt_send(sndpkt[nextseqnum-1])

timeout

rdt_send(data)

if (nextseqnum lt base+N) sndpkt[nextseqnum] = make_pkt(nextseqnumdatachksum) udt_send(sndpkt[nextseqnum]) if (base == nextseqnum) start_timer nextseqnum++ else refuse_data(data)

base = getacknum(rcvpkt)+1If (base == nextseqnum) stop_timer else start_timer

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)

base=1nextseqnum=1

rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)

Transport Layer 3-47

GBN becircn nhận mở rộng FSM

ACK-duy nhất luocircn luocircn gửi ACK cho goacutei đatilde nhận đuacuteng với số thứ tự xếp hạng cao nhất coacute thể sinh ra caacutec ACK trugraveng nhau chỉ cần nhớ expectedseqnum

goacutei khocircng theo thứ tự hủy -gt khocircng nhận vagraveo bộ đệm gửi lại ACK với số thứ tự xếp hạng cao nhất

chờ

udt_send(sndpkt)

default

rdt_rcv(rcvpkt) ampamp notcurrupt(rcvpkt) ampamp hasseqnum(rcvpktexpectedseqnum)

extract(rcvpktdata)deliver_data(data)sndpkt = make_pkt(expectedseqnumACKchksum)udt_send(sndpkt)expectedseqnum++

expectedseqnum=1sndpkt = make_pkt(expectedseqnumACKchksum)

Transport Layer 3-48

GBN hoạt động

Transport Layer 3-49

Lặp coacute lựa chọn

becircn nhận thocircng baacuteo đatilde nhận đuacuteng tất cả từng goacutei một đệm (buffer) caacutec goacutei nếu cần thiết

becircn gửi chỉ gửi lại caacutec goacutei nagraveo khocircng nhận được ACK becircn gửi định thigrave đối với mỗi goacutei khocircng gửi ACK

cửa sổ becircn gửi N số thứ tự liecircn tục hạn chế số thứ tự caacutec goacutei khocircng gửi ACK

Transport Layer 3-50

Lặp coacute lựa chọn caacutec cửa sổ gửi nhận

Transport Layer 3-51

Lặp coacute lựa chọn

dữ liệu từ lớp trecircn nếu số thứ tự kế tiếp sẵn

sagraveng trong cửa sổ gửi goacutei

timeout(n) gửi lại goacutei n taacutei khởi tạo

bộ định thigrave

ACK(n) trong [sendbasesendbase+N]

đaacutenh dấu goacutei n lagrave đatilde nhận nếu goacutei khocircng ACK coacute n

nhỏ nhất dịch chuyển cửa sổ base đến số thứ tự khocircng ACK kế tiếp

Gửigoacutei n trong [rcvbase

rcvbase+N-1]

gửi ACK(n) khocircng thứ tự đệm

(buffer) coacute thứ tự truyền (cũng

truyền caacutec goacutei đatilde đệm coacute thứ tự) dịch chuyển cửa sổ đến goacutei chưa nhận kế tiếp

goacutei n trong [rcvbase-Nrcvbase-1]

ACK(n)

ngược lại lờ đi

Nhận

Transport Layer 3-52

Hoạt động của lặp coacute lựa chọn

Transport Layer 3-53

Lặp coacute lựa chọntigravenh trạng khoacute giải quyếtViacute dụ Số thứ tự 0 1 2 3 Kiacutech thước cửa sổ = 3

becircn nhận khocircng thấy sự khaacutec nhau trong 2 tigravenh huống

chuyển khocircng chiacutenh xaacutec dữ liệu trugraveng lặp như dữ liệu mới trong (a)

Hỏi quan hệ giữa datildey số thứ tự vagrave kiacutech thước cửa sổ

Transport Layer 3-54

Chương 3 Nội dung trigravenh bagravey

31 Caacutec dịch vụ lớp Transport

32 Multiplexing vagrave demultiplexing

33 Vận chuyển khocircng kết nối UDP

34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy

35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối

36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn

37 Điều khiển tắc nghẽn TCP

Transport Layer 3-55

TCP Tổng quan RFCs 793 1122 1323 2018 2581

dữ liệu full duplex luồng dữ liệu đi 2 chiều

trong cugraveng một kết nối MSS maximum

segment size ndash kiacutech thước đoạn tối đa

hướng kết nối bắt tay (trao đổi caacutec

thocircng điệp điều khiển) trạng thaacutei becircn gửi becircn nhận trước khi trao đổi dữ liệu

điều khiển luồng becircn gửi sẽ khocircng lấn aacutet

becircn nhận

point-to-point một becircn gửi một becircn

nhận tin cậy dograveng byte coacute

thứ tự khocircng ldquoranh giới thocircng

điệprdquo kecircnh liecircn lạc

TCP điều khiển luồng vagrave tắc nghẽn thiết lập kiacutech thước cửa sổ

caacutec bộ đệm gửi amp nhận

socketdoor

T C Psend buffer

T C Preceive buffer

socketdoor

segm ent

applicationwrites data

applicationreads data

Transport Layer 3-56

TCP cấu truacutec đoạn

port nguồn port điacutech

32 bits

dữ liệu ứng dụng(độ dagravei thay đổi)

số thứ tự

số ACKcửa sổ nhận

con trỏ URGchecksum

FSRPAUheadlen

notused

Tugravey chọn (độ dagravei thay đổi)

URG dữ liệu khẩn cấp(thường khocircng dugraveng)

ACK ACK hợp lệ

PSH push data now(thường khocircng dugraveng)

RST SYN FINthiết lập kết nối

(caacutec lệnh thiết lậpchia nhỏ)

số byte becircn nhận sẵn sagraveng chấp nhận

đếm bởi số bytecủa dữ liệu

Internetchecksum

(giống UDP)

Transport Layer 3-57

Caacutec số thứ tự TCP vagrave ACKCaacutec số thứ tự

dograveng byte ldquođaacutenh sốrdquo byte đầu tiecircn trong dữ liệu của đoạn

caacutec ACK số thứ tự của byte

kế tiếp được chờ đợi từ phiacutea becircn kia

ACK tiacutech lũyHỏi lagravem thế nagraveo becircn

nhận quản lyacute caacutec đoạn khocircng thứ tự Trả lời TCP khocircng

đề cập tugravey thuộc người hiện thực

Host A Host B

Seq=42 ACK=79 data = lsquoCrsquo

Seq=79 ACK=43 data = lsquoCrsquo

Seq=43 ACK=80

UsernhậplsquoCrsquo

host ACKsnhận phản hồi

lsquoCrsquo

host ACKsbaacuteo nhận

lsquoCrsquo phản hồingược lại lsquoCrsquo

timetigravenh huống telnet đơn giản

Transport Layer 3-58

TCP Round Trip Time vagraveTimeout

Hỏi Lagravem thế nagraveo để thiết lập giaacute trị TCP timeout

dagravei hơn RTT khaacutec với RTT

quaacute ngắn timeout sớm truyền lại khocircng

cần thiết quaacute dagravei phản ứng

chậm đối với việc mất maacutet goacutei

Hỏi Lagravem thế nagraveo để thiết lập RTT

SampleRTT thời gian được đo từ khi truyền đoạn đến khi baacuteo nhận ACK lờ đi việc truyền lại

SampleRTT sẽ thay đổi muốn ước lượng RTT ldquomượt hơnrdquo tiacutenh trung bigravenh một số giaacute

trị đo được gần đoacute khocircng chỉ SampleRTT hiện tại

Transport Layer 3-59

TCP Round Trip Time vagrave Timeout

EstimatedRTT = (1- )EstimatedRTT + SampleRTT

giaacute trị đặc trưng = 0125

Transport Layer 3-60

Viacute dụ đaacutenh giaacute RTTRTT gaiacsumassedu to fantasiaeurecomfr

100

150

200

250

300

350

1 8 15 22 29 36 43 50 57 64 71 78 85 92 99 106

time (seconnds)

RTT

(mill

isec

onds

)

SampleRTT Estimated RTT

Transport Layer 3-61

TCP Round Trip Time vagrave Timeout

Thiết lập timeout EstimtedRTT cộng ldquohệ số dự trữ an toagravenrdquo

sự biến thiecircn lớn trong EstimatedRTT -gt hệ số dự trữ an toagraven lớn hơn ước lượng đầu tiecircn về sự biến thiecircn của SampleRTT từ EstimatedRTT

TimeoutInterval = EstimatedRTT + 4DevRTT

DevRTT = (1-)DevRTT + |SampleRTT-EstimatedRTT|

(tiecircu biểu = 025)

Sau đoacute thiết lập timeout interval

Transport Layer 3-62

TCP truyền dữ liệu tin cậy

TCP tạo dịch vụ rdt trecircn dịch vụ khocircng tin cậy IP

caacutec đoạn Pipelined caacutec ACK tiacutech lũy TCP dugraveng bộ định thigrave

truyền lại đơn

Truyền lại được kiacutech hoạt bởi caacutec sự kiện timeout caacutec ack trugraveng lặp

luacutec đầu khảo saacutet caacutec becircn gửi TCP đơn giản lờ đi caacutec ack trugraveng lặp lờ đi điều khiển luồng

điều khiển tắc nghẽn

Transport Layer 3-63

TCP caacutec sự kiệndữ liệu đatilde nhận từ ứng

dụng tạo đoạn với số thứ

tự của noacute số thứ tự lagrave số theo

byte dữ liệu đầu tiecircn khởi động bộ định thigrave

nếu chưa chạy khoảng thời gian hết

hạn TimeOutInterval

timeout gửi lại đoạn nagraveo gacircy

ra timeout khởi động lại bộ định

thigrave Ack đatilde nhận

cập nhật caacutei gigrave sẽ được ACK

khởi động bộ định thigrave nếu coacute caacutec đoạn cograven chờ

Transport Layer 3-64

TCP becircn gửi(đơn giản)

NextSeqNum = InitialSeqNum SendBase = InitialSeqNum

loop (forever) switch(event)

event data received from application above create TCP segment with sequence number NextSeqNum if (timer currently not running) start timer pass segment to IP NextSeqNum = NextSeqNum + length(data)

event timer timeout retransmit not-yet-acknowledged segment with smallest sequence number start timer

event ACK received with ACK field value of y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer

end of loop forever

Chuacute thiacutechbull SendBase-1 byte vừa được ACK tiacutech lũy Viacute dụbull SendBase-1 = 71y= 73 vigrave thế becircn nhận muốn 73+ y gt SendBase vigrave thế dữ liệu mới được chấp nhận

Transport Layer 3-65

TCP caacutec tigravenh huống truyền lại

Host A

Seq=100 20 bytes data

ACK=100

timetimeout sớm

Host B

Seq=92 8 bytes data

ACK=120

Seq=92 8 bytes data

Seq=

92

tim

eout

ACK=120

Host A

Seq=92 8 bytes data

ACK=100

loss

tim

eout

tigravenh huống mất ACK

Host B

X

Seq=92 8 bytes data

ACK=100

time

Seq=

92

tim

eout

SendBase= 100

SendBase= 120

SendBase= 120

Sendbase= 100

Transport Layer 3-66

TCP caacutec tigravenh huống truyền lại (tt)Host A

Seq=92 8 bytes data

ACK=100

loss

tim

eout

Cumulative ACK scenario

Host B

X

Seq=100 20 bytes data

ACK=120

time

SendBase= 120

Transport Layer 3-67

TCP sinh ra ACK [RFC 1122 RFC 2581]

Sự kiện tại becircn nhận

Đoạn đến với đuacuteng số thứ tự mong muốn Tất cả dữ liệu đếnđatilde được ACK

Đoạn đến với đuacuteng số thứ tự mong muốn Một đoạn khaacutec đangchờ ACK

Caacutec đoạn đến khocircng thứ tựlớn hơn số thứ tự đoạn mong muốnCoacute khoảng trống

Đoạn đếnlấp đầy từng phần hoặc toagraven bộkhoảng trống

TCP becircn nhận hagravenh động

ACK trễ Chờ đến 500mscho đoạn kế tiếp Nếu khocircng coacute đoạnkế tiếp gửi ACK

Gửi ngay một ACK tiacutech lũy chấp nhậncho cả caacutec đoạn theo thứ tự

Gửi ngay ACK trugraveng lặp chỉ thị số thứ tựđoạn của byte kế tiếp đang mong chờ

Gửi ngay ACK với điều kiện lagrave đoạnbắt đầu ngay điểm coacute khoảng trống

Transport Layer 3-68

Truyền lại nhanh

Chu kỳ Time-out thường tương đối dagravei độ trễ dagravei trước khi gửi

lại goacutei đatilde mất

Xaacutec nhận caacutec đoạn đatilde mất bằng caacutec ACK trugraveng lặp becircn gửi thường gửi

nhiều đoạn song song Nếu đoạn bị mất sẽ

xảy ra tigravenh trạng giống như nhiều ACK trugraveng nhau

Nếu becircn gửi nhận 3 ACK của cugraveng một dữ liệu noacute cho lagrave đoạn sau dữ liệu đatilde ACK bị mất Truyền lại nhanh gửi

lại đoạn trước khi bộ định thigrave hết hạn

Transport Layer 3-69

sự kiện ACK đatilde nhận với trường lagrave y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer else increment count of dup ACKs received for y if (count of dup ACKs received for y = 3) resend segment with sequence number y

Giải thuật truyền lại nhanh

một ACK trugraveng lặp cho đoạn đatilde được ACK

Truyền lại nhanh

Transport Layer 3-70

Chương 3 Nội dung trigravenh bagravey

31 Caacutec dịch vụ lớp Transport

32 Multiplexing vagrave demultiplexing

33 Vận chuyển khocircng kết nối UDP

34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy

35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối

36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn

37 Điều khiển tắc nghẽn TCP

Transport Layer 3-71

TCP điều khiển luồng

becircn nhận của kết nối TCP coacute một bộ đệm nhận

dịch vụ so trugraveng tốc độ so trugraveng tốc độ gửi với tốc độ nhận của ứng dụng

tiến trigravenh ứng dụng coacute thể chậm tại luacutec đọc bộ đệm

becircn gửi sẽ khocircng lagravem tragraven bộ đệm vigrave truyền quaacute nhiều vagrave

quaacute nhanh

điều khiển luồng

Transport Layer 3-72

TCP điều khiển luồng caacutech lagravem

(Giả sử becircn nhận TCP loại bỏ caacutec đoạn khocircng coacute thứ tự)

dự phograveng trong bộ đệm= RcvWindow

= RcvBuffer-[LastByteRcvd - LastByteRead]

Becircn nhận thocircng baacuteo khoảng dự trữ nhờ giaacute trị RcvWindow trong caacutec đoạn

Becircn gửi hạn chế dữ liệu khocircng được ACK vagraveo RcvWindow bảo đảm bộ đệm nhận

khocircng tragraven

Transport Layer 3-73

Chương 3 Nội dung trigravenh bagravey

31 Caacutec dịch vụ lớp Transport

32 Multiplexing vagrave demultiplexing

33 Vận chuyển khocircng kết nối UDP

34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy

35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối

36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn

37 Điều khiển tắc nghẽn TCP

Transport Layer 3-74

TCP quản lyacute kết nối

Chuacute yacute Becircn gửi vagrave becircn nhận TCP thiết lập ldquokết nốirdquo trước khi trao đổi dữ liệu

khởi tạo caacutec biến TCP caacutec số thứ tự đoạn thocircng tin caacutec bộ đệm điều

khiển luồng (như RcvWindow)

client người khởi xướng kết nối

Socket clientSocket = new Socket(hostnameport

number) server được tiếp xuacutec bởi

client Socket connectionSocket =

welcomeSocketaccept()

3 phương phaacutep bắt tay

Bước 1 client host gửi đoạnTCP SYN đến server xaacutec định số thứ tự khởi đầu khocircng phải dữ liệu

Bước 2 server host nhận SYN trả lời với đoạn SYNACK

server cấp phaacutet caacutec bộ đệm

xaacutec định số thứ tự khởi đầuBước 3 client nhận SYNACK trả

lời với đoạn ACK (coacute thể chứa dữ liệu)

Transport Layer 3-75

TCP quản lyacute kết nối (tt)

Đoacuteng một kết nối

client đoacuteng socket clientSocketclose()

Bước 1 client gửi đoạn điều khiển TCP FIN đến server

Bước 2 server nhận FIN trả lời với ACK Đoacuteng kết nối gửi FIN

client

FIN

server

ACK

ACK

FIN

đoacuteng

đoacuteng

đatilde đoacutengthời g

ian c

hờ

Transport Layer 3-76

TCP quản lyacute kết nối (tt)

Bước 3 client nhận FIN trả lời với ACK

Trong khoảng ldquothời gian chờrdquo ndash sẽ phản hồi với ACK để nhận caacutec FIN

Bước 4 server nhận ACK Kết nối đatilde đoacuteng

Chuacute yacute với một sửa đổi nhỏ coacute thể quản lyacute nhiều FIN đồng thời

client

FIN

server

ACK

ACK

FIN

đang đoacuteng

đang đoacuteng

đatilde đoacuteng

thời g

ian c

hờ

đatilde đoacuteng

Transport Layer 3-77

TCP quản lyacute kết nối (tt)

chu kỳ sống củaTCP client

chu kỳ sống củaTCP server

Transport Layer 3-78

Chương 3 Nội dung trigravenh bagravey

31 Caacutec dịch vụ lớp Transport

32 Multiplexing vagrave demultiplexing

33 Vận chuyển khocircng kết nối UDP

34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy

35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối

36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn

37 Điều khiển tắc nghẽn TCP

Transport Layer 3-79

Caacutec nguyecircn lyacute điều khiển tắc nghẽn

Tắc nghẽn ldquoquaacute nhiều nguồn gửi quaacute nhanh vagrave quaacute nhiều

dữ liệu đến mạngrdquo khaacutec với điều khiển luồng caacutec biểu hiện

caacutec goacutei bị mất (tragraven bộ đệm tại caacutec router) caacutec độ trễ quaacute dagravei (xếp hagraveng trong bộ đệm

của router) lagrave 1 trong 10 vấn đề nan giải nhất

Transport Layer 3-80

Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 1

2 gửi 2 nhận 1 router caacutec bộ

đệm khocircng giới hạn

khocircng coacute truyền lại

caacutec độ trễ lớn hơn khi tắc nghẽn

năng suất coacute thể đạt tối đa

unlimited shared output link buffers

Host Ain original data

Host B

out

Transport Layer 3-81

Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 2

1 router caacutec bộ đệm coacute giới hạn becircn gửi truyền lại caacutec goacutei đatilde mất

chia sẻ vocirc hạncaacutec bộ đệm ouput

Host A in dữ liệu gốc

Host B

out

in dữ liệu gốc cugraveng với dữ liệu truyền lại

Transport Layer 3-82

Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 2 luocircn luocircn

truyền lại ldquohoagraven toagravenrdquo chỉ khi mất maacutet

truyền lại vigrave trễ (khocircng mất) lagravem cho lớn hơn với cugraveng

in

out

=

in

out

gt

in

out

ldquocaacutec chi phiacuterdquo của tắc nghẽn nhiều việc (truyền lại) caacutec truyền lại khocircng cần thiết liecircn kết nhiều bản sao của

goacutei

R2

R2in

ou

t

b

R2

R2in

ou

t

a

R2

R2in

ou

t

c

R4

R3

Transport Layer 3-83

Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 3 4 người gửi caacutec đường qua nhiều hop timeouttruyền lại

in

Hỏi điều gigrave xảy ra nếu vagrave tăng lecircn

in

chia sẻ vocirc hạncaacutec bộ đệm ouput

Host Ain dữ liệu gốc

Host B

out

in dữ liệu gốc cugraveng với dữ liệu truyền lại

Transport Layer 3-84

Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 3

ldquochi phiacuterdquo khaacutec của tắc nghẽn khi caacutec goacutei bị bỏ bất kỳ ldquokhả năng truyền

upstream dugraveng cho goacutei đoacute sẽ bị latildeng phiacuterdquo

Host A

Host B

o

u

t

Transport Layer 3-85

Caacutec caacutech tiếp cận đối với điều khiển tắc nghẽn

điều khiển tắc nghẽn end-end

khocircng coacute phản hồi rotilde ragraveng từ mạng

tắc nghẽn được suy ra từ việc quan saacutet caacutec hệ thống đầu cuối coacute mất maacutet trễ

tiếp cận được quản lyacute bởi TCP

điều khiển tắc nghẽn coacute sự hỗ trợ của mạng

caacutec router cung cấp phản hồi về caacutec hệ thống đầu cuối 1 bit duy nhất chỉ thị

tắc nghẽn (SNA DECbit TCPIP ECN ATM)

tốc độ sẽ gửi được xaacutec định rotilde ragraveng

2 caacutech

Transport Layer 3-86

Viacute dụ điều khiển tắc nghẽn ATM ABR

ABR tốc độ bit sẵn sagraveng

ldquodịch vụ mềm dẻordquo nếu đường gửi ldquochưa

hếtrdquo becircn gửi sẽ dugraveng

băng thocircng sẵn sagraveng nếu đường gửi tắc

nghẽn becircn gửi điều tiết với

tốc độ tối thiểu

RM (resource management)

gửi bởi becircn gửi rải raacutec với caacutec ocirc dữ liệu

caacutec bit trong ocirc thiết lập bởi caacutec switch bit NI khocircng tăng tốc độ

(tắc nghẽn nhẹ) bit CI tắc nghẽn rotilde rệt

Caacutec ocirc RM được trả về becircn gửi từ becircn nhận với nguyecircn vẹn caacutec bit

Transport Layer 3-87

Viacute dụ điều khiển tắc nghẽn ATM ABR

trường 2-byte ER trong ocirc RM switch đatilde tắc nghẽn coacute thể coacute giaacute trị ER thấp hơn trong ocirc tốc độ gửi do đoacute coacute thể được hỗ trợ tối đa trecircn đường

EFCI bit trong caacutec ocirc dữ liệu được cagravei giaacute trị 1 trong switch đatilde tắc nghẽn nếu ocirc dữ liệu đứng trước ocirc RM coacute cagravei EFCI becircn gửi sẽ cagravei

bit CI trong ocirc RM trả về

Transport Layer 3-88

Chương 3 Nội dung trigravenh bagravey

31 Caacutec dịch vụ lớp Transport

32 Multiplexing vagrave demultiplexing

33 Vận chuyển khocircng kết nối UDP

34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy

35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối

36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn

37 Điều khiển tắc nghẽn TCP

Transport Layer 3-89

TCP điều khiển tắc nghẽn additive tăng lecircn multiplicative giảm xuống

8 Kbytes

16 Kbytes

24 Kbytes

time

congestionwindow

Caacutech tiếp cận tăng tốc độ truyền (kiacutech thước cửa sổ) tigravem khả năng băng thocircng coacute thể cho đến khi coacute mất maacutet xảy ra additive tăng lecircn tăng CongWin bởi 1 MSS

mỗi RTT cho đến khi coacute mất maacutet xảy ra multiplicative giảm xuống bỏ CongWin trong

nửa giai đoạn sau khi mất maacutet

timekiacutech

thư

ớc

cửa

sổ

tắc

nghẽ

n

Tigravem kiếm băng thocircng

Transport Layer 3-90

TCP điều khiển tắc nghẽn chi tiết

becircn gửi hạn chế việc truyền LastByteSent-LastByteAcked

CongWin Cocircng thức

CongWin thay đổi chức năng lagrave nhận biết tắc nghẽn trecircn mạng

Lagravem thế nagraveo becircn gửi nhận biết tắc nghẽn

mất maacutet xảy ra = timeout hoặc 3 ack trugraveng lặp

becircn gửi giảm tốc độ (CongWin) sau khi mất maacutet xảy ra

3 cơ chế AIMD khởi động chậm thận trọng sau khi coacute

caacutec sự kiện timeout

tốc độ = CongWin

RTT Bytess

Transport Layer 3-91

TCP khởi động chậm

Khi kết nối bắt đầu CongWin = 1 MSS Viacute dụ MSS = 500 bytes

amp RTT = 200 ms tốc độ khởi tạo = 20

kbps

băng thocircng sẵn sagraveng coacute thể gtgt MSSRTT mong muốn nhanh

choacuteng tăng tốc lecircn tốc độ coacute thể đaacutep ứng

Khi kết nối bắt đầu tăng tốc lecircn rất nhanh cho đến khi sự cố mất maacutet xảy ra đầu tiecircn

Transport Layer 3-92

TCP khởi động chậm (tt)

Khi kết nối bắt đầu tăng tốc lecircn rất nhanh cho đến khi sự cố mất maacutet xảy ra đầu tiecircn nhacircn đocirci CongWin mỗi

RTT hoagraven thagravenh nhờ tăng CongWin ứng với mỗi ACK đatilde nhận

Tổng kết tốc độ khởi đầu lagrave chậm nhưng sau đoacute tăng tốc rất nhanh

Host A

1 đoạn

RTT

Host B

thời gian

2 đoạn

4 đoạn

Transport Layer 3-93

Tinh chếHỏi Khi nagraveo việc tăng

tốc trở thagravenh tuyến tiacutenh

Trả lời Khi CongWin đạt đến 12 giaacute trị của noacute trước khi timeout

Hiện thực Ngưỡng thay đổi Tại thời điểm coacute sự cố

mất maacutet ngưỡng được cagravei giaacute trị bằng frac12 của CongWin ngay trước đoacute

Transport Layer 3-94

Tinh chế nhận biết mất maacutet

Sau 3 ACK trugraveng lặp CongWin sẽ giảm 12 kiacutech thước cửa sổ

tăng tuyến tiacutenh nhưng sau sự cố

timeout CongWin thay giaacute trị

bằng 1 MSS kiacutech thước cửa sổ

tăng cấp lũy thừa khi đến một ngưỡng

thigrave tăng tuyến tiacutenh

3 ACK trugraveng nhau chỉ ra khả năng truyền của mạng timeout chỉ thị ldquonhiều cảnh baacuteordquo về tigravenh huống tắc nghẽn

Nguyecircn lyacute

Transport Layer 3-95

Tổng kết TCP điều khiển tắc nghẽn

Khi CongWin dưới Threshold becircn gửi đang trong giai đoạn khởi động chậm kiacutech thước cửa sổ tăng nhanh theo cấp lũy thừa

Khi CongWin trecircn Threshold becircn gửi đang trong giai đoạn traacutenh tắc nghẽn kiacutech thước cửa sổ tăng nhanh theo cấp tuyến tiacutenh

Khi coacute 3 ACK trugraveng lặp xảy ra Threshold = CongWin2 vagrave CongWin = Threshold

Khi timeout xảy ra Threshold = CongWin2 vagrave CongWin = 1 MSS

Transport Layer 3-96

TCP điều khiển tắc nghẽn becircn gửi

Trạng thaacutei Sự kiện TCP becircn gửi hagravenh động Diễn giải

Slow Start (SS)-Khởi động chậm

ACK baacuteo nhận cho dữ liệu chưa ACK trước đoacute

CongWin = CongWin + MSS If (CongWin gt Threshold) cagravei đặt trạng thaacutei ldquoTraacutenh tắc nghẽnrdquo

Hậu quả lagravem tăng gấp đocirci CongWin mỗi RTT

CongestionAvoidance (CA) ndashTraacutenh tắc nghẽn

ACK baacuteo nhận cho dữ liệu chưa ACK trước đoacute

CongWin = CongWin+MSS (MSSCongWin)

Additive tăng lecircn lagravem tăng CongWin lecircn 1 MSS mỗi RTT

SS hoặc CA Sự cố mất maacutet xảy ra khi thấy coacute 3 ACK trugraveng lặp

Threshold = CongWin2 CongWin = Thresholdcagravei đặt trạng thaacutei ldquoTraacutenh tắc nghẽnrdquo

Khocirci phục nhanh hiện thực giảm xuống multiplicative CongWin sẽ khocircng giảm xuống dưới 1 MSS

SS hoặc CA Timeout Threshold = CongWin2 CongWin = 1 MSScagravei đặt trạng thaacutei ldquoKhởi động chậmrdquo

Vagraveo chế độ ldquoKhởi động chậmrdquo

SS hoặc CA ACK trugraveng lặp

Đếm ACK tăng lecircn cho đoạn vừa được ACK

CongWin vagrave Threshold khocircng thay đổi

Transport Layer 3-97

TCP throughput

Throughout trung bigravenh của TCP biểu diễn qua kiacutech thước của sổ vagrave RTT Bỏ qua trạng thaacutei ldquoKhởi động chậmrdquo

Cho W lagrave kiacutech thước cửa sổ khi coacute mất maacutet xảy ra

Khi kiacutech thước cửa sổ = W lưu lượng = WRTT

Chỉ ngay sau khi mất maacutet cửa sổ giảm xuống = W2 lưu lượng = W2RTT

throughout trung bigravenh 075 WRTT

Transport Layer 3-98

TCP tương lai

Viacute dụ caacutec đoạn dagravei 1500 byte RTT 100ms lưu lượng 10 Gbps

Kiacutech thước cửa sổ yecircu cầu W = 83333 đoạn trecircn đường truyền

Lưu lượng trong caacutec trường hợp mất maacutet

L = 210-10

Phiecircn bản mới của TCP dagravenh cho nhu cầu tốc độ cao

LRTT

MSS221

Transport Layer 3-99

Mục tiecircu nếu K phiecircn lagravem việc TCP chia sẻ kết nối cổ chai của băng thocircng lagrave R mỗi phiecircn coacute tốc độ trung bigravenh lagrave RK

TCP kết nối 1

router cổ chaikhả năng R

TCP kết nối 2

TCP tiacutenh cocircng bằng

Transport Layer 3-100

Tại sao phải TCP cocircng bằng

2 phiecircn lagravem việc cạnh tranh nhau Additive tăng lưu lượng tăng multiplicative giảm lưu lượng tương xứng

R

R

chia sẻ băng thocircng bằng nhau

Connection 1 throughputConnect

ion 2

th

roughput

traacutenh tắc nghẽn additive tăng lecircnmất maacutet giảm cửa sổ bằng 12

traacutenh tắc nghẽn additive tăng lecircnmất maacutet giảm cửa sổ bằng 12

Transport Layer 3-101

TCP tiacutenh cocircng bằng (tt)

Tiacutenh cocircng bằng amp UDP nhiều ứng dụng

thường khocircng dugraveng TCP khocircng muốn tốc độ bị

điều tiết do điều khiển tắc nghẽn

Thay bằng dugraveng UDP truyền audiovideo với

tốc độ ổn định chịu được mất maacutet

Nghiecircn cứu giao thức thacircn thiện với TCP

Tiacutenh cocircng bằng amp caacutec kết nối TCP song song

khocircng coacute gigrave ngăn cản việc ứng dụng mở caacutec kết nối song song giữa 2 host

Trigravenh duyệt Web lagravem giống như thế

Viacute dụ tốc độ R hỗ trợ 9 kết nối ứng dụng mới yecircu cầu 1

TCP coacute tốc độ R10 ứng dụng mới yecircu cầu 11

TCP coacute tốc độ R2

Transport Layer 3-102

Mocirc higravenh trễ

Hỏi Mất bao lacircu để nhận 1 đối tượng từ Web server sau khi gửi yecircu cầu

Bỏ qua tắc nghẽn trễ bị ảnh hưởng bởi

thiết lập kết nối TCP trễ truyền dữ liệu khởi động chậm

Notation caacutec giả định Giả sử một kết nối giữa

client vagrave server coacute tốc độ R

S MSS (bits) O kiacutech thước đối tượng

(bits) khocircng truyền lại (khocircng

mất maacutet khocircng hỏng)

Kiacutech thước cửa sổ Giả định 1 cửa sổ tắc

nghẽn cố định coacute W đoạn Sau đoacute cửa sổ thay đổi

mocirc higravenh khởi động chậm

Transport Layer 3-103

Cửa sổ tắc nghẽn cố định (1)

Trường hợp đầu tiecircnWSR gt RTT + SR cho

đoạn đầu tiecircn trong cửa sổ trả về trước khi cửa sổ dữ liệu gửi ACK

trễ = 2RTT + OR

Transport Layer 3-104

Cửa sổ tắc nghẽn cố định (2)

Trường hợp thứ hai WSR lt RTT + SR sent

chờ cho ACK sau khi gửi dữ liệu

trễ = 2RTT + OR+ (K-1)[SR + RTT - WSR]

Transport Layer 3-105

TCP Mocirc higravenh trễ Khởi động chậm (1)

Bacircy giờ giả sử kiacutech thước cửa sổ tăng lecircn tugravey theo quaacute trigravenh khởi động chậm

Độ trễ của một đối tượng sẽ lagrave

R

S

R

SRTTP

R

ORTTLatency P )12(2

trong đoacute P lagrave số lần TCP rảnh ở tại server

1min KQP

- trong đoacute Q lagrave số lần server rảnh nếu đối tượng đatilde khởi tạo kiacutech thước

- vagrave K lagrave số lượng cửa sổ bao trugravem đối tượng

Transport Layer 3-106

TCP Mocirc higravenh trễ Khởi động chậm (2)

RTT

initia te TCPconnection

requestobject

first w indow= S R

second w indow= 2S R

third w indow= 4S R

fourth w indow= 8S R

com pletetransm issionobject

delivered

tim e atc lient

tim e atserver

Viacute dụbull OS = 15 đoạnbull K = 4 cửa sổbull Q = 2bull P = minK-1Q = 2

Server rảnh P=2 lần

Caacutec thagravenh phần trễbull 2 RTT dagravenh cho thiết lập kết nối vagrave yecircu cầubull OR để truyền đối tượngbullthời gian server rảnh bởi vigrave khởi động chậm

Server rảnh P = minK-1Q lần

Transport Layer 3-107

TCP Mocirc higravenh trễ(3)

R

S

R

SRTTPRTT

R

O

R

SRTT

R

SRTT

R

O

idleTimeRTTR

O

P

kP

k

P

pp

)12(][2

]2[2

2delay

1

1

1

th window after the timeidle 2 1 kR

SRTT

R

S k

ementacknowledg receivesserver until

segment send tostartsserver when from time RTTR

S

window kth the transmit totime2 1

R

Sk

RTT

initia te TCPconnection

requestobject

first w indow= S R

second w indow= 2S R

third w indow= 4S R

fourth w indow= 8S R

com pletetransm issionobject

delivered

tim e atc lient

tim e atserver

Transport Layer 3-108

TCP Mocirc higravenh trễ (4)

)1(log

)1(logmin

12min

222min

222min

2

2

110

110

S

OS

Okk

S

Ok

SOk

OSSSkK

k

k

k

caacutech tiacutenh toaacuten Q tương tự (xem HW)

K = số lượng cửa sổ bao trugravem đối tượngLagravem thế nagraveo tiacutenh được K

Transport Layer 3-109

HTTP Mocirc higravenh Giả sử trang Web chứa

1 trang HTML (kiacutech thước O bits) M higravenh ảnh (mỗi caacutei kiacutech thướcO bits)

HTTP khocircng bền vững M+1 TCP kết nối Thời gian đaacutep ứng = (M+1)OR + (M+1)2RTT + tổng số thời

gian rảnh HTTP bền vững

2 RTT để yecircu cầu vagrave nhận file HTML 1 RTT để yecircu cầu vagrave nhận M higravenh ảnh Thời gian đaacutep ứng = (M+1)OR + 3RTT + tổng số thời gian

rảnh HTTP khocircng bền vững với X kết nối song song

Giả sử MX lagrave số nguyecircn 1 TCP kết nối cho file MX thiết lập caacutec kết nối song song cho caacutec higravenh ảnh Thời gian đaacutep ứng = (M+1)OR + (MX + 1)2RTT + tổng số

thời gian rảnh

Transport Layer 3-110

02468

101214161820

28Kbps

100Kbps

1Mbps

10Mbps

non-persistent

persistent

parallel non-persistent

HTTP thời gian đaacutep ứng (giacircy)RTT = 100 msec O = 5 Kbytes M=10 vagrave X=5

Với băng thocircng thấp thời gian kết nối amp đaacutep ứng trội hơn thời gian truyền

Caacutec kết nối bền vững chỉ cho sự cải thiện khocircng đaacuteng kể trecircn caacutec kết nối song song

Transport Layer 3-111

0

10

20

30

40

50

60

70

28Kbps

100Kbps

1Mbps

10Mbps

non-persistent

persistent

parallel non-persistent

HTTP thời gian đaacutep ứng (giacircy)

RTT =1 sec O = 5 Kbytes M=10 and X=5

Với RTT lớn hơn thời gian đaacutep ứng trội hơn thời gian trễ chờ thiết lập kết nốiTCP amp khởi động chậm Caacutec kết nối bền vững bacircy giờ cho thấy cải thiện rotilde rệt đặc biệtvới caacutec mạng băng thocircng cao

Transport Layer 3-112

Chương 3 Tổng kết caacutec nguyecircn lyacute của caacutec

dịch vụ lớp transport multiplexing

demultiplexing truyền dữ liệu tin cậy điều khiển luồng điều khiển tắc nghẽn

khởi tạo vagrave hiện thực trong Internet UDP TCP

Tiếp theo nghiecircn cứu xong

caacutec vấn đề ldquongoagravei biecircnrdquo (caacutec lớp application transport)

chuẩn bị vagraveo phần ldquolotildeirdquo của mạng

  • Slide 1
  • Chương 3 Lớp Transport
  • Chương 3 Nội dung trigravenh bagravey
  • Caacutec dịch vụ vagrave giao thức Transport
  • Lớp Transport với lớp network
  • Caacutec giao thức lớp transport trecircn Internet
  • Slide 7
  • Multiplexingdemultiplexing
  • Demultiplexing lagravem việc như thế nagraveo
  • Demultiplexing khocircng kết nối
  • Demultiplexing khocircng kết nối (tiếp)
  • Demultiplexing hướng kết nối
  • Demultiplexing hướng kết nối (tiếp)
  • Demultiplexing hướng kết nối Threaded Web Server
  • Slide 15
  • UDP User Datagram Protocol [RFC 768]
  • UDP (tt)
  • UDP checksum
  • Viacute dụ Checksum
  • Slide 20
  • Caacutec nguyecircn lyacute truyền dữ liệu tin cậy
  • Slide 22
  • Slide 23
  • Truyền dữ liệu tin cậy
  • Slide 25
  • Rdt10 truyền dữ liệu tin cậy trecircn 1 kecircnh truyền tin cậy
  • Rdt20 kecircnh với caacutec lỗi
  • rdt20 đặc tả FSM
  • rdt20 hoạt động khi khocircng lỗi
  • rdt20 hoạt động khi coacute lỗi
  • rdt20 coacute lỗ hổng nghiecircm trọng
  • rdt21 người gửi quản lyacute caacutec ACKNAK bị hỏng
  • Slide 33
  • rdt21 thảo luận
  • rdt22 một giao thức khocircng cần NAK
  • rdt22 gửi nhận caacutec mảnh
  • rdt30 caacutec kecircnh với lỗi vagrave mất maacutet
  • rdt30 gửi
  • hagravenh động của rdt30
  • Slide 40
  • Hiệu suất của rdt30
  • rdt30 hoạt động dừng-vagrave-chờ
  • Caacutec giao thức Pipelined
  • Pipelining độ khả dụng tăng
  • Go-Back-N
  • GBN becircn gửi mở rộng FSM
  • GBN becircn nhận mở rộng FSM
  • GBN hoạt động
  • Lặp coacute lựa chọn
  • Lặp coacute lựa chọn caacutec cửa sổ gửi nhận
  • Slide 51
  • Hoạt động của lặp coacute lựa chọn
  • Lặp coacute lựa chọn tigravenh trạng khoacute giải quyết
  • Slide 54
  • TCP Tổng quan RFCs 793 1122 1323 2018 2581
  • TCP cấu truacutec đoạn
  • Caacutec số thứ tự TCP vagrave ACK
  • TCP Round Trip Time vagraveTimeout
  • TCP Round Trip Time vagrave Timeout
  • Viacute dụ đaacutenh giaacute RTT
  • Slide 61
  • TCP truyền dữ liệu tin cậy
  • TCP caacutec sự kiện
  • TCP becircn gửi (đơn giản)
  • TCP caacutec tigravenh huống truyền lại
  • TCP caacutec tigravenh huống truyền lại (tt)
  • TCP sinh ra ACK [RFC 1122 RFC 2581]
  • Truyền lại nhanh
  • Giải thuật truyền lại nhanh
  • Slide 70
  • TCP điều khiển luồng
  • TCP điều khiển luồng caacutech lagravem
  • Slide 73
  • TCP quản lyacute kết nối
  • TCP quản lyacute kết nối (tt)
  • Slide 76
  • Slide 77
  • Slide 78
  • Caacutec nguyecircn lyacute điều khiển tắc nghẽn
  • Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 1
  • Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 2
  • Slide 82
  • Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 3
  • Slide 84
  • Caacutec caacutech tiếp cận đối với điều khiển tắc nghẽn
  • Viacute dụ điều khiển tắc nghẽn ATM ABR
  • Slide 87
  • Slide 88
  • TCP điều khiển tắc nghẽn additive tăng lecircn multiplicative giảm xuống
  • TCP điều khiển tắc nghẽn chi tiết
  • TCP khởi động chậm
  • TCP khởi động chậm (tt)
  • Tinh chế
  • Tinh chế nhận biết mất maacutet
  • Tổng kết TCP điều khiển tắc nghẽn
  • TCP điều khiển tắc nghẽn becircn gửi
  • TCP throughput
  • TCP tương lai
  • TCP tiacutenh cocircng bằng
  • Tại sao phải TCP cocircng bằng
  • TCP tiacutenh cocircng bằng (tt)
  • Mocirc higravenh trễ
  • Cửa sổ tắc nghẽn cố định (1)
  • Cửa sổ tắc nghẽn cố định (2)
  • TCP Mocirc higravenh trễ Khởi động chậm (1)
  • TCP Mocirc higravenh trễ Khởi động chậm (2)
  • TCP Mocirc higravenh trễ(3)
  • TCP Mocirc higravenh trễ (4)
  • HTTP Mocirc higravenh
  • Slide 110
  • Slide 111
  • Chương 3 Tổng kết

Transport Layer 3-33

rdt21 người gửi quản lyacute caacutec ACKNAK bị hỏng

chờ 0 từ dưới

sndpkt = make_pkt(NAK chksum)udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp not corrupt(rcvpkt) ampamp has_seq0(rcvpkt)

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp has_seq1(rcvpkt)

extract(rcvpktdata)deliver_data(data)sndpkt = make_pkt(ACK chksum)udt_send(sndpkt)

chờ 1 từ dưới

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp has_seq0(rcvpkt)

extract(rcvpktdata)deliver_data(data)sndpkt = make_pkt(ACK chksum)udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp (corrupt(rcvpkt)

sndpkt = make_pkt(ACK chksum)udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp not corrupt(rcvpkt) ampamp has_seq1(rcvpkt)

rdt_rcv(rcvpkt) ampamp (corrupt(rcvpkt)

sndpkt = make_pkt(ACK chksum)udt_send(sndpkt)

sndpkt = make_pkt(NAK chksum)udt_send(sndpkt)

Transport Layer 3-34

rdt21 thảo luận

người gửi số thứ tự thecircm vagraveo

goacutei chỉ cần hai số thứ tự

(01) lagrave đủ Tại sao phải kiểm tra nếu việc

nhận ACKNAK bị hỏng

số trạng thaacutei tăng lecircn 2 lần trạng thaacutei phải ldquonhớrdquo

goacutei ldquohiện tạirdquo coacute số thứ tự lagrave 0 hay 1

người nhận phải kiểm tra coacute

nhận trugraveng goacutei khocircng trạng thaacutei chỉ rotilde coacute

hay khocircng mong chờ số thứ tự 0 hoặc 1

chuacute yacute người nhận khocircng biết ACKNAK vừa rồi của noacute coacute được người gửi nhận tốt hay khocircng

Transport Layer 3-35

rdt22 một giao thức khocircng cần NAK

chức năng giống như rdt21 chỉ dugraveng caacutec ACK thay cho NAK người nhận gửi ACK cho goacutei vừa

rồi đatilde nhận tốt người nhận phải rotilde ragraveng chegraven số thứ tự của goacutei vừa ACK

trugraveng ACK tại người gửi hậu quả giống như hagravenh động của NAK truyền lại goacutei vừa rồi

Transport Layer 3-36

rdt22 gửi nhận caacutec mảnh

Chờ cho gọi 0 từ

trecircn

sndpkt = make_pkt(0 data checksum)udt_send(sndpkt)

rdt_send(data)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) || isACK(rcvpkt1) )

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt0)

Chờ cho ACK

0

gửi phacircn mảnhFSM

Chờ cho gọi

0 từ dưới

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp has_seq1(rcvpkt)

extract(rcvpktdata)deliver_data(data)sndpkt = make_pkt(ACK1 chksum)udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp (corrupt(rcvpkt) || has_seq1(rcvpkt))

udt_send(sndpkt)

nhận phacircn mảnhFSM

Transport Layer 3-37

rdt30 caacutec kecircnh với lỗi vagrave mất maacutet

Giả định mới kecircnh ưu tiecircn cũng coacute thể lagravem mất caacutec goacutei (dữ liệu hoặc caacutec ACK) checksum số thứ tự

caacutec ACK caacutec việc truyền lại sẽ hỗ trợ nhưng khocircng đủ

Caacutech tiếp cận người gửi chờ ACK trong khoảng thời gian ldquochấp nhận đượcrdquo

truyền lại nếu khocircng nhận ACK trong khoảng thời gian nagravey

nếu goacutei (hoặc ACK) chỉ trễ (khocircng mất) truyền lại sẽ gacircy trugraveng

nhưng dugraveng số thứ tự sẽ giải quyết được

người nhận phải xaacutec định số thứ tự của goacutei vừa gửi ACK

cần bộ định thigrave đếm lugravei

Transport Layer 3-38

rdt30 gửi

sndpkt = make_pkt(0 data checksum)udt_send(sndpkt)start_timer

rdt_send(data)

Chờ cho

ACK 0

rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) ||isACK(rcvpkt1) )

Chờ cho gọi 1 từ trecircn

sndpkt = make_pkt(1 data checksum)udt_send(sndpkt)start_timer

rdt_send(data)

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt0)

rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) ||isACK(rcvpkt0) )

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt1)

stop_timerstop_timer

udt_send(sndpkt)start_timer

timeout

udt_send(sndpkt)start_timer

timeout

rdt_rcv(rcvpkt)

Chờ cho gọi 0 từ trecircn

Chờ cho

ACK 1

rdt_rcv(rcvpkt)

Transport Layer 3-39

hagravenh động của rdt30

Transport Layer 3-40

hagravenh động của rdt30

Transport Layer 3-41

Hiệu suất của rdt30

rdt30 lagravem việc được nhưng đaacutenh giaacute hiệu suất hơi rắc rối viacute dụ liecircn kết 1 Gbps trễ lan truyền giữa hai đầu cuối lagrave 15

ms goacutei 1KB

T truyền = 8kbpkt109 bsec

= 8 microsec

U sender độ khả dụng ndash

U sender

= 008

30008 = 000027

microseconds

L R

RTT + L R =

L (độ dagravei goacutei tiacutenh bằng bits)R (tốc độ truyền bps)

=

goacutei 1KB mỗi 30 msec -gt 33kBs trecircn đường truyền 1 Gbps giao thức network hạn chế việc dugraveng caacutec tagravei nguyecircn vật

lyacute

Transport Layer 3-42

rdt30 hoạt động dừng-vagrave-chờ

goacutei đầu tiecircn đatilde truyền t = 0

gửi nhận

RTT

goacutei cuối cugraveng đatilde truyền t = L R

goacutei đầu tiecircn đatilde đếngoacutei cuối cugraveng đatilde đến gửi ACK

ACK đến gửi goacutei kế tiếp t = RTT + L R

U sender

= 008

30008 = 000027

microseconds

L R

RTT + L R =

Transport Layer 3-43

Caacutec giao thức Pipelined

Pipelining người gửi cho pheacutep gửi nhiều goacutei đồng thời khocircng cần chờ baacuteo nhận được nhoacutem caacutec số thứ tự phải tăng dần phải coacute bộ nhớ đệm tại nơi gửi vagravehoặc nơi nhận

hai dạng phổ biến của caacutec giao thức pipelined go-Back-N Lặp coacute lựa chọn

Transport Layer 3-44

Pipelining độ khả dụng tăng

goacutei đầu tiecircn đatilde truyền t = 0

sender receiver

RTT

goacutei cuối cugraveng đatilde truyền t = L R

goacutei đầu tiecircn đatilde đếngoacutei cuối cugraveng đatilde đến gửi ACK

ACK đến gửi goacuteikế tiếp t = RTT + L R

bit cuối của goacutei thứ 2 đến gửi ACKbit cuối của goacutei thứ 3 đến gửi ACK

U sender

= 024

30008 = 00008

microseconds

3 L R

RTT + L R =

Độ khả dụng tăng lecircngấp 3 lần

Transport Layer 3-45

Go-Back-NBecircn gửi k-bit số thứ tự trong header của goacutei ldquocửa sổrdquo tăng lecircn đến N cho pheacutep gửi caacutec goacutei liecircn tục khocircng cần ACK

ACK(n) ACKs tất cả caacutec goacutei đến chứa số thứ tự n ndash ldquoACK tiacutech lũyrdquo coacute thể nhận caacutec ACK trugraveng lặp (xem becircn nhận)

định thigrave cho mỗi goacutei trecircn đường truyền timeout(n) gửi lại goacutei n vagrave tất cả caacutec goacutei coacute số thứ tự cao

hơn trong cửa sổ

Transport Layer 3-46

GBN becircn gửi mở rộng FSM

chờ start_timerudt_send(sndpkt[base])udt_send(sndpkt[base+1])hellipudt_send(sndpkt[nextseqnum-1])

timeout

rdt_send(data)

if (nextseqnum lt base+N) sndpkt[nextseqnum] = make_pkt(nextseqnumdatachksum) udt_send(sndpkt[nextseqnum]) if (base == nextseqnum) start_timer nextseqnum++ else refuse_data(data)

base = getacknum(rcvpkt)+1If (base == nextseqnum) stop_timer else start_timer

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)

base=1nextseqnum=1

rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)

Transport Layer 3-47

GBN becircn nhận mở rộng FSM

ACK-duy nhất luocircn luocircn gửi ACK cho goacutei đatilde nhận đuacuteng với số thứ tự xếp hạng cao nhất coacute thể sinh ra caacutec ACK trugraveng nhau chỉ cần nhớ expectedseqnum

goacutei khocircng theo thứ tự hủy -gt khocircng nhận vagraveo bộ đệm gửi lại ACK với số thứ tự xếp hạng cao nhất

chờ

udt_send(sndpkt)

default

rdt_rcv(rcvpkt) ampamp notcurrupt(rcvpkt) ampamp hasseqnum(rcvpktexpectedseqnum)

extract(rcvpktdata)deliver_data(data)sndpkt = make_pkt(expectedseqnumACKchksum)udt_send(sndpkt)expectedseqnum++

expectedseqnum=1sndpkt = make_pkt(expectedseqnumACKchksum)

Transport Layer 3-48

GBN hoạt động

Transport Layer 3-49

Lặp coacute lựa chọn

becircn nhận thocircng baacuteo đatilde nhận đuacuteng tất cả từng goacutei một đệm (buffer) caacutec goacutei nếu cần thiết

becircn gửi chỉ gửi lại caacutec goacutei nagraveo khocircng nhận được ACK becircn gửi định thigrave đối với mỗi goacutei khocircng gửi ACK

cửa sổ becircn gửi N số thứ tự liecircn tục hạn chế số thứ tự caacutec goacutei khocircng gửi ACK

Transport Layer 3-50

Lặp coacute lựa chọn caacutec cửa sổ gửi nhận

Transport Layer 3-51

Lặp coacute lựa chọn

dữ liệu từ lớp trecircn nếu số thứ tự kế tiếp sẵn

sagraveng trong cửa sổ gửi goacutei

timeout(n) gửi lại goacutei n taacutei khởi tạo

bộ định thigrave

ACK(n) trong [sendbasesendbase+N]

đaacutenh dấu goacutei n lagrave đatilde nhận nếu goacutei khocircng ACK coacute n

nhỏ nhất dịch chuyển cửa sổ base đến số thứ tự khocircng ACK kế tiếp

Gửigoacutei n trong [rcvbase

rcvbase+N-1]

gửi ACK(n) khocircng thứ tự đệm

(buffer) coacute thứ tự truyền (cũng

truyền caacutec goacutei đatilde đệm coacute thứ tự) dịch chuyển cửa sổ đến goacutei chưa nhận kế tiếp

goacutei n trong [rcvbase-Nrcvbase-1]

ACK(n)

ngược lại lờ đi

Nhận

Transport Layer 3-52

Hoạt động của lặp coacute lựa chọn

Transport Layer 3-53

Lặp coacute lựa chọntigravenh trạng khoacute giải quyếtViacute dụ Số thứ tự 0 1 2 3 Kiacutech thước cửa sổ = 3

becircn nhận khocircng thấy sự khaacutec nhau trong 2 tigravenh huống

chuyển khocircng chiacutenh xaacutec dữ liệu trugraveng lặp như dữ liệu mới trong (a)

Hỏi quan hệ giữa datildey số thứ tự vagrave kiacutech thước cửa sổ

Transport Layer 3-54

Chương 3 Nội dung trigravenh bagravey

31 Caacutec dịch vụ lớp Transport

32 Multiplexing vagrave demultiplexing

33 Vận chuyển khocircng kết nối UDP

34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy

35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối

36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn

37 Điều khiển tắc nghẽn TCP

Transport Layer 3-55

TCP Tổng quan RFCs 793 1122 1323 2018 2581

dữ liệu full duplex luồng dữ liệu đi 2 chiều

trong cugraveng một kết nối MSS maximum

segment size ndash kiacutech thước đoạn tối đa

hướng kết nối bắt tay (trao đổi caacutec

thocircng điệp điều khiển) trạng thaacutei becircn gửi becircn nhận trước khi trao đổi dữ liệu

điều khiển luồng becircn gửi sẽ khocircng lấn aacutet

becircn nhận

point-to-point một becircn gửi một becircn

nhận tin cậy dograveng byte coacute

thứ tự khocircng ldquoranh giới thocircng

điệprdquo kecircnh liecircn lạc

TCP điều khiển luồng vagrave tắc nghẽn thiết lập kiacutech thước cửa sổ

caacutec bộ đệm gửi amp nhận

socketdoor

T C Psend buffer

T C Preceive buffer

socketdoor

segm ent

applicationwrites data

applicationreads data

Transport Layer 3-56

TCP cấu truacutec đoạn

port nguồn port điacutech

32 bits

dữ liệu ứng dụng(độ dagravei thay đổi)

số thứ tự

số ACKcửa sổ nhận

con trỏ URGchecksum

FSRPAUheadlen

notused

Tugravey chọn (độ dagravei thay đổi)

URG dữ liệu khẩn cấp(thường khocircng dugraveng)

ACK ACK hợp lệ

PSH push data now(thường khocircng dugraveng)

RST SYN FINthiết lập kết nối

(caacutec lệnh thiết lậpchia nhỏ)

số byte becircn nhận sẵn sagraveng chấp nhận

đếm bởi số bytecủa dữ liệu

Internetchecksum

(giống UDP)

Transport Layer 3-57

Caacutec số thứ tự TCP vagrave ACKCaacutec số thứ tự

dograveng byte ldquođaacutenh sốrdquo byte đầu tiecircn trong dữ liệu của đoạn

caacutec ACK số thứ tự của byte

kế tiếp được chờ đợi từ phiacutea becircn kia

ACK tiacutech lũyHỏi lagravem thế nagraveo becircn

nhận quản lyacute caacutec đoạn khocircng thứ tự Trả lời TCP khocircng

đề cập tugravey thuộc người hiện thực

Host A Host B

Seq=42 ACK=79 data = lsquoCrsquo

Seq=79 ACK=43 data = lsquoCrsquo

Seq=43 ACK=80

UsernhậplsquoCrsquo

host ACKsnhận phản hồi

lsquoCrsquo

host ACKsbaacuteo nhận

lsquoCrsquo phản hồingược lại lsquoCrsquo

timetigravenh huống telnet đơn giản

Transport Layer 3-58

TCP Round Trip Time vagraveTimeout

Hỏi Lagravem thế nagraveo để thiết lập giaacute trị TCP timeout

dagravei hơn RTT khaacutec với RTT

quaacute ngắn timeout sớm truyền lại khocircng

cần thiết quaacute dagravei phản ứng

chậm đối với việc mất maacutet goacutei

Hỏi Lagravem thế nagraveo để thiết lập RTT

SampleRTT thời gian được đo từ khi truyền đoạn đến khi baacuteo nhận ACK lờ đi việc truyền lại

SampleRTT sẽ thay đổi muốn ước lượng RTT ldquomượt hơnrdquo tiacutenh trung bigravenh một số giaacute

trị đo được gần đoacute khocircng chỉ SampleRTT hiện tại

Transport Layer 3-59

TCP Round Trip Time vagrave Timeout

EstimatedRTT = (1- )EstimatedRTT + SampleRTT

giaacute trị đặc trưng = 0125

Transport Layer 3-60

Viacute dụ đaacutenh giaacute RTTRTT gaiacsumassedu to fantasiaeurecomfr

100

150

200

250

300

350

1 8 15 22 29 36 43 50 57 64 71 78 85 92 99 106

time (seconnds)

RTT

(mill

isec

onds

)

SampleRTT Estimated RTT

Transport Layer 3-61

TCP Round Trip Time vagrave Timeout

Thiết lập timeout EstimtedRTT cộng ldquohệ số dự trữ an toagravenrdquo

sự biến thiecircn lớn trong EstimatedRTT -gt hệ số dự trữ an toagraven lớn hơn ước lượng đầu tiecircn về sự biến thiecircn của SampleRTT từ EstimatedRTT

TimeoutInterval = EstimatedRTT + 4DevRTT

DevRTT = (1-)DevRTT + |SampleRTT-EstimatedRTT|

(tiecircu biểu = 025)

Sau đoacute thiết lập timeout interval

Transport Layer 3-62

TCP truyền dữ liệu tin cậy

TCP tạo dịch vụ rdt trecircn dịch vụ khocircng tin cậy IP

caacutec đoạn Pipelined caacutec ACK tiacutech lũy TCP dugraveng bộ định thigrave

truyền lại đơn

Truyền lại được kiacutech hoạt bởi caacutec sự kiện timeout caacutec ack trugraveng lặp

luacutec đầu khảo saacutet caacutec becircn gửi TCP đơn giản lờ đi caacutec ack trugraveng lặp lờ đi điều khiển luồng

điều khiển tắc nghẽn

Transport Layer 3-63

TCP caacutec sự kiệndữ liệu đatilde nhận từ ứng

dụng tạo đoạn với số thứ

tự của noacute số thứ tự lagrave số theo

byte dữ liệu đầu tiecircn khởi động bộ định thigrave

nếu chưa chạy khoảng thời gian hết

hạn TimeOutInterval

timeout gửi lại đoạn nagraveo gacircy

ra timeout khởi động lại bộ định

thigrave Ack đatilde nhận

cập nhật caacutei gigrave sẽ được ACK

khởi động bộ định thigrave nếu coacute caacutec đoạn cograven chờ

Transport Layer 3-64

TCP becircn gửi(đơn giản)

NextSeqNum = InitialSeqNum SendBase = InitialSeqNum

loop (forever) switch(event)

event data received from application above create TCP segment with sequence number NextSeqNum if (timer currently not running) start timer pass segment to IP NextSeqNum = NextSeqNum + length(data)

event timer timeout retransmit not-yet-acknowledged segment with smallest sequence number start timer

event ACK received with ACK field value of y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer

end of loop forever

Chuacute thiacutechbull SendBase-1 byte vừa được ACK tiacutech lũy Viacute dụbull SendBase-1 = 71y= 73 vigrave thế becircn nhận muốn 73+ y gt SendBase vigrave thế dữ liệu mới được chấp nhận

Transport Layer 3-65

TCP caacutec tigravenh huống truyền lại

Host A

Seq=100 20 bytes data

ACK=100

timetimeout sớm

Host B

Seq=92 8 bytes data

ACK=120

Seq=92 8 bytes data

Seq=

92

tim

eout

ACK=120

Host A

Seq=92 8 bytes data

ACK=100

loss

tim

eout

tigravenh huống mất ACK

Host B

X

Seq=92 8 bytes data

ACK=100

time

Seq=

92

tim

eout

SendBase= 100

SendBase= 120

SendBase= 120

Sendbase= 100

Transport Layer 3-66

TCP caacutec tigravenh huống truyền lại (tt)Host A

Seq=92 8 bytes data

ACK=100

loss

tim

eout

Cumulative ACK scenario

Host B

X

Seq=100 20 bytes data

ACK=120

time

SendBase= 120

Transport Layer 3-67

TCP sinh ra ACK [RFC 1122 RFC 2581]

Sự kiện tại becircn nhận

Đoạn đến với đuacuteng số thứ tự mong muốn Tất cả dữ liệu đếnđatilde được ACK

Đoạn đến với đuacuteng số thứ tự mong muốn Một đoạn khaacutec đangchờ ACK

Caacutec đoạn đến khocircng thứ tựlớn hơn số thứ tự đoạn mong muốnCoacute khoảng trống

Đoạn đếnlấp đầy từng phần hoặc toagraven bộkhoảng trống

TCP becircn nhận hagravenh động

ACK trễ Chờ đến 500mscho đoạn kế tiếp Nếu khocircng coacute đoạnkế tiếp gửi ACK

Gửi ngay một ACK tiacutech lũy chấp nhậncho cả caacutec đoạn theo thứ tự

Gửi ngay ACK trugraveng lặp chỉ thị số thứ tựđoạn của byte kế tiếp đang mong chờ

Gửi ngay ACK với điều kiện lagrave đoạnbắt đầu ngay điểm coacute khoảng trống

Transport Layer 3-68

Truyền lại nhanh

Chu kỳ Time-out thường tương đối dagravei độ trễ dagravei trước khi gửi

lại goacutei đatilde mất

Xaacutec nhận caacutec đoạn đatilde mất bằng caacutec ACK trugraveng lặp becircn gửi thường gửi

nhiều đoạn song song Nếu đoạn bị mất sẽ

xảy ra tigravenh trạng giống như nhiều ACK trugraveng nhau

Nếu becircn gửi nhận 3 ACK của cugraveng một dữ liệu noacute cho lagrave đoạn sau dữ liệu đatilde ACK bị mất Truyền lại nhanh gửi

lại đoạn trước khi bộ định thigrave hết hạn

Transport Layer 3-69

sự kiện ACK đatilde nhận với trường lagrave y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer else increment count of dup ACKs received for y if (count of dup ACKs received for y = 3) resend segment with sequence number y

Giải thuật truyền lại nhanh

một ACK trugraveng lặp cho đoạn đatilde được ACK

Truyền lại nhanh

Transport Layer 3-70

Chương 3 Nội dung trigravenh bagravey

31 Caacutec dịch vụ lớp Transport

32 Multiplexing vagrave demultiplexing

33 Vận chuyển khocircng kết nối UDP

34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy

35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối

36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn

37 Điều khiển tắc nghẽn TCP

Transport Layer 3-71

TCP điều khiển luồng

becircn nhận của kết nối TCP coacute một bộ đệm nhận

dịch vụ so trugraveng tốc độ so trugraveng tốc độ gửi với tốc độ nhận của ứng dụng

tiến trigravenh ứng dụng coacute thể chậm tại luacutec đọc bộ đệm

becircn gửi sẽ khocircng lagravem tragraven bộ đệm vigrave truyền quaacute nhiều vagrave

quaacute nhanh

điều khiển luồng

Transport Layer 3-72

TCP điều khiển luồng caacutech lagravem

(Giả sử becircn nhận TCP loại bỏ caacutec đoạn khocircng coacute thứ tự)

dự phograveng trong bộ đệm= RcvWindow

= RcvBuffer-[LastByteRcvd - LastByteRead]

Becircn nhận thocircng baacuteo khoảng dự trữ nhờ giaacute trị RcvWindow trong caacutec đoạn

Becircn gửi hạn chế dữ liệu khocircng được ACK vagraveo RcvWindow bảo đảm bộ đệm nhận

khocircng tragraven

Transport Layer 3-73

Chương 3 Nội dung trigravenh bagravey

31 Caacutec dịch vụ lớp Transport

32 Multiplexing vagrave demultiplexing

33 Vận chuyển khocircng kết nối UDP

34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy

35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối

36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn

37 Điều khiển tắc nghẽn TCP

Transport Layer 3-74

TCP quản lyacute kết nối

Chuacute yacute Becircn gửi vagrave becircn nhận TCP thiết lập ldquokết nốirdquo trước khi trao đổi dữ liệu

khởi tạo caacutec biến TCP caacutec số thứ tự đoạn thocircng tin caacutec bộ đệm điều

khiển luồng (như RcvWindow)

client người khởi xướng kết nối

Socket clientSocket = new Socket(hostnameport

number) server được tiếp xuacutec bởi

client Socket connectionSocket =

welcomeSocketaccept()

3 phương phaacutep bắt tay

Bước 1 client host gửi đoạnTCP SYN đến server xaacutec định số thứ tự khởi đầu khocircng phải dữ liệu

Bước 2 server host nhận SYN trả lời với đoạn SYNACK

server cấp phaacutet caacutec bộ đệm

xaacutec định số thứ tự khởi đầuBước 3 client nhận SYNACK trả

lời với đoạn ACK (coacute thể chứa dữ liệu)

Transport Layer 3-75

TCP quản lyacute kết nối (tt)

Đoacuteng một kết nối

client đoacuteng socket clientSocketclose()

Bước 1 client gửi đoạn điều khiển TCP FIN đến server

Bước 2 server nhận FIN trả lời với ACK Đoacuteng kết nối gửi FIN

client

FIN

server

ACK

ACK

FIN

đoacuteng

đoacuteng

đatilde đoacutengthời g

ian c

hờ

Transport Layer 3-76

TCP quản lyacute kết nối (tt)

Bước 3 client nhận FIN trả lời với ACK

Trong khoảng ldquothời gian chờrdquo ndash sẽ phản hồi với ACK để nhận caacutec FIN

Bước 4 server nhận ACK Kết nối đatilde đoacuteng

Chuacute yacute với một sửa đổi nhỏ coacute thể quản lyacute nhiều FIN đồng thời

client

FIN

server

ACK

ACK

FIN

đang đoacuteng

đang đoacuteng

đatilde đoacuteng

thời g

ian c

hờ

đatilde đoacuteng

Transport Layer 3-77

TCP quản lyacute kết nối (tt)

chu kỳ sống củaTCP client

chu kỳ sống củaTCP server

Transport Layer 3-78

Chương 3 Nội dung trigravenh bagravey

31 Caacutec dịch vụ lớp Transport

32 Multiplexing vagrave demultiplexing

33 Vận chuyển khocircng kết nối UDP

34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy

35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối

36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn

37 Điều khiển tắc nghẽn TCP

Transport Layer 3-79

Caacutec nguyecircn lyacute điều khiển tắc nghẽn

Tắc nghẽn ldquoquaacute nhiều nguồn gửi quaacute nhanh vagrave quaacute nhiều

dữ liệu đến mạngrdquo khaacutec với điều khiển luồng caacutec biểu hiện

caacutec goacutei bị mất (tragraven bộ đệm tại caacutec router) caacutec độ trễ quaacute dagravei (xếp hagraveng trong bộ đệm

của router) lagrave 1 trong 10 vấn đề nan giải nhất

Transport Layer 3-80

Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 1

2 gửi 2 nhận 1 router caacutec bộ

đệm khocircng giới hạn

khocircng coacute truyền lại

caacutec độ trễ lớn hơn khi tắc nghẽn

năng suất coacute thể đạt tối đa

unlimited shared output link buffers

Host Ain original data

Host B

out

Transport Layer 3-81

Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 2

1 router caacutec bộ đệm coacute giới hạn becircn gửi truyền lại caacutec goacutei đatilde mất

chia sẻ vocirc hạncaacutec bộ đệm ouput

Host A in dữ liệu gốc

Host B

out

in dữ liệu gốc cugraveng với dữ liệu truyền lại

Transport Layer 3-82

Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 2 luocircn luocircn

truyền lại ldquohoagraven toagravenrdquo chỉ khi mất maacutet

truyền lại vigrave trễ (khocircng mất) lagravem cho lớn hơn với cugraveng

in

out

=

in

out

gt

in

out

ldquocaacutec chi phiacuterdquo của tắc nghẽn nhiều việc (truyền lại) caacutec truyền lại khocircng cần thiết liecircn kết nhiều bản sao của

goacutei

R2

R2in

ou

t

b

R2

R2in

ou

t

a

R2

R2in

ou

t

c

R4

R3

Transport Layer 3-83

Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 3 4 người gửi caacutec đường qua nhiều hop timeouttruyền lại

in

Hỏi điều gigrave xảy ra nếu vagrave tăng lecircn

in

chia sẻ vocirc hạncaacutec bộ đệm ouput

Host Ain dữ liệu gốc

Host B

out

in dữ liệu gốc cugraveng với dữ liệu truyền lại

Transport Layer 3-84

Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 3

ldquochi phiacuterdquo khaacutec của tắc nghẽn khi caacutec goacutei bị bỏ bất kỳ ldquokhả năng truyền

upstream dugraveng cho goacutei đoacute sẽ bị latildeng phiacuterdquo

Host A

Host B

o

u

t

Transport Layer 3-85

Caacutec caacutech tiếp cận đối với điều khiển tắc nghẽn

điều khiển tắc nghẽn end-end

khocircng coacute phản hồi rotilde ragraveng từ mạng

tắc nghẽn được suy ra từ việc quan saacutet caacutec hệ thống đầu cuối coacute mất maacutet trễ

tiếp cận được quản lyacute bởi TCP

điều khiển tắc nghẽn coacute sự hỗ trợ của mạng

caacutec router cung cấp phản hồi về caacutec hệ thống đầu cuối 1 bit duy nhất chỉ thị

tắc nghẽn (SNA DECbit TCPIP ECN ATM)

tốc độ sẽ gửi được xaacutec định rotilde ragraveng

2 caacutech

Transport Layer 3-86

Viacute dụ điều khiển tắc nghẽn ATM ABR

ABR tốc độ bit sẵn sagraveng

ldquodịch vụ mềm dẻordquo nếu đường gửi ldquochưa

hếtrdquo becircn gửi sẽ dugraveng

băng thocircng sẵn sagraveng nếu đường gửi tắc

nghẽn becircn gửi điều tiết với

tốc độ tối thiểu

RM (resource management)

gửi bởi becircn gửi rải raacutec với caacutec ocirc dữ liệu

caacutec bit trong ocirc thiết lập bởi caacutec switch bit NI khocircng tăng tốc độ

(tắc nghẽn nhẹ) bit CI tắc nghẽn rotilde rệt

Caacutec ocirc RM được trả về becircn gửi từ becircn nhận với nguyecircn vẹn caacutec bit

Transport Layer 3-87

Viacute dụ điều khiển tắc nghẽn ATM ABR

trường 2-byte ER trong ocirc RM switch đatilde tắc nghẽn coacute thể coacute giaacute trị ER thấp hơn trong ocirc tốc độ gửi do đoacute coacute thể được hỗ trợ tối đa trecircn đường

EFCI bit trong caacutec ocirc dữ liệu được cagravei giaacute trị 1 trong switch đatilde tắc nghẽn nếu ocirc dữ liệu đứng trước ocirc RM coacute cagravei EFCI becircn gửi sẽ cagravei

bit CI trong ocirc RM trả về

Transport Layer 3-88

Chương 3 Nội dung trigravenh bagravey

31 Caacutec dịch vụ lớp Transport

32 Multiplexing vagrave demultiplexing

33 Vận chuyển khocircng kết nối UDP

34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy

35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối

36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn

37 Điều khiển tắc nghẽn TCP

Transport Layer 3-89

TCP điều khiển tắc nghẽn additive tăng lecircn multiplicative giảm xuống

8 Kbytes

16 Kbytes

24 Kbytes

time

congestionwindow

Caacutech tiếp cận tăng tốc độ truyền (kiacutech thước cửa sổ) tigravem khả năng băng thocircng coacute thể cho đến khi coacute mất maacutet xảy ra additive tăng lecircn tăng CongWin bởi 1 MSS

mỗi RTT cho đến khi coacute mất maacutet xảy ra multiplicative giảm xuống bỏ CongWin trong

nửa giai đoạn sau khi mất maacutet

timekiacutech

thư

ớc

cửa

sổ

tắc

nghẽ

n

Tigravem kiếm băng thocircng

Transport Layer 3-90

TCP điều khiển tắc nghẽn chi tiết

becircn gửi hạn chế việc truyền LastByteSent-LastByteAcked

CongWin Cocircng thức

CongWin thay đổi chức năng lagrave nhận biết tắc nghẽn trecircn mạng

Lagravem thế nagraveo becircn gửi nhận biết tắc nghẽn

mất maacutet xảy ra = timeout hoặc 3 ack trugraveng lặp

becircn gửi giảm tốc độ (CongWin) sau khi mất maacutet xảy ra

3 cơ chế AIMD khởi động chậm thận trọng sau khi coacute

caacutec sự kiện timeout

tốc độ = CongWin

RTT Bytess

Transport Layer 3-91

TCP khởi động chậm

Khi kết nối bắt đầu CongWin = 1 MSS Viacute dụ MSS = 500 bytes

amp RTT = 200 ms tốc độ khởi tạo = 20

kbps

băng thocircng sẵn sagraveng coacute thể gtgt MSSRTT mong muốn nhanh

choacuteng tăng tốc lecircn tốc độ coacute thể đaacutep ứng

Khi kết nối bắt đầu tăng tốc lecircn rất nhanh cho đến khi sự cố mất maacutet xảy ra đầu tiecircn

Transport Layer 3-92

TCP khởi động chậm (tt)

Khi kết nối bắt đầu tăng tốc lecircn rất nhanh cho đến khi sự cố mất maacutet xảy ra đầu tiecircn nhacircn đocirci CongWin mỗi

RTT hoagraven thagravenh nhờ tăng CongWin ứng với mỗi ACK đatilde nhận

Tổng kết tốc độ khởi đầu lagrave chậm nhưng sau đoacute tăng tốc rất nhanh

Host A

1 đoạn

RTT

Host B

thời gian

2 đoạn

4 đoạn

Transport Layer 3-93

Tinh chếHỏi Khi nagraveo việc tăng

tốc trở thagravenh tuyến tiacutenh

Trả lời Khi CongWin đạt đến 12 giaacute trị của noacute trước khi timeout

Hiện thực Ngưỡng thay đổi Tại thời điểm coacute sự cố

mất maacutet ngưỡng được cagravei giaacute trị bằng frac12 của CongWin ngay trước đoacute

Transport Layer 3-94

Tinh chế nhận biết mất maacutet

Sau 3 ACK trugraveng lặp CongWin sẽ giảm 12 kiacutech thước cửa sổ

tăng tuyến tiacutenh nhưng sau sự cố

timeout CongWin thay giaacute trị

bằng 1 MSS kiacutech thước cửa sổ

tăng cấp lũy thừa khi đến một ngưỡng

thigrave tăng tuyến tiacutenh

3 ACK trugraveng nhau chỉ ra khả năng truyền của mạng timeout chỉ thị ldquonhiều cảnh baacuteordquo về tigravenh huống tắc nghẽn

Nguyecircn lyacute

Transport Layer 3-95

Tổng kết TCP điều khiển tắc nghẽn

Khi CongWin dưới Threshold becircn gửi đang trong giai đoạn khởi động chậm kiacutech thước cửa sổ tăng nhanh theo cấp lũy thừa

Khi CongWin trecircn Threshold becircn gửi đang trong giai đoạn traacutenh tắc nghẽn kiacutech thước cửa sổ tăng nhanh theo cấp tuyến tiacutenh

Khi coacute 3 ACK trugraveng lặp xảy ra Threshold = CongWin2 vagrave CongWin = Threshold

Khi timeout xảy ra Threshold = CongWin2 vagrave CongWin = 1 MSS

Transport Layer 3-96

TCP điều khiển tắc nghẽn becircn gửi

Trạng thaacutei Sự kiện TCP becircn gửi hagravenh động Diễn giải

Slow Start (SS)-Khởi động chậm

ACK baacuteo nhận cho dữ liệu chưa ACK trước đoacute

CongWin = CongWin + MSS If (CongWin gt Threshold) cagravei đặt trạng thaacutei ldquoTraacutenh tắc nghẽnrdquo

Hậu quả lagravem tăng gấp đocirci CongWin mỗi RTT

CongestionAvoidance (CA) ndashTraacutenh tắc nghẽn

ACK baacuteo nhận cho dữ liệu chưa ACK trước đoacute

CongWin = CongWin+MSS (MSSCongWin)

Additive tăng lecircn lagravem tăng CongWin lecircn 1 MSS mỗi RTT

SS hoặc CA Sự cố mất maacutet xảy ra khi thấy coacute 3 ACK trugraveng lặp

Threshold = CongWin2 CongWin = Thresholdcagravei đặt trạng thaacutei ldquoTraacutenh tắc nghẽnrdquo

Khocirci phục nhanh hiện thực giảm xuống multiplicative CongWin sẽ khocircng giảm xuống dưới 1 MSS

SS hoặc CA Timeout Threshold = CongWin2 CongWin = 1 MSScagravei đặt trạng thaacutei ldquoKhởi động chậmrdquo

Vagraveo chế độ ldquoKhởi động chậmrdquo

SS hoặc CA ACK trugraveng lặp

Đếm ACK tăng lecircn cho đoạn vừa được ACK

CongWin vagrave Threshold khocircng thay đổi

Transport Layer 3-97

TCP throughput

Throughout trung bigravenh của TCP biểu diễn qua kiacutech thước của sổ vagrave RTT Bỏ qua trạng thaacutei ldquoKhởi động chậmrdquo

Cho W lagrave kiacutech thước cửa sổ khi coacute mất maacutet xảy ra

Khi kiacutech thước cửa sổ = W lưu lượng = WRTT

Chỉ ngay sau khi mất maacutet cửa sổ giảm xuống = W2 lưu lượng = W2RTT

throughout trung bigravenh 075 WRTT

Transport Layer 3-98

TCP tương lai

Viacute dụ caacutec đoạn dagravei 1500 byte RTT 100ms lưu lượng 10 Gbps

Kiacutech thước cửa sổ yecircu cầu W = 83333 đoạn trecircn đường truyền

Lưu lượng trong caacutec trường hợp mất maacutet

L = 210-10

Phiecircn bản mới của TCP dagravenh cho nhu cầu tốc độ cao

LRTT

MSS221

Transport Layer 3-99

Mục tiecircu nếu K phiecircn lagravem việc TCP chia sẻ kết nối cổ chai của băng thocircng lagrave R mỗi phiecircn coacute tốc độ trung bigravenh lagrave RK

TCP kết nối 1

router cổ chaikhả năng R

TCP kết nối 2

TCP tiacutenh cocircng bằng

Transport Layer 3-100

Tại sao phải TCP cocircng bằng

2 phiecircn lagravem việc cạnh tranh nhau Additive tăng lưu lượng tăng multiplicative giảm lưu lượng tương xứng

R

R

chia sẻ băng thocircng bằng nhau

Connection 1 throughputConnect

ion 2

th

roughput

traacutenh tắc nghẽn additive tăng lecircnmất maacutet giảm cửa sổ bằng 12

traacutenh tắc nghẽn additive tăng lecircnmất maacutet giảm cửa sổ bằng 12

Transport Layer 3-101

TCP tiacutenh cocircng bằng (tt)

Tiacutenh cocircng bằng amp UDP nhiều ứng dụng

thường khocircng dugraveng TCP khocircng muốn tốc độ bị

điều tiết do điều khiển tắc nghẽn

Thay bằng dugraveng UDP truyền audiovideo với

tốc độ ổn định chịu được mất maacutet

Nghiecircn cứu giao thức thacircn thiện với TCP

Tiacutenh cocircng bằng amp caacutec kết nối TCP song song

khocircng coacute gigrave ngăn cản việc ứng dụng mở caacutec kết nối song song giữa 2 host

Trigravenh duyệt Web lagravem giống như thế

Viacute dụ tốc độ R hỗ trợ 9 kết nối ứng dụng mới yecircu cầu 1

TCP coacute tốc độ R10 ứng dụng mới yecircu cầu 11

TCP coacute tốc độ R2

Transport Layer 3-102

Mocirc higravenh trễ

Hỏi Mất bao lacircu để nhận 1 đối tượng từ Web server sau khi gửi yecircu cầu

Bỏ qua tắc nghẽn trễ bị ảnh hưởng bởi

thiết lập kết nối TCP trễ truyền dữ liệu khởi động chậm

Notation caacutec giả định Giả sử một kết nối giữa

client vagrave server coacute tốc độ R

S MSS (bits) O kiacutech thước đối tượng

(bits) khocircng truyền lại (khocircng

mất maacutet khocircng hỏng)

Kiacutech thước cửa sổ Giả định 1 cửa sổ tắc

nghẽn cố định coacute W đoạn Sau đoacute cửa sổ thay đổi

mocirc higravenh khởi động chậm

Transport Layer 3-103

Cửa sổ tắc nghẽn cố định (1)

Trường hợp đầu tiecircnWSR gt RTT + SR cho

đoạn đầu tiecircn trong cửa sổ trả về trước khi cửa sổ dữ liệu gửi ACK

trễ = 2RTT + OR

Transport Layer 3-104

Cửa sổ tắc nghẽn cố định (2)

Trường hợp thứ hai WSR lt RTT + SR sent

chờ cho ACK sau khi gửi dữ liệu

trễ = 2RTT + OR+ (K-1)[SR + RTT - WSR]

Transport Layer 3-105

TCP Mocirc higravenh trễ Khởi động chậm (1)

Bacircy giờ giả sử kiacutech thước cửa sổ tăng lecircn tugravey theo quaacute trigravenh khởi động chậm

Độ trễ của một đối tượng sẽ lagrave

R

S

R

SRTTP

R

ORTTLatency P )12(2

trong đoacute P lagrave số lần TCP rảnh ở tại server

1min KQP

- trong đoacute Q lagrave số lần server rảnh nếu đối tượng đatilde khởi tạo kiacutech thước

- vagrave K lagrave số lượng cửa sổ bao trugravem đối tượng

Transport Layer 3-106

TCP Mocirc higravenh trễ Khởi động chậm (2)

RTT

initia te TCPconnection

requestobject

first w indow= S R

second w indow= 2S R

third w indow= 4S R

fourth w indow= 8S R

com pletetransm issionobject

delivered

tim e atc lient

tim e atserver

Viacute dụbull OS = 15 đoạnbull K = 4 cửa sổbull Q = 2bull P = minK-1Q = 2

Server rảnh P=2 lần

Caacutec thagravenh phần trễbull 2 RTT dagravenh cho thiết lập kết nối vagrave yecircu cầubull OR để truyền đối tượngbullthời gian server rảnh bởi vigrave khởi động chậm

Server rảnh P = minK-1Q lần

Transport Layer 3-107

TCP Mocirc higravenh trễ(3)

R

S

R

SRTTPRTT

R

O

R

SRTT

R

SRTT

R

O

idleTimeRTTR

O

P

kP

k

P

pp

)12(][2

]2[2

2delay

1

1

1

th window after the timeidle 2 1 kR

SRTT

R

S k

ementacknowledg receivesserver until

segment send tostartsserver when from time RTTR

S

window kth the transmit totime2 1

R

Sk

RTT

initia te TCPconnection

requestobject

first w indow= S R

second w indow= 2S R

third w indow= 4S R

fourth w indow= 8S R

com pletetransm issionobject

delivered

tim e atc lient

tim e atserver

Transport Layer 3-108

TCP Mocirc higravenh trễ (4)

)1(log

)1(logmin

12min

222min

222min

2

2

110

110

S

OS

Okk

S

Ok

SOk

OSSSkK

k

k

k

caacutech tiacutenh toaacuten Q tương tự (xem HW)

K = số lượng cửa sổ bao trugravem đối tượngLagravem thế nagraveo tiacutenh được K

Transport Layer 3-109

HTTP Mocirc higravenh Giả sử trang Web chứa

1 trang HTML (kiacutech thước O bits) M higravenh ảnh (mỗi caacutei kiacutech thướcO bits)

HTTP khocircng bền vững M+1 TCP kết nối Thời gian đaacutep ứng = (M+1)OR + (M+1)2RTT + tổng số thời

gian rảnh HTTP bền vững

2 RTT để yecircu cầu vagrave nhận file HTML 1 RTT để yecircu cầu vagrave nhận M higravenh ảnh Thời gian đaacutep ứng = (M+1)OR + 3RTT + tổng số thời gian

rảnh HTTP khocircng bền vững với X kết nối song song

Giả sử MX lagrave số nguyecircn 1 TCP kết nối cho file MX thiết lập caacutec kết nối song song cho caacutec higravenh ảnh Thời gian đaacutep ứng = (M+1)OR + (MX + 1)2RTT + tổng số

thời gian rảnh

Transport Layer 3-110

02468

101214161820

28Kbps

100Kbps

1Mbps

10Mbps

non-persistent

persistent

parallel non-persistent

HTTP thời gian đaacutep ứng (giacircy)RTT = 100 msec O = 5 Kbytes M=10 vagrave X=5

Với băng thocircng thấp thời gian kết nối amp đaacutep ứng trội hơn thời gian truyền

Caacutec kết nối bền vững chỉ cho sự cải thiện khocircng đaacuteng kể trecircn caacutec kết nối song song

Transport Layer 3-111

0

10

20

30

40

50

60

70

28Kbps

100Kbps

1Mbps

10Mbps

non-persistent

persistent

parallel non-persistent

HTTP thời gian đaacutep ứng (giacircy)

RTT =1 sec O = 5 Kbytes M=10 and X=5

Với RTT lớn hơn thời gian đaacutep ứng trội hơn thời gian trễ chờ thiết lập kết nốiTCP amp khởi động chậm Caacutec kết nối bền vững bacircy giờ cho thấy cải thiện rotilde rệt đặc biệtvới caacutec mạng băng thocircng cao

Transport Layer 3-112

Chương 3 Tổng kết caacutec nguyecircn lyacute của caacutec

dịch vụ lớp transport multiplexing

demultiplexing truyền dữ liệu tin cậy điều khiển luồng điều khiển tắc nghẽn

khởi tạo vagrave hiện thực trong Internet UDP TCP

Tiếp theo nghiecircn cứu xong

caacutec vấn đề ldquongoagravei biecircnrdquo (caacutec lớp application transport)

chuẩn bị vagraveo phần ldquolotildeirdquo của mạng

  • Slide 1
  • Chương 3 Lớp Transport
  • Chương 3 Nội dung trigravenh bagravey
  • Caacutec dịch vụ vagrave giao thức Transport
  • Lớp Transport với lớp network
  • Caacutec giao thức lớp transport trecircn Internet
  • Slide 7
  • Multiplexingdemultiplexing
  • Demultiplexing lagravem việc như thế nagraveo
  • Demultiplexing khocircng kết nối
  • Demultiplexing khocircng kết nối (tiếp)
  • Demultiplexing hướng kết nối
  • Demultiplexing hướng kết nối (tiếp)
  • Demultiplexing hướng kết nối Threaded Web Server
  • Slide 15
  • UDP User Datagram Protocol [RFC 768]
  • UDP (tt)
  • UDP checksum
  • Viacute dụ Checksum
  • Slide 20
  • Caacutec nguyecircn lyacute truyền dữ liệu tin cậy
  • Slide 22
  • Slide 23
  • Truyền dữ liệu tin cậy
  • Slide 25
  • Rdt10 truyền dữ liệu tin cậy trecircn 1 kecircnh truyền tin cậy
  • Rdt20 kecircnh với caacutec lỗi
  • rdt20 đặc tả FSM
  • rdt20 hoạt động khi khocircng lỗi
  • rdt20 hoạt động khi coacute lỗi
  • rdt20 coacute lỗ hổng nghiecircm trọng
  • rdt21 người gửi quản lyacute caacutec ACKNAK bị hỏng
  • Slide 33
  • rdt21 thảo luận
  • rdt22 một giao thức khocircng cần NAK
  • rdt22 gửi nhận caacutec mảnh
  • rdt30 caacutec kecircnh với lỗi vagrave mất maacutet
  • rdt30 gửi
  • hagravenh động của rdt30
  • Slide 40
  • Hiệu suất của rdt30
  • rdt30 hoạt động dừng-vagrave-chờ
  • Caacutec giao thức Pipelined
  • Pipelining độ khả dụng tăng
  • Go-Back-N
  • GBN becircn gửi mở rộng FSM
  • GBN becircn nhận mở rộng FSM
  • GBN hoạt động
  • Lặp coacute lựa chọn
  • Lặp coacute lựa chọn caacutec cửa sổ gửi nhận
  • Slide 51
  • Hoạt động của lặp coacute lựa chọn
  • Lặp coacute lựa chọn tigravenh trạng khoacute giải quyết
  • Slide 54
  • TCP Tổng quan RFCs 793 1122 1323 2018 2581
  • TCP cấu truacutec đoạn
  • Caacutec số thứ tự TCP vagrave ACK
  • TCP Round Trip Time vagraveTimeout
  • TCP Round Trip Time vagrave Timeout
  • Viacute dụ đaacutenh giaacute RTT
  • Slide 61
  • TCP truyền dữ liệu tin cậy
  • TCP caacutec sự kiện
  • TCP becircn gửi (đơn giản)
  • TCP caacutec tigravenh huống truyền lại
  • TCP caacutec tigravenh huống truyền lại (tt)
  • TCP sinh ra ACK [RFC 1122 RFC 2581]
  • Truyền lại nhanh
  • Giải thuật truyền lại nhanh
  • Slide 70
  • TCP điều khiển luồng
  • TCP điều khiển luồng caacutech lagravem
  • Slide 73
  • TCP quản lyacute kết nối
  • TCP quản lyacute kết nối (tt)
  • Slide 76
  • Slide 77
  • Slide 78
  • Caacutec nguyecircn lyacute điều khiển tắc nghẽn
  • Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 1
  • Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 2
  • Slide 82
  • Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 3
  • Slide 84
  • Caacutec caacutech tiếp cận đối với điều khiển tắc nghẽn
  • Viacute dụ điều khiển tắc nghẽn ATM ABR
  • Slide 87
  • Slide 88
  • TCP điều khiển tắc nghẽn additive tăng lecircn multiplicative giảm xuống
  • TCP điều khiển tắc nghẽn chi tiết
  • TCP khởi động chậm
  • TCP khởi động chậm (tt)
  • Tinh chế
  • Tinh chế nhận biết mất maacutet
  • Tổng kết TCP điều khiển tắc nghẽn
  • TCP điều khiển tắc nghẽn becircn gửi
  • TCP throughput
  • TCP tương lai
  • TCP tiacutenh cocircng bằng
  • Tại sao phải TCP cocircng bằng
  • TCP tiacutenh cocircng bằng (tt)
  • Mocirc higravenh trễ
  • Cửa sổ tắc nghẽn cố định (1)
  • Cửa sổ tắc nghẽn cố định (2)
  • TCP Mocirc higravenh trễ Khởi động chậm (1)
  • TCP Mocirc higravenh trễ Khởi động chậm (2)
  • TCP Mocirc higravenh trễ(3)
  • TCP Mocirc higravenh trễ (4)
  • HTTP Mocirc higravenh
  • Slide 110
  • Slide 111
  • Chương 3 Tổng kết

Transport Layer 3-34

rdt21 thảo luận

người gửi số thứ tự thecircm vagraveo

goacutei chỉ cần hai số thứ tự

(01) lagrave đủ Tại sao phải kiểm tra nếu việc

nhận ACKNAK bị hỏng

số trạng thaacutei tăng lecircn 2 lần trạng thaacutei phải ldquonhớrdquo

goacutei ldquohiện tạirdquo coacute số thứ tự lagrave 0 hay 1

người nhận phải kiểm tra coacute

nhận trugraveng goacutei khocircng trạng thaacutei chỉ rotilde coacute

hay khocircng mong chờ số thứ tự 0 hoặc 1

chuacute yacute người nhận khocircng biết ACKNAK vừa rồi của noacute coacute được người gửi nhận tốt hay khocircng

Transport Layer 3-35

rdt22 một giao thức khocircng cần NAK

chức năng giống như rdt21 chỉ dugraveng caacutec ACK thay cho NAK người nhận gửi ACK cho goacutei vừa

rồi đatilde nhận tốt người nhận phải rotilde ragraveng chegraven số thứ tự của goacutei vừa ACK

trugraveng ACK tại người gửi hậu quả giống như hagravenh động của NAK truyền lại goacutei vừa rồi

Transport Layer 3-36

rdt22 gửi nhận caacutec mảnh

Chờ cho gọi 0 từ

trecircn

sndpkt = make_pkt(0 data checksum)udt_send(sndpkt)

rdt_send(data)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) || isACK(rcvpkt1) )

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt0)

Chờ cho ACK

0

gửi phacircn mảnhFSM

Chờ cho gọi

0 từ dưới

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp has_seq1(rcvpkt)

extract(rcvpktdata)deliver_data(data)sndpkt = make_pkt(ACK1 chksum)udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp (corrupt(rcvpkt) || has_seq1(rcvpkt))

udt_send(sndpkt)

nhận phacircn mảnhFSM

Transport Layer 3-37

rdt30 caacutec kecircnh với lỗi vagrave mất maacutet

Giả định mới kecircnh ưu tiecircn cũng coacute thể lagravem mất caacutec goacutei (dữ liệu hoặc caacutec ACK) checksum số thứ tự

caacutec ACK caacutec việc truyền lại sẽ hỗ trợ nhưng khocircng đủ

Caacutech tiếp cận người gửi chờ ACK trong khoảng thời gian ldquochấp nhận đượcrdquo

truyền lại nếu khocircng nhận ACK trong khoảng thời gian nagravey

nếu goacutei (hoặc ACK) chỉ trễ (khocircng mất) truyền lại sẽ gacircy trugraveng

nhưng dugraveng số thứ tự sẽ giải quyết được

người nhận phải xaacutec định số thứ tự của goacutei vừa gửi ACK

cần bộ định thigrave đếm lugravei

Transport Layer 3-38

rdt30 gửi

sndpkt = make_pkt(0 data checksum)udt_send(sndpkt)start_timer

rdt_send(data)

Chờ cho

ACK 0

rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) ||isACK(rcvpkt1) )

Chờ cho gọi 1 từ trecircn

sndpkt = make_pkt(1 data checksum)udt_send(sndpkt)start_timer

rdt_send(data)

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt0)

rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) ||isACK(rcvpkt0) )

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt1)

stop_timerstop_timer

udt_send(sndpkt)start_timer

timeout

udt_send(sndpkt)start_timer

timeout

rdt_rcv(rcvpkt)

Chờ cho gọi 0 từ trecircn

Chờ cho

ACK 1

rdt_rcv(rcvpkt)

Transport Layer 3-39

hagravenh động của rdt30

Transport Layer 3-40

hagravenh động của rdt30

Transport Layer 3-41

Hiệu suất của rdt30

rdt30 lagravem việc được nhưng đaacutenh giaacute hiệu suất hơi rắc rối viacute dụ liecircn kết 1 Gbps trễ lan truyền giữa hai đầu cuối lagrave 15

ms goacutei 1KB

T truyền = 8kbpkt109 bsec

= 8 microsec

U sender độ khả dụng ndash

U sender

= 008

30008 = 000027

microseconds

L R

RTT + L R =

L (độ dagravei goacutei tiacutenh bằng bits)R (tốc độ truyền bps)

=

goacutei 1KB mỗi 30 msec -gt 33kBs trecircn đường truyền 1 Gbps giao thức network hạn chế việc dugraveng caacutec tagravei nguyecircn vật

lyacute

Transport Layer 3-42

rdt30 hoạt động dừng-vagrave-chờ

goacutei đầu tiecircn đatilde truyền t = 0

gửi nhận

RTT

goacutei cuối cugraveng đatilde truyền t = L R

goacutei đầu tiecircn đatilde đếngoacutei cuối cugraveng đatilde đến gửi ACK

ACK đến gửi goacutei kế tiếp t = RTT + L R

U sender

= 008

30008 = 000027

microseconds

L R

RTT + L R =

Transport Layer 3-43

Caacutec giao thức Pipelined

Pipelining người gửi cho pheacutep gửi nhiều goacutei đồng thời khocircng cần chờ baacuteo nhận được nhoacutem caacutec số thứ tự phải tăng dần phải coacute bộ nhớ đệm tại nơi gửi vagravehoặc nơi nhận

hai dạng phổ biến của caacutec giao thức pipelined go-Back-N Lặp coacute lựa chọn

Transport Layer 3-44

Pipelining độ khả dụng tăng

goacutei đầu tiecircn đatilde truyền t = 0

sender receiver

RTT

goacutei cuối cugraveng đatilde truyền t = L R

goacutei đầu tiecircn đatilde đếngoacutei cuối cugraveng đatilde đến gửi ACK

ACK đến gửi goacuteikế tiếp t = RTT + L R

bit cuối của goacutei thứ 2 đến gửi ACKbit cuối của goacutei thứ 3 đến gửi ACK

U sender

= 024

30008 = 00008

microseconds

3 L R

RTT + L R =

Độ khả dụng tăng lecircngấp 3 lần

Transport Layer 3-45

Go-Back-NBecircn gửi k-bit số thứ tự trong header của goacutei ldquocửa sổrdquo tăng lecircn đến N cho pheacutep gửi caacutec goacutei liecircn tục khocircng cần ACK

ACK(n) ACKs tất cả caacutec goacutei đến chứa số thứ tự n ndash ldquoACK tiacutech lũyrdquo coacute thể nhận caacutec ACK trugraveng lặp (xem becircn nhận)

định thigrave cho mỗi goacutei trecircn đường truyền timeout(n) gửi lại goacutei n vagrave tất cả caacutec goacutei coacute số thứ tự cao

hơn trong cửa sổ

Transport Layer 3-46

GBN becircn gửi mở rộng FSM

chờ start_timerudt_send(sndpkt[base])udt_send(sndpkt[base+1])hellipudt_send(sndpkt[nextseqnum-1])

timeout

rdt_send(data)

if (nextseqnum lt base+N) sndpkt[nextseqnum] = make_pkt(nextseqnumdatachksum) udt_send(sndpkt[nextseqnum]) if (base == nextseqnum) start_timer nextseqnum++ else refuse_data(data)

base = getacknum(rcvpkt)+1If (base == nextseqnum) stop_timer else start_timer

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)

base=1nextseqnum=1

rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)

Transport Layer 3-47

GBN becircn nhận mở rộng FSM

ACK-duy nhất luocircn luocircn gửi ACK cho goacutei đatilde nhận đuacuteng với số thứ tự xếp hạng cao nhất coacute thể sinh ra caacutec ACK trugraveng nhau chỉ cần nhớ expectedseqnum

goacutei khocircng theo thứ tự hủy -gt khocircng nhận vagraveo bộ đệm gửi lại ACK với số thứ tự xếp hạng cao nhất

chờ

udt_send(sndpkt)

default

rdt_rcv(rcvpkt) ampamp notcurrupt(rcvpkt) ampamp hasseqnum(rcvpktexpectedseqnum)

extract(rcvpktdata)deliver_data(data)sndpkt = make_pkt(expectedseqnumACKchksum)udt_send(sndpkt)expectedseqnum++

expectedseqnum=1sndpkt = make_pkt(expectedseqnumACKchksum)

Transport Layer 3-48

GBN hoạt động

Transport Layer 3-49

Lặp coacute lựa chọn

becircn nhận thocircng baacuteo đatilde nhận đuacuteng tất cả từng goacutei một đệm (buffer) caacutec goacutei nếu cần thiết

becircn gửi chỉ gửi lại caacutec goacutei nagraveo khocircng nhận được ACK becircn gửi định thigrave đối với mỗi goacutei khocircng gửi ACK

cửa sổ becircn gửi N số thứ tự liecircn tục hạn chế số thứ tự caacutec goacutei khocircng gửi ACK

Transport Layer 3-50

Lặp coacute lựa chọn caacutec cửa sổ gửi nhận

Transport Layer 3-51

Lặp coacute lựa chọn

dữ liệu từ lớp trecircn nếu số thứ tự kế tiếp sẵn

sagraveng trong cửa sổ gửi goacutei

timeout(n) gửi lại goacutei n taacutei khởi tạo

bộ định thigrave

ACK(n) trong [sendbasesendbase+N]

đaacutenh dấu goacutei n lagrave đatilde nhận nếu goacutei khocircng ACK coacute n

nhỏ nhất dịch chuyển cửa sổ base đến số thứ tự khocircng ACK kế tiếp

Gửigoacutei n trong [rcvbase

rcvbase+N-1]

gửi ACK(n) khocircng thứ tự đệm

(buffer) coacute thứ tự truyền (cũng

truyền caacutec goacutei đatilde đệm coacute thứ tự) dịch chuyển cửa sổ đến goacutei chưa nhận kế tiếp

goacutei n trong [rcvbase-Nrcvbase-1]

ACK(n)

ngược lại lờ đi

Nhận

Transport Layer 3-52

Hoạt động của lặp coacute lựa chọn

Transport Layer 3-53

Lặp coacute lựa chọntigravenh trạng khoacute giải quyếtViacute dụ Số thứ tự 0 1 2 3 Kiacutech thước cửa sổ = 3

becircn nhận khocircng thấy sự khaacutec nhau trong 2 tigravenh huống

chuyển khocircng chiacutenh xaacutec dữ liệu trugraveng lặp như dữ liệu mới trong (a)

Hỏi quan hệ giữa datildey số thứ tự vagrave kiacutech thước cửa sổ

Transport Layer 3-54

Chương 3 Nội dung trigravenh bagravey

31 Caacutec dịch vụ lớp Transport

32 Multiplexing vagrave demultiplexing

33 Vận chuyển khocircng kết nối UDP

34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy

35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối

36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn

37 Điều khiển tắc nghẽn TCP

Transport Layer 3-55

TCP Tổng quan RFCs 793 1122 1323 2018 2581

dữ liệu full duplex luồng dữ liệu đi 2 chiều

trong cugraveng một kết nối MSS maximum

segment size ndash kiacutech thước đoạn tối đa

hướng kết nối bắt tay (trao đổi caacutec

thocircng điệp điều khiển) trạng thaacutei becircn gửi becircn nhận trước khi trao đổi dữ liệu

điều khiển luồng becircn gửi sẽ khocircng lấn aacutet

becircn nhận

point-to-point một becircn gửi một becircn

nhận tin cậy dograveng byte coacute

thứ tự khocircng ldquoranh giới thocircng

điệprdquo kecircnh liecircn lạc

TCP điều khiển luồng vagrave tắc nghẽn thiết lập kiacutech thước cửa sổ

caacutec bộ đệm gửi amp nhận

socketdoor

T C Psend buffer

T C Preceive buffer

socketdoor

segm ent

applicationwrites data

applicationreads data

Transport Layer 3-56

TCP cấu truacutec đoạn

port nguồn port điacutech

32 bits

dữ liệu ứng dụng(độ dagravei thay đổi)

số thứ tự

số ACKcửa sổ nhận

con trỏ URGchecksum

FSRPAUheadlen

notused

Tugravey chọn (độ dagravei thay đổi)

URG dữ liệu khẩn cấp(thường khocircng dugraveng)

ACK ACK hợp lệ

PSH push data now(thường khocircng dugraveng)

RST SYN FINthiết lập kết nối

(caacutec lệnh thiết lậpchia nhỏ)

số byte becircn nhận sẵn sagraveng chấp nhận

đếm bởi số bytecủa dữ liệu

Internetchecksum

(giống UDP)

Transport Layer 3-57

Caacutec số thứ tự TCP vagrave ACKCaacutec số thứ tự

dograveng byte ldquođaacutenh sốrdquo byte đầu tiecircn trong dữ liệu của đoạn

caacutec ACK số thứ tự của byte

kế tiếp được chờ đợi từ phiacutea becircn kia

ACK tiacutech lũyHỏi lagravem thế nagraveo becircn

nhận quản lyacute caacutec đoạn khocircng thứ tự Trả lời TCP khocircng

đề cập tugravey thuộc người hiện thực

Host A Host B

Seq=42 ACK=79 data = lsquoCrsquo

Seq=79 ACK=43 data = lsquoCrsquo

Seq=43 ACK=80

UsernhậplsquoCrsquo

host ACKsnhận phản hồi

lsquoCrsquo

host ACKsbaacuteo nhận

lsquoCrsquo phản hồingược lại lsquoCrsquo

timetigravenh huống telnet đơn giản

Transport Layer 3-58

TCP Round Trip Time vagraveTimeout

Hỏi Lagravem thế nagraveo để thiết lập giaacute trị TCP timeout

dagravei hơn RTT khaacutec với RTT

quaacute ngắn timeout sớm truyền lại khocircng

cần thiết quaacute dagravei phản ứng

chậm đối với việc mất maacutet goacutei

Hỏi Lagravem thế nagraveo để thiết lập RTT

SampleRTT thời gian được đo từ khi truyền đoạn đến khi baacuteo nhận ACK lờ đi việc truyền lại

SampleRTT sẽ thay đổi muốn ước lượng RTT ldquomượt hơnrdquo tiacutenh trung bigravenh một số giaacute

trị đo được gần đoacute khocircng chỉ SampleRTT hiện tại

Transport Layer 3-59

TCP Round Trip Time vagrave Timeout

EstimatedRTT = (1- )EstimatedRTT + SampleRTT

giaacute trị đặc trưng = 0125

Transport Layer 3-60

Viacute dụ đaacutenh giaacute RTTRTT gaiacsumassedu to fantasiaeurecomfr

100

150

200

250

300

350

1 8 15 22 29 36 43 50 57 64 71 78 85 92 99 106

time (seconnds)

RTT

(mill

isec

onds

)

SampleRTT Estimated RTT

Transport Layer 3-61

TCP Round Trip Time vagrave Timeout

Thiết lập timeout EstimtedRTT cộng ldquohệ số dự trữ an toagravenrdquo

sự biến thiecircn lớn trong EstimatedRTT -gt hệ số dự trữ an toagraven lớn hơn ước lượng đầu tiecircn về sự biến thiecircn của SampleRTT từ EstimatedRTT

TimeoutInterval = EstimatedRTT + 4DevRTT

DevRTT = (1-)DevRTT + |SampleRTT-EstimatedRTT|

(tiecircu biểu = 025)

Sau đoacute thiết lập timeout interval

Transport Layer 3-62

TCP truyền dữ liệu tin cậy

TCP tạo dịch vụ rdt trecircn dịch vụ khocircng tin cậy IP

caacutec đoạn Pipelined caacutec ACK tiacutech lũy TCP dugraveng bộ định thigrave

truyền lại đơn

Truyền lại được kiacutech hoạt bởi caacutec sự kiện timeout caacutec ack trugraveng lặp

luacutec đầu khảo saacutet caacutec becircn gửi TCP đơn giản lờ đi caacutec ack trugraveng lặp lờ đi điều khiển luồng

điều khiển tắc nghẽn

Transport Layer 3-63

TCP caacutec sự kiệndữ liệu đatilde nhận từ ứng

dụng tạo đoạn với số thứ

tự của noacute số thứ tự lagrave số theo

byte dữ liệu đầu tiecircn khởi động bộ định thigrave

nếu chưa chạy khoảng thời gian hết

hạn TimeOutInterval

timeout gửi lại đoạn nagraveo gacircy

ra timeout khởi động lại bộ định

thigrave Ack đatilde nhận

cập nhật caacutei gigrave sẽ được ACK

khởi động bộ định thigrave nếu coacute caacutec đoạn cograven chờ

Transport Layer 3-64

TCP becircn gửi(đơn giản)

NextSeqNum = InitialSeqNum SendBase = InitialSeqNum

loop (forever) switch(event)

event data received from application above create TCP segment with sequence number NextSeqNum if (timer currently not running) start timer pass segment to IP NextSeqNum = NextSeqNum + length(data)

event timer timeout retransmit not-yet-acknowledged segment with smallest sequence number start timer

event ACK received with ACK field value of y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer

end of loop forever

Chuacute thiacutechbull SendBase-1 byte vừa được ACK tiacutech lũy Viacute dụbull SendBase-1 = 71y= 73 vigrave thế becircn nhận muốn 73+ y gt SendBase vigrave thế dữ liệu mới được chấp nhận

Transport Layer 3-65

TCP caacutec tigravenh huống truyền lại

Host A

Seq=100 20 bytes data

ACK=100

timetimeout sớm

Host B

Seq=92 8 bytes data

ACK=120

Seq=92 8 bytes data

Seq=

92

tim

eout

ACK=120

Host A

Seq=92 8 bytes data

ACK=100

loss

tim

eout

tigravenh huống mất ACK

Host B

X

Seq=92 8 bytes data

ACK=100

time

Seq=

92

tim

eout

SendBase= 100

SendBase= 120

SendBase= 120

Sendbase= 100

Transport Layer 3-66

TCP caacutec tigravenh huống truyền lại (tt)Host A

Seq=92 8 bytes data

ACK=100

loss

tim

eout

Cumulative ACK scenario

Host B

X

Seq=100 20 bytes data

ACK=120

time

SendBase= 120

Transport Layer 3-67

TCP sinh ra ACK [RFC 1122 RFC 2581]

Sự kiện tại becircn nhận

Đoạn đến với đuacuteng số thứ tự mong muốn Tất cả dữ liệu đếnđatilde được ACK

Đoạn đến với đuacuteng số thứ tự mong muốn Một đoạn khaacutec đangchờ ACK

Caacutec đoạn đến khocircng thứ tựlớn hơn số thứ tự đoạn mong muốnCoacute khoảng trống

Đoạn đếnlấp đầy từng phần hoặc toagraven bộkhoảng trống

TCP becircn nhận hagravenh động

ACK trễ Chờ đến 500mscho đoạn kế tiếp Nếu khocircng coacute đoạnkế tiếp gửi ACK

Gửi ngay một ACK tiacutech lũy chấp nhậncho cả caacutec đoạn theo thứ tự

Gửi ngay ACK trugraveng lặp chỉ thị số thứ tựđoạn của byte kế tiếp đang mong chờ

Gửi ngay ACK với điều kiện lagrave đoạnbắt đầu ngay điểm coacute khoảng trống

Transport Layer 3-68

Truyền lại nhanh

Chu kỳ Time-out thường tương đối dagravei độ trễ dagravei trước khi gửi

lại goacutei đatilde mất

Xaacutec nhận caacutec đoạn đatilde mất bằng caacutec ACK trugraveng lặp becircn gửi thường gửi

nhiều đoạn song song Nếu đoạn bị mất sẽ

xảy ra tigravenh trạng giống như nhiều ACK trugraveng nhau

Nếu becircn gửi nhận 3 ACK của cugraveng một dữ liệu noacute cho lagrave đoạn sau dữ liệu đatilde ACK bị mất Truyền lại nhanh gửi

lại đoạn trước khi bộ định thigrave hết hạn

Transport Layer 3-69

sự kiện ACK đatilde nhận với trường lagrave y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer else increment count of dup ACKs received for y if (count of dup ACKs received for y = 3) resend segment with sequence number y

Giải thuật truyền lại nhanh

một ACK trugraveng lặp cho đoạn đatilde được ACK

Truyền lại nhanh

Transport Layer 3-70

Chương 3 Nội dung trigravenh bagravey

31 Caacutec dịch vụ lớp Transport

32 Multiplexing vagrave demultiplexing

33 Vận chuyển khocircng kết nối UDP

34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy

35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối

36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn

37 Điều khiển tắc nghẽn TCP

Transport Layer 3-71

TCP điều khiển luồng

becircn nhận của kết nối TCP coacute một bộ đệm nhận

dịch vụ so trugraveng tốc độ so trugraveng tốc độ gửi với tốc độ nhận của ứng dụng

tiến trigravenh ứng dụng coacute thể chậm tại luacutec đọc bộ đệm

becircn gửi sẽ khocircng lagravem tragraven bộ đệm vigrave truyền quaacute nhiều vagrave

quaacute nhanh

điều khiển luồng

Transport Layer 3-72

TCP điều khiển luồng caacutech lagravem

(Giả sử becircn nhận TCP loại bỏ caacutec đoạn khocircng coacute thứ tự)

dự phograveng trong bộ đệm= RcvWindow

= RcvBuffer-[LastByteRcvd - LastByteRead]

Becircn nhận thocircng baacuteo khoảng dự trữ nhờ giaacute trị RcvWindow trong caacutec đoạn

Becircn gửi hạn chế dữ liệu khocircng được ACK vagraveo RcvWindow bảo đảm bộ đệm nhận

khocircng tragraven

Transport Layer 3-73

Chương 3 Nội dung trigravenh bagravey

31 Caacutec dịch vụ lớp Transport

32 Multiplexing vagrave demultiplexing

33 Vận chuyển khocircng kết nối UDP

34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy

35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối

36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn

37 Điều khiển tắc nghẽn TCP

Transport Layer 3-74

TCP quản lyacute kết nối

Chuacute yacute Becircn gửi vagrave becircn nhận TCP thiết lập ldquokết nốirdquo trước khi trao đổi dữ liệu

khởi tạo caacutec biến TCP caacutec số thứ tự đoạn thocircng tin caacutec bộ đệm điều

khiển luồng (như RcvWindow)

client người khởi xướng kết nối

Socket clientSocket = new Socket(hostnameport

number) server được tiếp xuacutec bởi

client Socket connectionSocket =

welcomeSocketaccept()

3 phương phaacutep bắt tay

Bước 1 client host gửi đoạnTCP SYN đến server xaacutec định số thứ tự khởi đầu khocircng phải dữ liệu

Bước 2 server host nhận SYN trả lời với đoạn SYNACK

server cấp phaacutet caacutec bộ đệm

xaacutec định số thứ tự khởi đầuBước 3 client nhận SYNACK trả

lời với đoạn ACK (coacute thể chứa dữ liệu)

Transport Layer 3-75

TCP quản lyacute kết nối (tt)

Đoacuteng một kết nối

client đoacuteng socket clientSocketclose()

Bước 1 client gửi đoạn điều khiển TCP FIN đến server

Bước 2 server nhận FIN trả lời với ACK Đoacuteng kết nối gửi FIN

client

FIN

server

ACK

ACK

FIN

đoacuteng

đoacuteng

đatilde đoacutengthời g

ian c

hờ

Transport Layer 3-76

TCP quản lyacute kết nối (tt)

Bước 3 client nhận FIN trả lời với ACK

Trong khoảng ldquothời gian chờrdquo ndash sẽ phản hồi với ACK để nhận caacutec FIN

Bước 4 server nhận ACK Kết nối đatilde đoacuteng

Chuacute yacute với một sửa đổi nhỏ coacute thể quản lyacute nhiều FIN đồng thời

client

FIN

server

ACK

ACK

FIN

đang đoacuteng

đang đoacuteng

đatilde đoacuteng

thời g

ian c

hờ

đatilde đoacuteng

Transport Layer 3-77

TCP quản lyacute kết nối (tt)

chu kỳ sống củaTCP client

chu kỳ sống củaTCP server

Transport Layer 3-78

Chương 3 Nội dung trigravenh bagravey

31 Caacutec dịch vụ lớp Transport

32 Multiplexing vagrave demultiplexing

33 Vận chuyển khocircng kết nối UDP

34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy

35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối

36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn

37 Điều khiển tắc nghẽn TCP

Transport Layer 3-79

Caacutec nguyecircn lyacute điều khiển tắc nghẽn

Tắc nghẽn ldquoquaacute nhiều nguồn gửi quaacute nhanh vagrave quaacute nhiều

dữ liệu đến mạngrdquo khaacutec với điều khiển luồng caacutec biểu hiện

caacutec goacutei bị mất (tragraven bộ đệm tại caacutec router) caacutec độ trễ quaacute dagravei (xếp hagraveng trong bộ đệm

của router) lagrave 1 trong 10 vấn đề nan giải nhất

Transport Layer 3-80

Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 1

2 gửi 2 nhận 1 router caacutec bộ

đệm khocircng giới hạn

khocircng coacute truyền lại

caacutec độ trễ lớn hơn khi tắc nghẽn

năng suất coacute thể đạt tối đa

unlimited shared output link buffers

Host Ain original data

Host B

out

Transport Layer 3-81

Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 2

1 router caacutec bộ đệm coacute giới hạn becircn gửi truyền lại caacutec goacutei đatilde mất

chia sẻ vocirc hạncaacutec bộ đệm ouput

Host A in dữ liệu gốc

Host B

out

in dữ liệu gốc cugraveng với dữ liệu truyền lại

Transport Layer 3-82

Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 2 luocircn luocircn

truyền lại ldquohoagraven toagravenrdquo chỉ khi mất maacutet

truyền lại vigrave trễ (khocircng mất) lagravem cho lớn hơn với cugraveng

in

out

=

in

out

gt

in

out

ldquocaacutec chi phiacuterdquo của tắc nghẽn nhiều việc (truyền lại) caacutec truyền lại khocircng cần thiết liecircn kết nhiều bản sao của

goacutei

R2

R2in

ou

t

b

R2

R2in

ou

t

a

R2

R2in

ou

t

c

R4

R3

Transport Layer 3-83

Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 3 4 người gửi caacutec đường qua nhiều hop timeouttruyền lại

in

Hỏi điều gigrave xảy ra nếu vagrave tăng lecircn

in

chia sẻ vocirc hạncaacutec bộ đệm ouput

Host Ain dữ liệu gốc

Host B

out

in dữ liệu gốc cugraveng với dữ liệu truyền lại

Transport Layer 3-84

Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 3

ldquochi phiacuterdquo khaacutec của tắc nghẽn khi caacutec goacutei bị bỏ bất kỳ ldquokhả năng truyền

upstream dugraveng cho goacutei đoacute sẽ bị latildeng phiacuterdquo

Host A

Host B

o

u

t

Transport Layer 3-85

Caacutec caacutech tiếp cận đối với điều khiển tắc nghẽn

điều khiển tắc nghẽn end-end

khocircng coacute phản hồi rotilde ragraveng từ mạng

tắc nghẽn được suy ra từ việc quan saacutet caacutec hệ thống đầu cuối coacute mất maacutet trễ

tiếp cận được quản lyacute bởi TCP

điều khiển tắc nghẽn coacute sự hỗ trợ của mạng

caacutec router cung cấp phản hồi về caacutec hệ thống đầu cuối 1 bit duy nhất chỉ thị

tắc nghẽn (SNA DECbit TCPIP ECN ATM)

tốc độ sẽ gửi được xaacutec định rotilde ragraveng

2 caacutech

Transport Layer 3-86

Viacute dụ điều khiển tắc nghẽn ATM ABR

ABR tốc độ bit sẵn sagraveng

ldquodịch vụ mềm dẻordquo nếu đường gửi ldquochưa

hếtrdquo becircn gửi sẽ dugraveng

băng thocircng sẵn sagraveng nếu đường gửi tắc

nghẽn becircn gửi điều tiết với

tốc độ tối thiểu

RM (resource management)

gửi bởi becircn gửi rải raacutec với caacutec ocirc dữ liệu

caacutec bit trong ocirc thiết lập bởi caacutec switch bit NI khocircng tăng tốc độ

(tắc nghẽn nhẹ) bit CI tắc nghẽn rotilde rệt

Caacutec ocirc RM được trả về becircn gửi từ becircn nhận với nguyecircn vẹn caacutec bit

Transport Layer 3-87

Viacute dụ điều khiển tắc nghẽn ATM ABR

trường 2-byte ER trong ocirc RM switch đatilde tắc nghẽn coacute thể coacute giaacute trị ER thấp hơn trong ocirc tốc độ gửi do đoacute coacute thể được hỗ trợ tối đa trecircn đường

EFCI bit trong caacutec ocirc dữ liệu được cagravei giaacute trị 1 trong switch đatilde tắc nghẽn nếu ocirc dữ liệu đứng trước ocirc RM coacute cagravei EFCI becircn gửi sẽ cagravei

bit CI trong ocirc RM trả về

Transport Layer 3-88

Chương 3 Nội dung trigravenh bagravey

31 Caacutec dịch vụ lớp Transport

32 Multiplexing vagrave demultiplexing

33 Vận chuyển khocircng kết nối UDP

34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy

35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối

36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn

37 Điều khiển tắc nghẽn TCP

Transport Layer 3-89

TCP điều khiển tắc nghẽn additive tăng lecircn multiplicative giảm xuống

8 Kbytes

16 Kbytes

24 Kbytes

time

congestionwindow

Caacutech tiếp cận tăng tốc độ truyền (kiacutech thước cửa sổ) tigravem khả năng băng thocircng coacute thể cho đến khi coacute mất maacutet xảy ra additive tăng lecircn tăng CongWin bởi 1 MSS

mỗi RTT cho đến khi coacute mất maacutet xảy ra multiplicative giảm xuống bỏ CongWin trong

nửa giai đoạn sau khi mất maacutet

timekiacutech

thư

ớc

cửa

sổ

tắc

nghẽ

n

Tigravem kiếm băng thocircng

Transport Layer 3-90

TCP điều khiển tắc nghẽn chi tiết

becircn gửi hạn chế việc truyền LastByteSent-LastByteAcked

CongWin Cocircng thức

CongWin thay đổi chức năng lagrave nhận biết tắc nghẽn trecircn mạng

Lagravem thế nagraveo becircn gửi nhận biết tắc nghẽn

mất maacutet xảy ra = timeout hoặc 3 ack trugraveng lặp

becircn gửi giảm tốc độ (CongWin) sau khi mất maacutet xảy ra

3 cơ chế AIMD khởi động chậm thận trọng sau khi coacute

caacutec sự kiện timeout

tốc độ = CongWin

RTT Bytess

Transport Layer 3-91

TCP khởi động chậm

Khi kết nối bắt đầu CongWin = 1 MSS Viacute dụ MSS = 500 bytes

amp RTT = 200 ms tốc độ khởi tạo = 20

kbps

băng thocircng sẵn sagraveng coacute thể gtgt MSSRTT mong muốn nhanh

choacuteng tăng tốc lecircn tốc độ coacute thể đaacutep ứng

Khi kết nối bắt đầu tăng tốc lecircn rất nhanh cho đến khi sự cố mất maacutet xảy ra đầu tiecircn

Transport Layer 3-92

TCP khởi động chậm (tt)

Khi kết nối bắt đầu tăng tốc lecircn rất nhanh cho đến khi sự cố mất maacutet xảy ra đầu tiecircn nhacircn đocirci CongWin mỗi

RTT hoagraven thagravenh nhờ tăng CongWin ứng với mỗi ACK đatilde nhận

Tổng kết tốc độ khởi đầu lagrave chậm nhưng sau đoacute tăng tốc rất nhanh

Host A

1 đoạn

RTT

Host B

thời gian

2 đoạn

4 đoạn

Transport Layer 3-93

Tinh chếHỏi Khi nagraveo việc tăng

tốc trở thagravenh tuyến tiacutenh

Trả lời Khi CongWin đạt đến 12 giaacute trị của noacute trước khi timeout

Hiện thực Ngưỡng thay đổi Tại thời điểm coacute sự cố

mất maacutet ngưỡng được cagravei giaacute trị bằng frac12 của CongWin ngay trước đoacute

Transport Layer 3-94

Tinh chế nhận biết mất maacutet

Sau 3 ACK trugraveng lặp CongWin sẽ giảm 12 kiacutech thước cửa sổ

tăng tuyến tiacutenh nhưng sau sự cố

timeout CongWin thay giaacute trị

bằng 1 MSS kiacutech thước cửa sổ

tăng cấp lũy thừa khi đến một ngưỡng

thigrave tăng tuyến tiacutenh

3 ACK trugraveng nhau chỉ ra khả năng truyền của mạng timeout chỉ thị ldquonhiều cảnh baacuteordquo về tigravenh huống tắc nghẽn

Nguyecircn lyacute

Transport Layer 3-95

Tổng kết TCP điều khiển tắc nghẽn

Khi CongWin dưới Threshold becircn gửi đang trong giai đoạn khởi động chậm kiacutech thước cửa sổ tăng nhanh theo cấp lũy thừa

Khi CongWin trecircn Threshold becircn gửi đang trong giai đoạn traacutenh tắc nghẽn kiacutech thước cửa sổ tăng nhanh theo cấp tuyến tiacutenh

Khi coacute 3 ACK trugraveng lặp xảy ra Threshold = CongWin2 vagrave CongWin = Threshold

Khi timeout xảy ra Threshold = CongWin2 vagrave CongWin = 1 MSS

Transport Layer 3-96

TCP điều khiển tắc nghẽn becircn gửi

Trạng thaacutei Sự kiện TCP becircn gửi hagravenh động Diễn giải

Slow Start (SS)-Khởi động chậm

ACK baacuteo nhận cho dữ liệu chưa ACK trước đoacute

CongWin = CongWin + MSS If (CongWin gt Threshold) cagravei đặt trạng thaacutei ldquoTraacutenh tắc nghẽnrdquo

Hậu quả lagravem tăng gấp đocirci CongWin mỗi RTT

CongestionAvoidance (CA) ndashTraacutenh tắc nghẽn

ACK baacuteo nhận cho dữ liệu chưa ACK trước đoacute

CongWin = CongWin+MSS (MSSCongWin)

Additive tăng lecircn lagravem tăng CongWin lecircn 1 MSS mỗi RTT

SS hoặc CA Sự cố mất maacutet xảy ra khi thấy coacute 3 ACK trugraveng lặp

Threshold = CongWin2 CongWin = Thresholdcagravei đặt trạng thaacutei ldquoTraacutenh tắc nghẽnrdquo

Khocirci phục nhanh hiện thực giảm xuống multiplicative CongWin sẽ khocircng giảm xuống dưới 1 MSS

SS hoặc CA Timeout Threshold = CongWin2 CongWin = 1 MSScagravei đặt trạng thaacutei ldquoKhởi động chậmrdquo

Vagraveo chế độ ldquoKhởi động chậmrdquo

SS hoặc CA ACK trugraveng lặp

Đếm ACK tăng lecircn cho đoạn vừa được ACK

CongWin vagrave Threshold khocircng thay đổi

Transport Layer 3-97

TCP throughput

Throughout trung bigravenh của TCP biểu diễn qua kiacutech thước của sổ vagrave RTT Bỏ qua trạng thaacutei ldquoKhởi động chậmrdquo

Cho W lagrave kiacutech thước cửa sổ khi coacute mất maacutet xảy ra

Khi kiacutech thước cửa sổ = W lưu lượng = WRTT

Chỉ ngay sau khi mất maacutet cửa sổ giảm xuống = W2 lưu lượng = W2RTT

throughout trung bigravenh 075 WRTT

Transport Layer 3-98

TCP tương lai

Viacute dụ caacutec đoạn dagravei 1500 byte RTT 100ms lưu lượng 10 Gbps

Kiacutech thước cửa sổ yecircu cầu W = 83333 đoạn trecircn đường truyền

Lưu lượng trong caacutec trường hợp mất maacutet

L = 210-10

Phiecircn bản mới của TCP dagravenh cho nhu cầu tốc độ cao

LRTT

MSS221

Transport Layer 3-99

Mục tiecircu nếu K phiecircn lagravem việc TCP chia sẻ kết nối cổ chai của băng thocircng lagrave R mỗi phiecircn coacute tốc độ trung bigravenh lagrave RK

TCP kết nối 1

router cổ chaikhả năng R

TCP kết nối 2

TCP tiacutenh cocircng bằng

Transport Layer 3-100

Tại sao phải TCP cocircng bằng

2 phiecircn lagravem việc cạnh tranh nhau Additive tăng lưu lượng tăng multiplicative giảm lưu lượng tương xứng

R

R

chia sẻ băng thocircng bằng nhau

Connection 1 throughputConnect

ion 2

th

roughput

traacutenh tắc nghẽn additive tăng lecircnmất maacutet giảm cửa sổ bằng 12

traacutenh tắc nghẽn additive tăng lecircnmất maacutet giảm cửa sổ bằng 12

Transport Layer 3-101

TCP tiacutenh cocircng bằng (tt)

Tiacutenh cocircng bằng amp UDP nhiều ứng dụng

thường khocircng dugraveng TCP khocircng muốn tốc độ bị

điều tiết do điều khiển tắc nghẽn

Thay bằng dugraveng UDP truyền audiovideo với

tốc độ ổn định chịu được mất maacutet

Nghiecircn cứu giao thức thacircn thiện với TCP

Tiacutenh cocircng bằng amp caacutec kết nối TCP song song

khocircng coacute gigrave ngăn cản việc ứng dụng mở caacutec kết nối song song giữa 2 host

Trigravenh duyệt Web lagravem giống như thế

Viacute dụ tốc độ R hỗ trợ 9 kết nối ứng dụng mới yecircu cầu 1

TCP coacute tốc độ R10 ứng dụng mới yecircu cầu 11

TCP coacute tốc độ R2

Transport Layer 3-102

Mocirc higravenh trễ

Hỏi Mất bao lacircu để nhận 1 đối tượng từ Web server sau khi gửi yecircu cầu

Bỏ qua tắc nghẽn trễ bị ảnh hưởng bởi

thiết lập kết nối TCP trễ truyền dữ liệu khởi động chậm

Notation caacutec giả định Giả sử một kết nối giữa

client vagrave server coacute tốc độ R

S MSS (bits) O kiacutech thước đối tượng

(bits) khocircng truyền lại (khocircng

mất maacutet khocircng hỏng)

Kiacutech thước cửa sổ Giả định 1 cửa sổ tắc

nghẽn cố định coacute W đoạn Sau đoacute cửa sổ thay đổi

mocirc higravenh khởi động chậm

Transport Layer 3-103

Cửa sổ tắc nghẽn cố định (1)

Trường hợp đầu tiecircnWSR gt RTT + SR cho

đoạn đầu tiecircn trong cửa sổ trả về trước khi cửa sổ dữ liệu gửi ACK

trễ = 2RTT + OR

Transport Layer 3-104

Cửa sổ tắc nghẽn cố định (2)

Trường hợp thứ hai WSR lt RTT + SR sent

chờ cho ACK sau khi gửi dữ liệu

trễ = 2RTT + OR+ (K-1)[SR + RTT - WSR]

Transport Layer 3-105

TCP Mocirc higravenh trễ Khởi động chậm (1)

Bacircy giờ giả sử kiacutech thước cửa sổ tăng lecircn tugravey theo quaacute trigravenh khởi động chậm

Độ trễ của một đối tượng sẽ lagrave

R

S

R

SRTTP

R

ORTTLatency P )12(2

trong đoacute P lagrave số lần TCP rảnh ở tại server

1min KQP

- trong đoacute Q lagrave số lần server rảnh nếu đối tượng đatilde khởi tạo kiacutech thước

- vagrave K lagrave số lượng cửa sổ bao trugravem đối tượng

Transport Layer 3-106

TCP Mocirc higravenh trễ Khởi động chậm (2)

RTT

initia te TCPconnection

requestobject

first w indow= S R

second w indow= 2S R

third w indow= 4S R

fourth w indow= 8S R

com pletetransm issionobject

delivered

tim e atc lient

tim e atserver

Viacute dụbull OS = 15 đoạnbull K = 4 cửa sổbull Q = 2bull P = minK-1Q = 2

Server rảnh P=2 lần

Caacutec thagravenh phần trễbull 2 RTT dagravenh cho thiết lập kết nối vagrave yecircu cầubull OR để truyền đối tượngbullthời gian server rảnh bởi vigrave khởi động chậm

Server rảnh P = minK-1Q lần

Transport Layer 3-107

TCP Mocirc higravenh trễ(3)

R

S

R

SRTTPRTT

R

O

R

SRTT

R

SRTT

R

O

idleTimeRTTR

O

P

kP

k

P

pp

)12(][2

]2[2

2delay

1

1

1

th window after the timeidle 2 1 kR

SRTT

R

S k

ementacknowledg receivesserver until

segment send tostartsserver when from time RTTR

S

window kth the transmit totime2 1

R

Sk

RTT

initia te TCPconnection

requestobject

first w indow= S R

second w indow= 2S R

third w indow= 4S R

fourth w indow= 8S R

com pletetransm issionobject

delivered

tim e atc lient

tim e atserver

Transport Layer 3-108

TCP Mocirc higravenh trễ (4)

)1(log

)1(logmin

12min

222min

222min

2

2

110

110

S

OS

Okk

S

Ok

SOk

OSSSkK

k

k

k

caacutech tiacutenh toaacuten Q tương tự (xem HW)

K = số lượng cửa sổ bao trugravem đối tượngLagravem thế nagraveo tiacutenh được K

Transport Layer 3-109

HTTP Mocirc higravenh Giả sử trang Web chứa

1 trang HTML (kiacutech thước O bits) M higravenh ảnh (mỗi caacutei kiacutech thướcO bits)

HTTP khocircng bền vững M+1 TCP kết nối Thời gian đaacutep ứng = (M+1)OR + (M+1)2RTT + tổng số thời

gian rảnh HTTP bền vững

2 RTT để yecircu cầu vagrave nhận file HTML 1 RTT để yecircu cầu vagrave nhận M higravenh ảnh Thời gian đaacutep ứng = (M+1)OR + 3RTT + tổng số thời gian

rảnh HTTP khocircng bền vững với X kết nối song song

Giả sử MX lagrave số nguyecircn 1 TCP kết nối cho file MX thiết lập caacutec kết nối song song cho caacutec higravenh ảnh Thời gian đaacutep ứng = (M+1)OR + (MX + 1)2RTT + tổng số

thời gian rảnh

Transport Layer 3-110

02468

101214161820

28Kbps

100Kbps

1Mbps

10Mbps

non-persistent

persistent

parallel non-persistent

HTTP thời gian đaacutep ứng (giacircy)RTT = 100 msec O = 5 Kbytes M=10 vagrave X=5

Với băng thocircng thấp thời gian kết nối amp đaacutep ứng trội hơn thời gian truyền

Caacutec kết nối bền vững chỉ cho sự cải thiện khocircng đaacuteng kể trecircn caacutec kết nối song song

Transport Layer 3-111

0

10

20

30

40

50

60

70

28Kbps

100Kbps

1Mbps

10Mbps

non-persistent

persistent

parallel non-persistent

HTTP thời gian đaacutep ứng (giacircy)

RTT =1 sec O = 5 Kbytes M=10 and X=5

Với RTT lớn hơn thời gian đaacutep ứng trội hơn thời gian trễ chờ thiết lập kết nốiTCP amp khởi động chậm Caacutec kết nối bền vững bacircy giờ cho thấy cải thiện rotilde rệt đặc biệtvới caacutec mạng băng thocircng cao

Transport Layer 3-112

Chương 3 Tổng kết caacutec nguyecircn lyacute của caacutec

dịch vụ lớp transport multiplexing

demultiplexing truyền dữ liệu tin cậy điều khiển luồng điều khiển tắc nghẽn

khởi tạo vagrave hiện thực trong Internet UDP TCP

Tiếp theo nghiecircn cứu xong

caacutec vấn đề ldquongoagravei biecircnrdquo (caacutec lớp application transport)

chuẩn bị vagraveo phần ldquolotildeirdquo của mạng

  • Slide 1
  • Chương 3 Lớp Transport
  • Chương 3 Nội dung trigravenh bagravey
  • Caacutec dịch vụ vagrave giao thức Transport
  • Lớp Transport với lớp network
  • Caacutec giao thức lớp transport trecircn Internet
  • Slide 7
  • Multiplexingdemultiplexing
  • Demultiplexing lagravem việc như thế nagraveo
  • Demultiplexing khocircng kết nối
  • Demultiplexing khocircng kết nối (tiếp)
  • Demultiplexing hướng kết nối
  • Demultiplexing hướng kết nối (tiếp)
  • Demultiplexing hướng kết nối Threaded Web Server
  • Slide 15
  • UDP User Datagram Protocol [RFC 768]
  • UDP (tt)
  • UDP checksum
  • Viacute dụ Checksum
  • Slide 20
  • Caacutec nguyecircn lyacute truyền dữ liệu tin cậy
  • Slide 22
  • Slide 23
  • Truyền dữ liệu tin cậy
  • Slide 25
  • Rdt10 truyền dữ liệu tin cậy trecircn 1 kecircnh truyền tin cậy
  • Rdt20 kecircnh với caacutec lỗi
  • rdt20 đặc tả FSM
  • rdt20 hoạt động khi khocircng lỗi
  • rdt20 hoạt động khi coacute lỗi
  • rdt20 coacute lỗ hổng nghiecircm trọng
  • rdt21 người gửi quản lyacute caacutec ACKNAK bị hỏng
  • Slide 33
  • rdt21 thảo luận
  • rdt22 một giao thức khocircng cần NAK
  • rdt22 gửi nhận caacutec mảnh
  • rdt30 caacutec kecircnh với lỗi vagrave mất maacutet
  • rdt30 gửi
  • hagravenh động của rdt30
  • Slide 40
  • Hiệu suất của rdt30
  • rdt30 hoạt động dừng-vagrave-chờ
  • Caacutec giao thức Pipelined
  • Pipelining độ khả dụng tăng
  • Go-Back-N
  • GBN becircn gửi mở rộng FSM
  • GBN becircn nhận mở rộng FSM
  • GBN hoạt động
  • Lặp coacute lựa chọn
  • Lặp coacute lựa chọn caacutec cửa sổ gửi nhận
  • Slide 51
  • Hoạt động của lặp coacute lựa chọn
  • Lặp coacute lựa chọn tigravenh trạng khoacute giải quyết
  • Slide 54
  • TCP Tổng quan RFCs 793 1122 1323 2018 2581
  • TCP cấu truacutec đoạn
  • Caacutec số thứ tự TCP vagrave ACK
  • TCP Round Trip Time vagraveTimeout
  • TCP Round Trip Time vagrave Timeout
  • Viacute dụ đaacutenh giaacute RTT
  • Slide 61
  • TCP truyền dữ liệu tin cậy
  • TCP caacutec sự kiện
  • TCP becircn gửi (đơn giản)
  • TCP caacutec tigravenh huống truyền lại
  • TCP caacutec tigravenh huống truyền lại (tt)
  • TCP sinh ra ACK [RFC 1122 RFC 2581]
  • Truyền lại nhanh
  • Giải thuật truyền lại nhanh
  • Slide 70
  • TCP điều khiển luồng
  • TCP điều khiển luồng caacutech lagravem
  • Slide 73
  • TCP quản lyacute kết nối
  • TCP quản lyacute kết nối (tt)
  • Slide 76
  • Slide 77
  • Slide 78
  • Caacutec nguyecircn lyacute điều khiển tắc nghẽn
  • Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 1
  • Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 2
  • Slide 82
  • Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 3
  • Slide 84
  • Caacutec caacutech tiếp cận đối với điều khiển tắc nghẽn
  • Viacute dụ điều khiển tắc nghẽn ATM ABR
  • Slide 87
  • Slide 88
  • TCP điều khiển tắc nghẽn additive tăng lecircn multiplicative giảm xuống
  • TCP điều khiển tắc nghẽn chi tiết
  • TCP khởi động chậm
  • TCP khởi động chậm (tt)
  • Tinh chế
  • Tinh chế nhận biết mất maacutet
  • Tổng kết TCP điều khiển tắc nghẽn
  • TCP điều khiển tắc nghẽn becircn gửi
  • TCP throughput
  • TCP tương lai
  • TCP tiacutenh cocircng bằng
  • Tại sao phải TCP cocircng bằng
  • TCP tiacutenh cocircng bằng (tt)
  • Mocirc higravenh trễ
  • Cửa sổ tắc nghẽn cố định (1)
  • Cửa sổ tắc nghẽn cố định (2)
  • TCP Mocirc higravenh trễ Khởi động chậm (1)
  • TCP Mocirc higravenh trễ Khởi động chậm (2)
  • TCP Mocirc higravenh trễ(3)
  • TCP Mocirc higravenh trễ (4)
  • HTTP Mocirc higravenh
  • Slide 110
  • Slide 111
  • Chương 3 Tổng kết

Transport Layer 3-35

rdt22 một giao thức khocircng cần NAK

chức năng giống như rdt21 chỉ dugraveng caacutec ACK thay cho NAK người nhận gửi ACK cho goacutei vừa

rồi đatilde nhận tốt người nhận phải rotilde ragraveng chegraven số thứ tự của goacutei vừa ACK

trugraveng ACK tại người gửi hậu quả giống như hagravenh động của NAK truyền lại goacutei vừa rồi

Transport Layer 3-36

rdt22 gửi nhận caacutec mảnh

Chờ cho gọi 0 từ

trecircn

sndpkt = make_pkt(0 data checksum)udt_send(sndpkt)

rdt_send(data)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) || isACK(rcvpkt1) )

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt0)

Chờ cho ACK

0

gửi phacircn mảnhFSM

Chờ cho gọi

0 từ dưới

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp has_seq1(rcvpkt)

extract(rcvpktdata)deliver_data(data)sndpkt = make_pkt(ACK1 chksum)udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp (corrupt(rcvpkt) || has_seq1(rcvpkt))

udt_send(sndpkt)

nhận phacircn mảnhFSM

Transport Layer 3-37

rdt30 caacutec kecircnh với lỗi vagrave mất maacutet

Giả định mới kecircnh ưu tiecircn cũng coacute thể lagravem mất caacutec goacutei (dữ liệu hoặc caacutec ACK) checksum số thứ tự

caacutec ACK caacutec việc truyền lại sẽ hỗ trợ nhưng khocircng đủ

Caacutech tiếp cận người gửi chờ ACK trong khoảng thời gian ldquochấp nhận đượcrdquo

truyền lại nếu khocircng nhận ACK trong khoảng thời gian nagravey

nếu goacutei (hoặc ACK) chỉ trễ (khocircng mất) truyền lại sẽ gacircy trugraveng

nhưng dugraveng số thứ tự sẽ giải quyết được

người nhận phải xaacutec định số thứ tự của goacutei vừa gửi ACK

cần bộ định thigrave đếm lugravei

Transport Layer 3-38

rdt30 gửi

sndpkt = make_pkt(0 data checksum)udt_send(sndpkt)start_timer

rdt_send(data)

Chờ cho

ACK 0

rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) ||isACK(rcvpkt1) )

Chờ cho gọi 1 từ trecircn

sndpkt = make_pkt(1 data checksum)udt_send(sndpkt)start_timer

rdt_send(data)

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt0)

rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) ||isACK(rcvpkt0) )

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt1)

stop_timerstop_timer

udt_send(sndpkt)start_timer

timeout

udt_send(sndpkt)start_timer

timeout

rdt_rcv(rcvpkt)

Chờ cho gọi 0 từ trecircn

Chờ cho

ACK 1

rdt_rcv(rcvpkt)

Transport Layer 3-39

hagravenh động của rdt30

Transport Layer 3-40

hagravenh động của rdt30

Transport Layer 3-41

Hiệu suất của rdt30

rdt30 lagravem việc được nhưng đaacutenh giaacute hiệu suất hơi rắc rối viacute dụ liecircn kết 1 Gbps trễ lan truyền giữa hai đầu cuối lagrave 15

ms goacutei 1KB

T truyền = 8kbpkt109 bsec

= 8 microsec

U sender độ khả dụng ndash

U sender

= 008

30008 = 000027

microseconds

L R

RTT + L R =

L (độ dagravei goacutei tiacutenh bằng bits)R (tốc độ truyền bps)

=

goacutei 1KB mỗi 30 msec -gt 33kBs trecircn đường truyền 1 Gbps giao thức network hạn chế việc dugraveng caacutec tagravei nguyecircn vật

lyacute

Transport Layer 3-42

rdt30 hoạt động dừng-vagrave-chờ

goacutei đầu tiecircn đatilde truyền t = 0

gửi nhận

RTT

goacutei cuối cugraveng đatilde truyền t = L R

goacutei đầu tiecircn đatilde đếngoacutei cuối cugraveng đatilde đến gửi ACK

ACK đến gửi goacutei kế tiếp t = RTT + L R

U sender

= 008

30008 = 000027

microseconds

L R

RTT + L R =

Transport Layer 3-43

Caacutec giao thức Pipelined

Pipelining người gửi cho pheacutep gửi nhiều goacutei đồng thời khocircng cần chờ baacuteo nhận được nhoacutem caacutec số thứ tự phải tăng dần phải coacute bộ nhớ đệm tại nơi gửi vagravehoặc nơi nhận

hai dạng phổ biến của caacutec giao thức pipelined go-Back-N Lặp coacute lựa chọn

Transport Layer 3-44

Pipelining độ khả dụng tăng

goacutei đầu tiecircn đatilde truyền t = 0

sender receiver

RTT

goacutei cuối cugraveng đatilde truyền t = L R

goacutei đầu tiecircn đatilde đếngoacutei cuối cugraveng đatilde đến gửi ACK

ACK đến gửi goacuteikế tiếp t = RTT + L R

bit cuối của goacutei thứ 2 đến gửi ACKbit cuối của goacutei thứ 3 đến gửi ACK

U sender

= 024

30008 = 00008

microseconds

3 L R

RTT + L R =

Độ khả dụng tăng lecircngấp 3 lần

Transport Layer 3-45

Go-Back-NBecircn gửi k-bit số thứ tự trong header của goacutei ldquocửa sổrdquo tăng lecircn đến N cho pheacutep gửi caacutec goacutei liecircn tục khocircng cần ACK

ACK(n) ACKs tất cả caacutec goacutei đến chứa số thứ tự n ndash ldquoACK tiacutech lũyrdquo coacute thể nhận caacutec ACK trugraveng lặp (xem becircn nhận)

định thigrave cho mỗi goacutei trecircn đường truyền timeout(n) gửi lại goacutei n vagrave tất cả caacutec goacutei coacute số thứ tự cao

hơn trong cửa sổ

Transport Layer 3-46

GBN becircn gửi mở rộng FSM

chờ start_timerudt_send(sndpkt[base])udt_send(sndpkt[base+1])hellipudt_send(sndpkt[nextseqnum-1])

timeout

rdt_send(data)

if (nextseqnum lt base+N) sndpkt[nextseqnum] = make_pkt(nextseqnumdatachksum) udt_send(sndpkt[nextseqnum]) if (base == nextseqnum) start_timer nextseqnum++ else refuse_data(data)

base = getacknum(rcvpkt)+1If (base == nextseqnum) stop_timer else start_timer

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)

base=1nextseqnum=1

rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)

Transport Layer 3-47

GBN becircn nhận mở rộng FSM

ACK-duy nhất luocircn luocircn gửi ACK cho goacutei đatilde nhận đuacuteng với số thứ tự xếp hạng cao nhất coacute thể sinh ra caacutec ACK trugraveng nhau chỉ cần nhớ expectedseqnum

goacutei khocircng theo thứ tự hủy -gt khocircng nhận vagraveo bộ đệm gửi lại ACK với số thứ tự xếp hạng cao nhất

chờ

udt_send(sndpkt)

default

rdt_rcv(rcvpkt) ampamp notcurrupt(rcvpkt) ampamp hasseqnum(rcvpktexpectedseqnum)

extract(rcvpktdata)deliver_data(data)sndpkt = make_pkt(expectedseqnumACKchksum)udt_send(sndpkt)expectedseqnum++

expectedseqnum=1sndpkt = make_pkt(expectedseqnumACKchksum)

Transport Layer 3-48

GBN hoạt động

Transport Layer 3-49

Lặp coacute lựa chọn

becircn nhận thocircng baacuteo đatilde nhận đuacuteng tất cả từng goacutei một đệm (buffer) caacutec goacutei nếu cần thiết

becircn gửi chỉ gửi lại caacutec goacutei nagraveo khocircng nhận được ACK becircn gửi định thigrave đối với mỗi goacutei khocircng gửi ACK

cửa sổ becircn gửi N số thứ tự liecircn tục hạn chế số thứ tự caacutec goacutei khocircng gửi ACK

Transport Layer 3-50

Lặp coacute lựa chọn caacutec cửa sổ gửi nhận

Transport Layer 3-51

Lặp coacute lựa chọn

dữ liệu từ lớp trecircn nếu số thứ tự kế tiếp sẵn

sagraveng trong cửa sổ gửi goacutei

timeout(n) gửi lại goacutei n taacutei khởi tạo

bộ định thigrave

ACK(n) trong [sendbasesendbase+N]

đaacutenh dấu goacutei n lagrave đatilde nhận nếu goacutei khocircng ACK coacute n

nhỏ nhất dịch chuyển cửa sổ base đến số thứ tự khocircng ACK kế tiếp

Gửigoacutei n trong [rcvbase

rcvbase+N-1]

gửi ACK(n) khocircng thứ tự đệm

(buffer) coacute thứ tự truyền (cũng

truyền caacutec goacutei đatilde đệm coacute thứ tự) dịch chuyển cửa sổ đến goacutei chưa nhận kế tiếp

goacutei n trong [rcvbase-Nrcvbase-1]

ACK(n)

ngược lại lờ đi

Nhận

Transport Layer 3-52

Hoạt động của lặp coacute lựa chọn

Transport Layer 3-53

Lặp coacute lựa chọntigravenh trạng khoacute giải quyếtViacute dụ Số thứ tự 0 1 2 3 Kiacutech thước cửa sổ = 3

becircn nhận khocircng thấy sự khaacutec nhau trong 2 tigravenh huống

chuyển khocircng chiacutenh xaacutec dữ liệu trugraveng lặp như dữ liệu mới trong (a)

Hỏi quan hệ giữa datildey số thứ tự vagrave kiacutech thước cửa sổ

Transport Layer 3-54

Chương 3 Nội dung trigravenh bagravey

31 Caacutec dịch vụ lớp Transport

32 Multiplexing vagrave demultiplexing

33 Vận chuyển khocircng kết nối UDP

34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy

35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối

36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn

37 Điều khiển tắc nghẽn TCP

Transport Layer 3-55

TCP Tổng quan RFCs 793 1122 1323 2018 2581

dữ liệu full duplex luồng dữ liệu đi 2 chiều

trong cugraveng một kết nối MSS maximum

segment size ndash kiacutech thước đoạn tối đa

hướng kết nối bắt tay (trao đổi caacutec

thocircng điệp điều khiển) trạng thaacutei becircn gửi becircn nhận trước khi trao đổi dữ liệu

điều khiển luồng becircn gửi sẽ khocircng lấn aacutet

becircn nhận

point-to-point một becircn gửi một becircn

nhận tin cậy dograveng byte coacute

thứ tự khocircng ldquoranh giới thocircng

điệprdquo kecircnh liecircn lạc

TCP điều khiển luồng vagrave tắc nghẽn thiết lập kiacutech thước cửa sổ

caacutec bộ đệm gửi amp nhận

socketdoor

T C Psend buffer

T C Preceive buffer

socketdoor

segm ent

applicationwrites data

applicationreads data

Transport Layer 3-56

TCP cấu truacutec đoạn

port nguồn port điacutech

32 bits

dữ liệu ứng dụng(độ dagravei thay đổi)

số thứ tự

số ACKcửa sổ nhận

con trỏ URGchecksum

FSRPAUheadlen

notused

Tugravey chọn (độ dagravei thay đổi)

URG dữ liệu khẩn cấp(thường khocircng dugraveng)

ACK ACK hợp lệ

PSH push data now(thường khocircng dugraveng)

RST SYN FINthiết lập kết nối

(caacutec lệnh thiết lậpchia nhỏ)

số byte becircn nhận sẵn sagraveng chấp nhận

đếm bởi số bytecủa dữ liệu

Internetchecksum

(giống UDP)

Transport Layer 3-57

Caacutec số thứ tự TCP vagrave ACKCaacutec số thứ tự

dograveng byte ldquođaacutenh sốrdquo byte đầu tiecircn trong dữ liệu của đoạn

caacutec ACK số thứ tự của byte

kế tiếp được chờ đợi từ phiacutea becircn kia

ACK tiacutech lũyHỏi lagravem thế nagraveo becircn

nhận quản lyacute caacutec đoạn khocircng thứ tự Trả lời TCP khocircng

đề cập tugravey thuộc người hiện thực

Host A Host B

Seq=42 ACK=79 data = lsquoCrsquo

Seq=79 ACK=43 data = lsquoCrsquo

Seq=43 ACK=80

UsernhậplsquoCrsquo

host ACKsnhận phản hồi

lsquoCrsquo

host ACKsbaacuteo nhận

lsquoCrsquo phản hồingược lại lsquoCrsquo

timetigravenh huống telnet đơn giản

Transport Layer 3-58

TCP Round Trip Time vagraveTimeout

Hỏi Lagravem thế nagraveo để thiết lập giaacute trị TCP timeout

dagravei hơn RTT khaacutec với RTT

quaacute ngắn timeout sớm truyền lại khocircng

cần thiết quaacute dagravei phản ứng

chậm đối với việc mất maacutet goacutei

Hỏi Lagravem thế nagraveo để thiết lập RTT

SampleRTT thời gian được đo từ khi truyền đoạn đến khi baacuteo nhận ACK lờ đi việc truyền lại

SampleRTT sẽ thay đổi muốn ước lượng RTT ldquomượt hơnrdquo tiacutenh trung bigravenh một số giaacute

trị đo được gần đoacute khocircng chỉ SampleRTT hiện tại

Transport Layer 3-59

TCP Round Trip Time vagrave Timeout

EstimatedRTT = (1- )EstimatedRTT + SampleRTT

giaacute trị đặc trưng = 0125

Transport Layer 3-60

Viacute dụ đaacutenh giaacute RTTRTT gaiacsumassedu to fantasiaeurecomfr

100

150

200

250

300

350

1 8 15 22 29 36 43 50 57 64 71 78 85 92 99 106

time (seconnds)

RTT

(mill

isec

onds

)

SampleRTT Estimated RTT

Transport Layer 3-61

TCP Round Trip Time vagrave Timeout

Thiết lập timeout EstimtedRTT cộng ldquohệ số dự trữ an toagravenrdquo

sự biến thiecircn lớn trong EstimatedRTT -gt hệ số dự trữ an toagraven lớn hơn ước lượng đầu tiecircn về sự biến thiecircn của SampleRTT từ EstimatedRTT

TimeoutInterval = EstimatedRTT + 4DevRTT

DevRTT = (1-)DevRTT + |SampleRTT-EstimatedRTT|

(tiecircu biểu = 025)

Sau đoacute thiết lập timeout interval

Transport Layer 3-62

TCP truyền dữ liệu tin cậy

TCP tạo dịch vụ rdt trecircn dịch vụ khocircng tin cậy IP

caacutec đoạn Pipelined caacutec ACK tiacutech lũy TCP dugraveng bộ định thigrave

truyền lại đơn

Truyền lại được kiacutech hoạt bởi caacutec sự kiện timeout caacutec ack trugraveng lặp

luacutec đầu khảo saacutet caacutec becircn gửi TCP đơn giản lờ đi caacutec ack trugraveng lặp lờ đi điều khiển luồng

điều khiển tắc nghẽn

Transport Layer 3-63

TCP caacutec sự kiệndữ liệu đatilde nhận từ ứng

dụng tạo đoạn với số thứ

tự của noacute số thứ tự lagrave số theo

byte dữ liệu đầu tiecircn khởi động bộ định thigrave

nếu chưa chạy khoảng thời gian hết

hạn TimeOutInterval

timeout gửi lại đoạn nagraveo gacircy

ra timeout khởi động lại bộ định

thigrave Ack đatilde nhận

cập nhật caacutei gigrave sẽ được ACK

khởi động bộ định thigrave nếu coacute caacutec đoạn cograven chờ

Transport Layer 3-64

TCP becircn gửi(đơn giản)

NextSeqNum = InitialSeqNum SendBase = InitialSeqNum

loop (forever) switch(event)

event data received from application above create TCP segment with sequence number NextSeqNum if (timer currently not running) start timer pass segment to IP NextSeqNum = NextSeqNum + length(data)

event timer timeout retransmit not-yet-acknowledged segment with smallest sequence number start timer

event ACK received with ACK field value of y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer

end of loop forever

Chuacute thiacutechbull SendBase-1 byte vừa được ACK tiacutech lũy Viacute dụbull SendBase-1 = 71y= 73 vigrave thế becircn nhận muốn 73+ y gt SendBase vigrave thế dữ liệu mới được chấp nhận

Transport Layer 3-65

TCP caacutec tigravenh huống truyền lại

Host A

Seq=100 20 bytes data

ACK=100

timetimeout sớm

Host B

Seq=92 8 bytes data

ACK=120

Seq=92 8 bytes data

Seq=

92

tim

eout

ACK=120

Host A

Seq=92 8 bytes data

ACK=100

loss

tim

eout

tigravenh huống mất ACK

Host B

X

Seq=92 8 bytes data

ACK=100

time

Seq=

92

tim

eout

SendBase= 100

SendBase= 120

SendBase= 120

Sendbase= 100

Transport Layer 3-66

TCP caacutec tigravenh huống truyền lại (tt)Host A

Seq=92 8 bytes data

ACK=100

loss

tim

eout

Cumulative ACK scenario

Host B

X

Seq=100 20 bytes data

ACK=120

time

SendBase= 120

Transport Layer 3-67

TCP sinh ra ACK [RFC 1122 RFC 2581]

Sự kiện tại becircn nhận

Đoạn đến với đuacuteng số thứ tự mong muốn Tất cả dữ liệu đếnđatilde được ACK

Đoạn đến với đuacuteng số thứ tự mong muốn Một đoạn khaacutec đangchờ ACK

Caacutec đoạn đến khocircng thứ tựlớn hơn số thứ tự đoạn mong muốnCoacute khoảng trống

Đoạn đếnlấp đầy từng phần hoặc toagraven bộkhoảng trống

TCP becircn nhận hagravenh động

ACK trễ Chờ đến 500mscho đoạn kế tiếp Nếu khocircng coacute đoạnkế tiếp gửi ACK

Gửi ngay một ACK tiacutech lũy chấp nhậncho cả caacutec đoạn theo thứ tự

Gửi ngay ACK trugraveng lặp chỉ thị số thứ tựđoạn của byte kế tiếp đang mong chờ

Gửi ngay ACK với điều kiện lagrave đoạnbắt đầu ngay điểm coacute khoảng trống

Transport Layer 3-68

Truyền lại nhanh

Chu kỳ Time-out thường tương đối dagravei độ trễ dagravei trước khi gửi

lại goacutei đatilde mất

Xaacutec nhận caacutec đoạn đatilde mất bằng caacutec ACK trugraveng lặp becircn gửi thường gửi

nhiều đoạn song song Nếu đoạn bị mất sẽ

xảy ra tigravenh trạng giống như nhiều ACK trugraveng nhau

Nếu becircn gửi nhận 3 ACK của cugraveng một dữ liệu noacute cho lagrave đoạn sau dữ liệu đatilde ACK bị mất Truyền lại nhanh gửi

lại đoạn trước khi bộ định thigrave hết hạn

Transport Layer 3-69

sự kiện ACK đatilde nhận với trường lagrave y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer else increment count of dup ACKs received for y if (count of dup ACKs received for y = 3) resend segment with sequence number y

Giải thuật truyền lại nhanh

một ACK trugraveng lặp cho đoạn đatilde được ACK

Truyền lại nhanh

Transport Layer 3-70

Chương 3 Nội dung trigravenh bagravey

31 Caacutec dịch vụ lớp Transport

32 Multiplexing vagrave demultiplexing

33 Vận chuyển khocircng kết nối UDP

34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy

35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối

36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn

37 Điều khiển tắc nghẽn TCP

Transport Layer 3-71

TCP điều khiển luồng

becircn nhận của kết nối TCP coacute một bộ đệm nhận

dịch vụ so trugraveng tốc độ so trugraveng tốc độ gửi với tốc độ nhận của ứng dụng

tiến trigravenh ứng dụng coacute thể chậm tại luacutec đọc bộ đệm

becircn gửi sẽ khocircng lagravem tragraven bộ đệm vigrave truyền quaacute nhiều vagrave

quaacute nhanh

điều khiển luồng

Transport Layer 3-72

TCP điều khiển luồng caacutech lagravem

(Giả sử becircn nhận TCP loại bỏ caacutec đoạn khocircng coacute thứ tự)

dự phograveng trong bộ đệm= RcvWindow

= RcvBuffer-[LastByteRcvd - LastByteRead]

Becircn nhận thocircng baacuteo khoảng dự trữ nhờ giaacute trị RcvWindow trong caacutec đoạn

Becircn gửi hạn chế dữ liệu khocircng được ACK vagraveo RcvWindow bảo đảm bộ đệm nhận

khocircng tragraven

Transport Layer 3-73

Chương 3 Nội dung trigravenh bagravey

31 Caacutec dịch vụ lớp Transport

32 Multiplexing vagrave demultiplexing

33 Vận chuyển khocircng kết nối UDP

34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy

35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối

36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn

37 Điều khiển tắc nghẽn TCP

Transport Layer 3-74

TCP quản lyacute kết nối

Chuacute yacute Becircn gửi vagrave becircn nhận TCP thiết lập ldquokết nốirdquo trước khi trao đổi dữ liệu

khởi tạo caacutec biến TCP caacutec số thứ tự đoạn thocircng tin caacutec bộ đệm điều

khiển luồng (như RcvWindow)

client người khởi xướng kết nối

Socket clientSocket = new Socket(hostnameport

number) server được tiếp xuacutec bởi

client Socket connectionSocket =

welcomeSocketaccept()

3 phương phaacutep bắt tay

Bước 1 client host gửi đoạnTCP SYN đến server xaacutec định số thứ tự khởi đầu khocircng phải dữ liệu

Bước 2 server host nhận SYN trả lời với đoạn SYNACK

server cấp phaacutet caacutec bộ đệm

xaacutec định số thứ tự khởi đầuBước 3 client nhận SYNACK trả

lời với đoạn ACK (coacute thể chứa dữ liệu)

Transport Layer 3-75

TCP quản lyacute kết nối (tt)

Đoacuteng một kết nối

client đoacuteng socket clientSocketclose()

Bước 1 client gửi đoạn điều khiển TCP FIN đến server

Bước 2 server nhận FIN trả lời với ACK Đoacuteng kết nối gửi FIN

client

FIN

server

ACK

ACK

FIN

đoacuteng

đoacuteng

đatilde đoacutengthời g

ian c

hờ

Transport Layer 3-76

TCP quản lyacute kết nối (tt)

Bước 3 client nhận FIN trả lời với ACK

Trong khoảng ldquothời gian chờrdquo ndash sẽ phản hồi với ACK để nhận caacutec FIN

Bước 4 server nhận ACK Kết nối đatilde đoacuteng

Chuacute yacute với một sửa đổi nhỏ coacute thể quản lyacute nhiều FIN đồng thời

client

FIN

server

ACK

ACK

FIN

đang đoacuteng

đang đoacuteng

đatilde đoacuteng

thời g

ian c

hờ

đatilde đoacuteng

Transport Layer 3-77

TCP quản lyacute kết nối (tt)

chu kỳ sống củaTCP client

chu kỳ sống củaTCP server

Transport Layer 3-78

Chương 3 Nội dung trigravenh bagravey

31 Caacutec dịch vụ lớp Transport

32 Multiplexing vagrave demultiplexing

33 Vận chuyển khocircng kết nối UDP

34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy

35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối

36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn

37 Điều khiển tắc nghẽn TCP

Transport Layer 3-79

Caacutec nguyecircn lyacute điều khiển tắc nghẽn

Tắc nghẽn ldquoquaacute nhiều nguồn gửi quaacute nhanh vagrave quaacute nhiều

dữ liệu đến mạngrdquo khaacutec với điều khiển luồng caacutec biểu hiện

caacutec goacutei bị mất (tragraven bộ đệm tại caacutec router) caacutec độ trễ quaacute dagravei (xếp hagraveng trong bộ đệm

của router) lagrave 1 trong 10 vấn đề nan giải nhất

Transport Layer 3-80

Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 1

2 gửi 2 nhận 1 router caacutec bộ

đệm khocircng giới hạn

khocircng coacute truyền lại

caacutec độ trễ lớn hơn khi tắc nghẽn

năng suất coacute thể đạt tối đa

unlimited shared output link buffers

Host Ain original data

Host B

out

Transport Layer 3-81

Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 2

1 router caacutec bộ đệm coacute giới hạn becircn gửi truyền lại caacutec goacutei đatilde mất

chia sẻ vocirc hạncaacutec bộ đệm ouput

Host A in dữ liệu gốc

Host B

out

in dữ liệu gốc cugraveng với dữ liệu truyền lại

Transport Layer 3-82

Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 2 luocircn luocircn

truyền lại ldquohoagraven toagravenrdquo chỉ khi mất maacutet

truyền lại vigrave trễ (khocircng mất) lagravem cho lớn hơn với cugraveng

in

out

=

in

out

gt

in

out

ldquocaacutec chi phiacuterdquo của tắc nghẽn nhiều việc (truyền lại) caacutec truyền lại khocircng cần thiết liecircn kết nhiều bản sao của

goacutei

R2

R2in

ou

t

b

R2

R2in

ou

t

a

R2

R2in

ou

t

c

R4

R3

Transport Layer 3-83

Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 3 4 người gửi caacutec đường qua nhiều hop timeouttruyền lại

in

Hỏi điều gigrave xảy ra nếu vagrave tăng lecircn

in

chia sẻ vocirc hạncaacutec bộ đệm ouput

Host Ain dữ liệu gốc

Host B

out

in dữ liệu gốc cugraveng với dữ liệu truyền lại

Transport Layer 3-84

Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 3

ldquochi phiacuterdquo khaacutec của tắc nghẽn khi caacutec goacutei bị bỏ bất kỳ ldquokhả năng truyền

upstream dugraveng cho goacutei đoacute sẽ bị latildeng phiacuterdquo

Host A

Host B

o

u

t

Transport Layer 3-85

Caacutec caacutech tiếp cận đối với điều khiển tắc nghẽn

điều khiển tắc nghẽn end-end

khocircng coacute phản hồi rotilde ragraveng từ mạng

tắc nghẽn được suy ra từ việc quan saacutet caacutec hệ thống đầu cuối coacute mất maacutet trễ

tiếp cận được quản lyacute bởi TCP

điều khiển tắc nghẽn coacute sự hỗ trợ của mạng

caacutec router cung cấp phản hồi về caacutec hệ thống đầu cuối 1 bit duy nhất chỉ thị

tắc nghẽn (SNA DECbit TCPIP ECN ATM)

tốc độ sẽ gửi được xaacutec định rotilde ragraveng

2 caacutech

Transport Layer 3-86

Viacute dụ điều khiển tắc nghẽn ATM ABR

ABR tốc độ bit sẵn sagraveng

ldquodịch vụ mềm dẻordquo nếu đường gửi ldquochưa

hếtrdquo becircn gửi sẽ dugraveng

băng thocircng sẵn sagraveng nếu đường gửi tắc

nghẽn becircn gửi điều tiết với

tốc độ tối thiểu

RM (resource management)

gửi bởi becircn gửi rải raacutec với caacutec ocirc dữ liệu

caacutec bit trong ocirc thiết lập bởi caacutec switch bit NI khocircng tăng tốc độ

(tắc nghẽn nhẹ) bit CI tắc nghẽn rotilde rệt

Caacutec ocirc RM được trả về becircn gửi từ becircn nhận với nguyecircn vẹn caacutec bit

Transport Layer 3-87

Viacute dụ điều khiển tắc nghẽn ATM ABR

trường 2-byte ER trong ocirc RM switch đatilde tắc nghẽn coacute thể coacute giaacute trị ER thấp hơn trong ocirc tốc độ gửi do đoacute coacute thể được hỗ trợ tối đa trecircn đường

EFCI bit trong caacutec ocirc dữ liệu được cagravei giaacute trị 1 trong switch đatilde tắc nghẽn nếu ocirc dữ liệu đứng trước ocirc RM coacute cagravei EFCI becircn gửi sẽ cagravei

bit CI trong ocirc RM trả về

Transport Layer 3-88

Chương 3 Nội dung trigravenh bagravey

31 Caacutec dịch vụ lớp Transport

32 Multiplexing vagrave demultiplexing

33 Vận chuyển khocircng kết nối UDP

34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy

35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối

36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn

37 Điều khiển tắc nghẽn TCP

Transport Layer 3-89

TCP điều khiển tắc nghẽn additive tăng lecircn multiplicative giảm xuống

8 Kbytes

16 Kbytes

24 Kbytes

time

congestionwindow

Caacutech tiếp cận tăng tốc độ truyền (kiacutech thước cửa sổ) tigravem khả năng băng thocircng coacute thể cho đến khi coacute mất maacutet xảy ra additive tăng lecircn tăng CongWin bởi 1 MSS

mỗi RTT cho đến khi coacute mất maacutet xảy ra multiplicative giảm xuống bỏ CongWin trong

nửa giai đoạn sau khi mất maacutet

timekiacutech

thư

ớc

cửa

sổ

tắc

nghẽ

n

Tigravem kiếm băng thocircng

Transport Layer 3-90

TCP điều khiển tắc nghẽn chi tiết

becircn gửi hạn chế việc truyền LastByteSent-LastByteAcked

CongWin Cocircng thức

CongWin thay đổi chức năng lagrave nhận biết tắc nghẽn trecircn mạng

Lagravem thế nagraveo becircn gửi nhận biết tắc nghẽn

mất maacutet xảy ra = timeout hoặc 3 ack trugraveng lặp

becircn gửi giảm tốc độ (CongWin) sau khi mất maacutet xảy ra

3 cơ chế AIMD khởi động chậm thận trọng sau khi coacute

caacutec sự kiện timeout

tốc độ = CongWin

RTT Bytess

Transport Layer 3-91

TCP khởi động chậm

Khi kết nối bắt đầu CongWin = 1 MSS Viacute dụ MSS = 500 bytes

amp RTT = 200 ms tốc độ khởi tạo = 20

kbps

băng thocircng sẵn sagraveng coacute thể gtgt MSSRTT mong muốn nhanh

choacuteng tăng tốc lecircn tốc độ coacute thể đaacutep ứng

Khi kết nối bắt đầu tăng tốc lecircn rất nhanh cho đến khi sự cố mất maacutet xảy ra đầu tiecircn

Transport Layer 3-92

TCP khởi động chậm (tt)

Khi kết nối bắt đầu tăng tốc lecircn rất nhanh cho đến khi sự cố mất maacutet xảy ra đầu tiecircn nhacircn đocirci CongWin mỗi

RTT hoagraven thagravenh nhờ tăng CongWin ứng với mỗi ACK đatilde nhận

Tổng kết tốc độ khởi đầu lagrave chậm nhưng sau đoacute tăng tốc rất nhanh

Host A

1 đoạn

RTT

Host B

thời gian

2 đoạn

4 đoạn

Transport Layer 3-93

Tinh chếHỏi Khi nagraveo việc tăng

tốc trở thagravenh tuyến tiacutenh

Trả lời Khi CongWin đạt đến 12 giaacute trị của noacute trước khi timeout

Hiện thực Ngưỡng thay đổi Tại thời điểm coacute sự cố

mất maacutet ngưỡng được cagravei giaacute trị bằng frac12 của CongWin ngay trước đoacute

Transport Layer 3-94

Tinh chế nhận biết mất maacutet

Sau 3 ACK trugraveng lặp CongWin sẽ giảm 12 kiacutech thước cửa sổ

tăng tuyến tiacutenh nhưng sau sự cố

timeout CongWin thay giaacute trị

bằng 1 MSS kiacutech thước cửa sổ

tăng cấp lũy thừa khi đến một ngưỡng

thigrave tăng tuyến tiacutenh

3 ACK trugraveng nhau chỉ ra khả năng truyền của mạng timeout chỉ thị ldquonhiều cảnh baacuteordquo về tigravenh huống tắc nghẽn

Nguyecircn lyacute

Transport Layer 3-95

Tổng kết TCP điều khiển tắc nghẽn

Khi CongWin dưới Threshold becircn gửi đang trong giai đoạn khởi động chậm kiacutech thước cửa sổ tăng nhanh theo cấp lũy thừa

Khi CongWin trecircn Threshold becircn gửi đang trong giai đoạn traacutenh tắc nghẽn kiacutech thước cửa sổ tăng nhanh theo cấp tuyến tiacutenh

Khi coacute 3 ACK trugraveng lặp xảy ra Threshold = CongWin2 vagrave CongWin = Threshold

Khi timeout xảy ra Threshold = CongWin2 vagrave CongWin = 1 MSS

Transport Layer 3-96

TCP điều khiển tắc nghẽn becircn gửi

Trạng thaacutei Sự kiện TCP becircn gửi hagravenh động Diễn giải

Slow Start (SS)-Khởi động chậm

ACK baacuteo nhận cho dữ liệu chưa ACK trước đoacute

CongWin = CongWin + MSS If (CongWin gt Threshold) cagravei đặt trạng thaacutei ldquoTraacutenh tắc nghẽnrdquo

Hậu quả lagravem tăng gấp đocirci CongWin mỗi RTT

CongestionAvoidance (CA) ndashTraacutenh tắc nghẽn

ACK baacuteo nhận cho dữ liệu chưa ACK trước đoacute

CongWin = CongWin+MSS (MSSCongWin)

Additive tăng lecircn lagravem tăng CongWin lecircn 1 MSS mỗi RTT

SS hoặc CA Sự cố mất maacutet xảy ra khi thấy coacute 3 ACK trugraveng lặp

Threshold = CongWin2 CongWin = Thresholdcagravei đặt trạng thaacutei ldquoTraacutenh tắc nghẽnrdquo

Khocirci phục nhanh hiện thực giảm xuống multiplicative CongWin sẽ khocircng giảm xuống dưới 1 MSS

SS hoặc CA Timeout Threshold = CongWin2 CongWin = 1 MSScagravei đặt trạng thaacutei ldquoKhởi động chậmrdquo

Vagraveo chế độ ldquoKhởi động chậmrdquo

SS hoặc CA ACK trugraveng lặp

Đếm ACK tăng lecircn cho đoạn vừa được ACK

CongWin vagrave Threshold khocircng thay đổi

Transport Layer 3-97

TCP throughput

Throughout trung bigravenh của TCP biểu diễn qua kiacutech thước của sổ vagrave RTT Bỏ qua trạng thaacutei ldquoKhởi động chậmrdquo

Cho W lagrave kiacutech thước cửa sổ khi coacute mất maacutet xảy ra

Khi kiacutech thước cửa sổ = W lưu lượng = WRTT

Chỉ ngay sau khi mất maacutet cửa sổ giảm xuống = W2 lưu lượng = W2RTT

throughout trung bigravenh 075 WRTT

Transport Layer 3-98

TCP tương lai

Viacute dụ caacutec đoạn dagravei 1500 byte RTT 100ms lưu lượng 10 Gbps

Kiacutech thước cửa sổ yecircu cầu W = 83333 đoạn trecircn đường truyền

Lưu lượng trong caacutec trường hợp mất maacutet

L = 210-10

Phiecircn bản mới của TCP dagravenh cho nhu cầu tốc độ cao

LRTT

MSS221

Transport Layer 3-99

Mục tiecircu nếu K phiecircn lagravem việc TCP chia sẻ kết nối cổ chai của băng thocircng lagrave R mỗi phiecircn coacute tốc độ trung bigravenh lagrave RK

TCP kết nối 1

router cổ chaikhả năng R

TCP kết nối 2

TCP tiacutenh cocircng bằng

Transport Layer 3-100

Tại sao phải TCP cocircng bằng

2 phiecircn lagravem việc cạnh tranh nhau Additive tăng lưu lượng tăng multiplicative giảm lưu lượng tương xứng

R

R

chia sẻ băng thocircng bằng nhau

Connection 1 throughputConnect

ion 2

th

roughput

traacutenh tắc nghẽn additive tăng lecircnmất maacutet giảm cửa sổ bằng 12

traacutenh tắc nghẽn additive tăng lecircnmất maacutet giảm cửa sổ bằng 12

Transport Layer 3-101

TCP tiacutenh cocircng bằng (tt)

Tiacutenh cocircng bằng amp UDP nhiều ứng dụng

thường khocircng dugraveng TCP khocircng muốn tốc độ bị

điều tiết do điều khiển tắc nghẽn

Thay bằng dugraveng UDP truyền audiovideo với

tốc độ ổn định chịu được mất maacutet

Nghiecircn cứu giao thức thacircn thiện với TCP

Tiacutenh cocircng bằng amp caacutec kết nối TCP song song

khocircng coacute gigrave ngăn cản việc ứng dụng mở caacutec kết nối song song giữa 2 host

Trigravenh duyệt Web lagravem giống như thế

Viacute dụ tốc độ R hỗ trợ 9 kết nối ứng dụng mới yecircu cầu 1

TCP coacute tốc độ R10 ứng dụng mới yecircu cầu 11

TCP coacute tốc độ R2

Transport Layer 3-102

Mocirc higravenh trễ

Hỏi Mất bao lacircu để nhận 1 đối tượng từ Web server sau khi gửi yecircu cầu

Bỏ qua tắc nghẽn trễ bị ảnh hưởng bởi

thiết lập kết nối TCP trễ truyền dữ liệu khởi động chậm

Notation caacutec giả định Giả sử một kết nối giữa

client vagrave server coacute tốc độ R

S MSS (bits) O kiacutech thước đối tượng

(bits) khocircng truyền lại (khocircng

mất maacutet khocircng hỏng)

Kiacutech thước cửa sổ Giả định 1 cửa sổ tắc

nghẽn cố định coacute W đoạn Sau đoacute cửa sổ thay đổi

mocirc higravenh khởi động chậm

Transport Layer 3-103

Cửa sổ tắc nghẽn cố định (1)

Trường hợp đầu tiecircnWSR gt RTT + SR cho

đoạn đầu tiecircn trong cửa sổ trả về trước khi cửa sổ dữ liệu gửi ACK

trễ = 2RTT + OR

Transport Layer 3-104

Cửa sổ tắc nghẽn cố định (2)

Trường hợp thứ hai WSR lt RTT + SR sent

chờ cho ACK sau khi gửi dữ liệu

trễ = 2RTT + OR+ (K-1)[SR + RTT - WSR]

Transport Layer 3-105

TCP Mocirc higravenh trễ Khởi động chậm (1)

Bacircy giờ giả sử kiacutech thước cửa sổ tăng lecircn tugravey theo quaacute trigravenh khởi động chậm

Độ trễ của một đối tượng sẽ lagrave

R

S

R

SRTTP

R

ORTTLatency P )12(2

trong đoacute P lagrave số lần TCP rảnh ở tại server

1min KQP

- trong đoacute Q lagrave số lần server rảnh nếu đối tượng đatilde khởi tạo kiacutech thước

- vagrave K lagrave số lượng cửa sổ bao trugravem đối tượng

Transport Layer 3-106

TCP Mocirc higravenh trễ Khởi động chậm (2)

RTT

initia te TCPconnection

requestobject

first w indow= S R

second w indow= 2S R

third w indow= 4S R

fourth w indow= 8S R

com pletetransm issionobject

delivered

tim e atc lient

tim e atserver

Viacute dụbull OS = 15 đoạnbull K = 4 cửa sổbull Q = 2bull P = minK-1Q = 2

Server rảnh P=2 lần

Caacutec thagravenh phần trễbull 2 RTT dagravenh cho thiết lập kết nối vagrave yecircu cầubull OR để truyền đối tượngbullthời gian server rảnh bởi vigrave khởi động chậm

Server rảnh P = minK-1Q lần

Transport Layer 3-107

TCP Mocirc higravenh trễ(3)

R

S

R

SRTTPRTT

R

O

R

SRTT

R

SRTT

R

O

idleTimeRTTR

O

P

kP

k

P

pp

)12(][2

]2[2

2delay

1

1

1

th window after the timeidle 2 1 kR

SRTT

R

S k

ementacknowledg receivesserver until

segment send tostartsserver when from time RTTR

S

window kth the transmit totime2 1

R

Sk

RTT

initia te TCPconnection

requestobject

first w indow= S R

second w indow= 2S R

third w indow= 4S R

fourth w indow= 8S R

com pletetransm issionobject

delivered

tim e atc lient

tim e atserver

Transport Layer 3-108

TCP Mocirc higravenh trễ (4)

)1(log

)1(logmin

12min

222min

222min

2

2

110

110

S

OS

Okk

S

Ok

SOk

OSSSkK

k

k

k

caacutech tiacutenh toaacuten Q tương tự (xem HW)

K = số lượng cửa sổ bao trugravem đối tượngLagravem thế nagraveo tiacutenh được K

Transport Layer 3-109

HTTP Mocirc higravenh Giả sử trang Web chứa

1 trang HTML (kiacutech thước O bits) M higravenh ảnh (mỗi caacutei kiacutech thướcO bits)

HTTP khocircng bền vững M+1 TCP kết nối Thời gian đaacutep ứng = (M+1)OR + (M+1)2RTT + tổng số thời

gian rảnh HTTP bền vững

2 RTT để yecircu cầu vagrave nhận file HTML 1 RTT để yecircu cầu vagrave nhận M higravenh ảnh Thời gian đaacutep ứng = (M+1)OR + 3RTT + tổng số thời gian

rảnh HTTP khocircng bền vững với X kết nối song song

Giả sử MX lagrave số nguyecircn 1 TCP kết nối cho file MX thiết lập caacutec kết nối song song cho caacutec higravenh ảnh Thời gian đaacutep ứng = (M+1)OR + (MX + 1)2RTT + tổng số

thời gian rảnh

Transport Layer 3-110

02468

101214161820

28Kbps

100Kbps

1Mbps

10Mbps

non-persistent

persistent

parallel non-persistent

HTTP thời gian đaacutep ứng (giacircy)RTT = 100 msec O = 5 Kbytes M=10 vagrave X=5

Với băng thocircng thấp thời gian kết nối amp đaacutep ứng trội hơn thời gian truyền

Caacutec kết nối bền vững chỉ cho sự cải thiện khocircng đaacuteng kể trecircn caacutec kết nối song song

Transport Layer 3-111

0

10

20

30

40

50

60

70

28Kbps

100Kbps

1Mbps

10Mbps

non-persistent

persistent

parallel non-persistent

HTTP thời gian đaacutep ứng (giacircy)

RTT =1 sec O = 5 Kbytes M=10 and X=5

Với RTT lớn hơn thời gian đaacutep ứng trội hơn thời gian trễ chờ thiết lập kết nốiTCP amp khởi động chậm Caacutec kết nối bền vững bacircy giờ cho thấy cải thiện rotilde rệt đặc biệtvới caacutec mạng băng thocircng cao

Transport Layer 3-112

Chương 3 Tổng kết caacutec nguyecircn lyacute của caacutec

dịch vụ lớp transport multiplexing

demultiplexing truyền dữ liệu tin cậy điều khiển luồng điều khiển tắc nghẽn

khởi tạo vagrave hiện thực trong Internet UDP TCP

Tiếp theo nghiecircn cứu xong

caacutec vấn đề ldquongoagravei biecircnrdquo (caacutec lớp application transport)

chuẩn bị vagraveo phần ldquolotildeirdquo của mạng

  • Slide 1
  • Chương 3 Lớp Transport
  • Chương 3 Nội dung trigravenh bagravey
  • Caacutec dịch vụ vagrave giao thức Transport
  • Lớp Transport với lớp network
  • Caacutec giao thức lớp transport trecircn Internet
  • Slide 7
  • Multiplexingdemultiplexing
  • Demultiplexing lagravem việc như thế nagraveo
  • Demultiplexing khocircng kết nối
  • Demultiplexing khocircng kết nối (tiếp)
  • Demultiplexing hướng kết nối
  • Demultiplexing hướng kết nối (tiếp)
  • Demultiplexing hướng kết nối Threaded Web Server
  • Slide 15
  • UDP User Datagram Protocol [RFC 768]
  • UDP (tt)
  • UDP checksum
  • Viacute dụ Checksum
  • Slide 20
  • Caacutec nguyecircn lyacute truyền dữ liệu tin cậy
  • Slide 22
  • Slide 23
  • Truyền dữ liệu tin cậy
  • Slide 25
  • Rdt10 truyền dữ liệu tin cậy trecircn 1 kecircnh truyền tin cậy
  • Rdt20 kecircnh với caacutec lỗi
  • rdt20 đặc tả FSM
  • rdt20 hoạt động khi khocircng lỗi
  • rdt20 hoạt động khi coacute lỗi
  • rdt20 coacute lỗ hổng nghiecircm trọng
  • rdt21 người gửi quản lyacute caacutec ACKNAK bị hỏng
  • Slide 33
  • rdt21 thảo luận
  • rdt22 một giao thức khocircng cần NAK
  • rdt22 gửi nhận caacutec mảnh
  • rdt30 caacutec kecircnh với lỗi vagrave mất maacutet
  • rdt30 gửi
  • hagravenh động của rdt30
  • Slide 40
  • Hiệu suất của rdt30
  • rdt30 hoạt động dừng-vagrave-chờ
  • Caacutec giao thức Pipelined
  • Pipelining độ khả dụng tăng
  • Go-Back-N
  • GBN becircn gửi mở rộng FSM
  • GBN becircn nhận mở rộng FSM
  • GBN hoạt động
  • Lặp coacute lựa chọn
  • Lặp coacute lựa chọn caacutec cửa sổ gửi nhận
  • Slide 51
  • Hoạt động của lặp coacute lựa chọn
  • Lặp coacute lựa chọn tigravenh trạng khoacute giải quyết
  • Slide 54
  • TCP Tổng quan RFCs 793 1122 1323 2018 2581
  • TCP cấu truacutec đoạn
  • Caacutec số thứ tự TCP vagrave ACK
  • TCP Round Trip Time vagraveTimeout
  • TCP Round Trip Time vagrave Timeout
  • Viacute dụ đaacutenh giaacute RTT
  • Slide 61
  • TCP truyền dữ liệu tin cậy
  • TCP caacutec sự kiện
  • TCP becircn gửi (đơn giản)
  • TCP caacutec tigravenh huống truyền lại
  • TCP caacutec tigravenh huống truyền lại (tt)
  • TCP sinh ra ACK [RFC 1122 RFC 2581]
  • Truyền lại nhanh
  • Giải thuật truyền lại nhanh
  • Slide 70
  • TCP điều khiển luồng
  • TCP điều khiển luồng caacutech lagravem
  • Slide 73
  • TCP quản lyacute kết nối
  • TCP quản lyacute kết nối (tt)
  • Slide 76
  • Slide 77
  • Slide 78
  • Caacutec nguyecircn lyacute điều khiển tắc nghẽn
  • Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 1
  • Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 2
  • Slide 82
  • Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 3
  • Slide 84
  • Caacutec caacutech tiếp cận đối với điều khiển tắc nghẽn
  • Viacute dụ điều khiển tắc nghẽn ATM ABR
  • Slide 87
  • Slide 88
  • TCP điều khiển tắc nghẽn additive tăng lecircn multiplicative giảm xuống
  • TCP điều khiển tắc nghẽn chi tiết
  • TCP khởi động chậm
  • TCP khởi động chậm (tt)
  • Tinh chế
  • Tinh chế nhận biết mất maacutet
  • Tổng kết TCP điều khiển tắc nghẽn
  • TCP điều khiển tắc nghẽn becircn gửi
  • TCP throughput
  • TCP tương lai
  • TCP tiacutenh cocircng bằng
  • Tại sao phải TCP cocircng bằng
  • TCP tiacutenh cocircng bằng (tt)
  • Mocirc higravenh trễ
  • Cửa sổ tắc nghẽn cố định (1)
  • Cửa sổ tắc nghẽn cố định (2)
  • TCP Mocirc higravenh trễ Khởi động chậm (1)
  • TCP Mocirc higravenh trễ Khởi động chậm (2)
  • TCP Mocirc higravenh trễ(3)
  • TCP Mocirc higravenh trễ (4)
  • HTTP Mocirc higravenh
  • Slide 110
  • Slide 111
  • Chương 3 Tổng kết

Transport Layer 3-36

rdt22 gửi nhận caacutec mảnh

Chờ cho gọi 0 từ

trecircn

sndpkt = make_pkt(0 data checksum)udt_send(sndpkt)

rdt_send(data)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) || isACK(rcvpkt1) )

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt0)

Chờ cho ACK

0

gửi phacircn mảnhFSM

Chờ cho gọi

0 từ dưới

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp has_seq1(rcvpkt)

extract(rcvpktdata)deliver_data(data)sndpkt = make_pkt(ACK1 chksum)udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp (corrupt(rcvpkt) || has_seq1(rcvpkt))

udt_send(sndpkt)

nhận phacircn mảnhFSM

Transport Layer 3-37

rdt30 caacutec kecircnh với lỗi vagrave mất maacutet

Giả định mới kecircnh ưu tiecircn cũng coacute thể lagravem mất caacutec goacutei (dữ liệu hoặc caacutec ACK) checksum số thứ tự

caacutec ACK caacutec việc truyền lại sẽ hỗ trợ nhưng khocircng đủ

Caacutech tiếp cận người gửi chờ ACK trong khoảng thời gian ldquochấp nhận đượcrdquo

truyền lại nếu khocircng nhận ACK trong khoảng thời gian nagravey

nếu goacutei (hoặc ACK) chỉ trễ (khocircng mất) truyền lại sẽ gacircy trugraveng

nhưng dugraveng số thứ tự sẽ giải quyết được

người nhận phải xaacutec định số thứ tự của goacutei vừa gửi ACK

cần bộ định thigrave đếm lugravei

Transport Layer 3-38

rdt30 gửi

sndpkt = make_pkt(0 data checksum)udt_send(sndpkt)start_timer

rdt_send(data)

Chờ cho

ACK 0

rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) ||isACK(rcvpkt1) )

Chờ cho gọi 1 từ trecircn

sndpkt = make_pkt(1 data checksum)udt_send(sndpkt)start_timer

rdt_send(data)

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt0)

rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) ||isACK(rcvpkt0) )

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt1)

stop_timerstop_timer

udt_send(sndpkt)start_timer

timeout

udt_send(sndpkt)start_timer

timeout

rdt_rcv(rcvpkt)

Chờ cho gọi 0 từ trecircn

Chờ cho

ACK 1

rdt_rcv(rcvpkt)

Transport Layer 3-39

hagravenh động của rdt30

Transport Layer 3-40

hagravenh động của rdt30

Transport Layer 3-41

Hiệu suất của rdt30

rdt30 lagravem việc được nhưng đaacutenh giaacute hiệu suất hơi rắc rối viacute dụ liecircn kết 1 Gbps trễ lan truyền giữa hai đầu cuối lagrave 15

ms goacutei 1KB

T truyền = 8kbpkt109 bsec

= 8 microsec

U sender độ khả dụng ndash

U sender

= 008

30008 = 000027

microseconds

L R

RTT + L R =

L (độ dagravei goacutei tiacutenh bằng bits)R (tốc độ truyền bps)

=

goacutei 1KB mỗi 30 msec -gt 33kBs trecircn đường truyền 1 Gbps giao thức network hạn chế việc dugraveng caacutec tagravei nguyecircn vật

lyacute

Transport Layer 3-42

rdt30 hoạt động dừng-vagrave-chờ

goacutei đầu tiecircn đatilde truyền t = 0

gửi nhận

RTT

goacutei cuối cugraveng đatilde truyền t = L R

goacutei đầu tiecircn đatilde đếngoacutei cuối cugraveng đatilde đến gửi ACK

ACK đến gửi goacutei kế tiếp t = RTT + L R

U sender

= 008

30008 = 000027

microseconds

L R

RTT + L R =

Transport Layer 3-43

Caacutec giao thức Pipelined

Pipelining người gửi cho pheacutep gửi nhiều goacutei đồng thời khocircng cần chờ baacuteo nhận được nhoacutem caacutec số thứ tự phải tăng dần phải coacute bộ nhớ đệm tại nơi gửi vagravehoặc nơi nhận

hai dạng phổ biến của caacutec giao thức pipelined go-Back-N Lặp coacute lựa chọn

Transport Layer 3-44

Pipelining độ khả dụng tăng

goacutei đầu tiecircn đatilde truyền t = 0

sender receiver

RTT

goacutei cuối cugraveng đatilde truyền t = L R

goacutei đầu tiecircn đatilde đếngoacutei cuối cugraveng đatilde đến gửi ACK

ACK đến gửi goacuteikế tiếp t = RTT + L R

bit cuối của goacutei thứ 2 đến gửi ACKbit cuối của goacutei thứ 3 đến gửi ACK

U sender

= 024

30008 = 00008

microseconds

3 L R

RTT + L R =

Độ khả dụng tăng lecircngấp 3 lần

Transport Layer 3-45

Go-Back-NBecircn gửi k-bit số thứ tự trong header của goacutei ldquocửa sổrdquo tăng lecircn đến N cho pheacutep gửi caacutec goacutei liecircn tục khocircng cần ACK

ACK(n) ACKs tất cả caacutec goacutei đến chứa số thứ tự n ndash ldquoACK tiacutech lũyrdquo coacute thể nhận caacutec ACK trugraveng lặp (xem becircn nhận)

định thigrave cho mỗi goacutei trecircn đường truyền timeout(n) gửi lại goacutei n vagrave tất cả caacutec goacutei coacute số thứ tự cao

hơn trong cửa sổ

Transport Layer 3-46

GBN becircn gửi mở rộng FSM

chờ start_timerudt_send(sndpkt[base])udt_send(sndpkt[base+1])hellipudt_send(sndpkt[nextseqnum-1])

timeout

rdt_send(data)

if (nextseqnum lt base+N) sndpkt[nextseqnum] = make_pkt(nextseqnumdatachksum) udt_send(sndpkt[nextseqnum]) if (base == nextseqnum) start_timer nextseqnum++ else refuse_data(data)

base = getacknum(rcvpkt)+1If (base == nextseqnum) stop_timer else start_timer

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)

base=1nextseqnum=1

rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)

Transport Layer 3-47

GBN becircn nhận mở rộng FSM

ACK-duy nhất luocircn luocircn gửi ACK cho goacutei đatilde nhận đuacuteng với số thứ tự xếp hạng cao nhất coacute thể sinh ra caacutec ACK trugraveng nhau chỉ cần nhớ expectedseqnum

goacutei khocircng theo thứ tự hủy -gt khocircng nhận vagraveo bộ đệm gửi lại ACK với số thứ tự xếp hạng cao nhất

chờ

udt_send(sndpkt)

default

rdt_rcv(rcvpkt) ampamp notcurrupt(rcvpkt) ampamp hasseqnum(rcvpktexpectedseqnum)

extract(rcvpktdata)deliver_data(data)sndpkt = make_pkt(expectedseqnumACKchksum)udt_send(sndpkt)expectedseqnum++

expectedseqnum=1sndpkt = make_pkt(expectedseqnumACKchksum)

Transport Layer 3-48

GBN hoạt động

Transport Layer 3-49

Lặp coacute lựa chọn

becircn nhận thocircng baacuteo đatilde nhận đuacuteng tất cả từng goacutei một đệm (buffer) caacutec goacutei nếu cần thiết

becircn gửi chỉ gửi lại caacutec goacutei nagraveo khocircng nhận được ACK becircn gửi định thigrave đối với mỗi goacutei khocircng gửi ACK

cửa sổ becircn gửi N số thứ tự liecircn tục hạn chế số thứ tự caacutec goacutei khocircng gửi ACK

Transport Layer 3-50

Lặp coacute lựa chọn caacutec cửa sổ gửi nhận

Transport Layer 3-51

Lặp coacute lựa chọn

dữ liệu từ lớp trecircn nếu số thứ tự kế tiếp sẵn

sagraveng trong cửa sổ gửi goacutei

timeout(n) gửi lại goacutei n taacutei khởi tạo

bộ định thigrave

ACK(n) trong [sendbasesendbase+N]

đaacutenh dấu goacutei n lagrave đatilde nhận nếu goacutei khocircng ACK coacute n

nhỏ nhất dịch chuyển cửa sổ base đến số thứ tự khocircng ACK kế tiếp

Gửigoacutei n trong [rcvbase

rcvbase+N-1]

gửi ACK(n) khocircng thứ tự đệm

(buffer) coacute thứ tự truyền (cũng

truyền caacutec goacutei đatilde đệm coacute thứ tự) dịch chuyển cửa sổ đến goacutei chưa nhận kế tiếp

goacutei n trong [rcvbase-Nrcvbase-1]

ACK(n)

ngược lại lờ đi

Nhận

Transport Layer 3-52

Hoạt động của lặp coacute lựa chọn

Transport Layer 3-53

Lặp coacute lựa chọntigravenh trạng khoacute giải quyếtViacute dụ Số thứ tự 0 1 2 3 Kiacutech thước cửa sổ = 3

becircn nhận khocircng thấy sự khaacutec nhau trong 2 tigravenh huống

chuyển khocircng chiacutenh xaacutec dữ liệu trugraveng lặp như dữ liệu mới trong (a)

Hỏi quan hệ giữa datildey số thứ tự vagrave kiacutech thước cửa sổ

Transport Layer 3-54

Chương 3 Nội dung trigravenh bagravey

31 Caacutec dịch vụ lớp Transport

32 Multiplexing vagrave demultiplexing

33 Vận chuyển khocircng kết nối UDP

34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy

35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối

36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn

37 Điều khiển tắc nghẽn TCP

Transport Layer 3-55

TCP Tổng quan RFCs 793 1122 1323 2018 2581

dữ liệu full duplex luồng dữ liệu đi 2 chiều

trong cugraveng một kết nối MSS maximum

segment size ndash kiacutech thước đoạn tối đa

hướng kết nối bắt tay (trao đổi caacutec

thocircng điệp điều khiển) trạng thaacutei becircn gửi becircn nhận trước khi trao đổi dữ liệu

điều khiển luồng becircn gửi sẽ khocircng lấn aacutet

becircn nhận

point-to-point một becircn gửi một becircn

nhận tin cậy dograveng byte coacute

thứ tự khocircng ldquoranh giới thocircng

điệprdquo kecircnh liecircn lạc

TCP điều khiển luồng vagrave tắc nghẽn thiết lập kiacutech thước cửa sổ

caacutec bộ đệm gửi amp nhận

socketdoor

T C Psend buffer

T C Preceive buffer

socketdoor

segm ent

applicationwrites data

applicationreads data

Transport Layer 3-56

TCP cấu truacutec đoạn

port nguồn port điacutech

32 bits

dữ liệu ứng dụng(độ dagravei thay đổi)

số thứ tự

số ACKcửa sổ nhận

con trỏ URGchecksum

FSRPAUheadlen

notused

Tugravey chọn (độ dagravei thay đổi)

URG dữ liệu khẩn cấp(thường khocircng dugraveng)

ACK ACK hợp lệ

PSH push data now(thường khocircng dugraveng)

RST SYN FINthiết lập kết nối

(caacutec lệnh thiết lậpchia nhỏ)

số byte becircn nhận sẵn sagraveng chấp nhận

đếm bởi số bytecủa dữ liệu

Internetchecksum

(giống UDP)

Transport Layer 3-57

Caacutec số thứ tự TCP vagrave ACKCaacutec số thứ tự

dograveng byte ldquođaacutenh sốrdquo byte đầu tiecircn trong dữ liệu của đoạn

caacutec ACK số thứ tự của byte

kế tiếp được chờ đợi từ phiacutea becircn kia

ACK tiacutech lũyHỏi lagravem thế nagraveo becircn

nhận quản lyacute caacutec đoạn khocircng thứ tự Trả lời TCP khocircng

đề cập tugravey thuộc người hiện thực

Host A Host B

Seq=42 ACK=79 data = lsquoCrsquo

Seq=79 ACK=43 data = lsquoCrsquo

Seq=43 ACK=80

UsernhậplsquoCrsquo

host ACKsnhận phản hồi

lsquoCrsquo

host ACKsbaacuteo nhận

lsquoCrsquo phản hồingược lại lsquoCrsquo

timetigravenh huống telnet đơn giản

Transport Layer 3-58

TCP Round Trip Time vagraveTimeout

Hỏi Lagravem thế nagraveo để thiết lập giaacute trị TCP timeout

dagravei hơn RTT khaacutec với RTT

quaacute ngắn timeout sớm truyền lại khocircng

cần thiết quaacute dagravei phản ứng

chậm đối với việc mất maacutet goacutei

Hỏi Lagravem thế nagraveo để thiết lập RTT

SampleRTT thời gian được đo từ khi truyền đoạn đến khi baacuteo nhận ACK lờ đi việc truyền lại

SampleRTT sẽ thay đổi muốn ước lượng RTT ldquomượt hơnrdquo tiacutenh trung bigravenh một số giaacute

trị đo được gần đoacute khocircng chỉ SampleRTT hiện tại

Transport Layer 3-59

TCP Round Trip Time vagrave Timeout

EstimatedRTT = (1- )EstimatedRTT + SampleRTT

giaacute trị đặc trưng = 0125

Transport Layer 3-60

Viacute dụ đaacutenh giaacute RTTRTT gaiacsumassedu to fantasiaeurecomfr

100

150

200

250

300

350

1 8 15 22 29 36 43 50 57 64 71 78 85 92 99 106

time (seconnds)

RTT

(mill

isec

onds

)

SampleRTT Estimated RTT

Transport Layer 3-61

TCP Round Trip Time vagrave Timeout

Thiết lập timeout EstimtedRTT cộng ldquohệ số dự trữ an toagravenrdquo

sự biến thiecircn lớn trong EstimatedRTT -gt hệ số dự trữ an toagraven lớn hơn ước lượng đầu tiecircn về sự biến thiecircn của SampleRTT từ EstimatedRTT

TimeoutInterval = EstimatedRTT + 4DevRTT

DevRTT = (1-)DevRTT + |SampleRTT-EstimatedRTT|

(tiecircu biểu = 025)

Sau đoacute thiết lập timeout interval

Transport Layer 3-62

TCP truyền dữ liệu tin cậy

TCP tạo dịch vụ rdt trecircn dịch vụ khocircng tin cậy IP

caacutec đoạn Pipelined caacutec ACK tiacutech lũy TCP dugraveng bộ định thigrave

truyền lại đơn

Truyền lại được kiacutech hoạt bởi caacutec sự kiện timeout caacutec ack trugraveng lặp

luacutec đầu khảo saacutet caacutec becircn gửi TCP đơn giản lờ đi caacutec ack trugraveng lặp lờ đi điều khiển luồng

điều khiển tắc nghẽn

Transport Layer 3-63

TCP caacutec sự kiệndữ liệu đatilde nhận từ ứng

dụng tạo đoạn với số thứ

tự của noacute số thứ tự lagrave số theo

byte dữ liệu đầu tiecircn khởi động bộ định thigrave

nếu chưa chạy khoảng thời gian hết

hạn TimeOutInterval

timeout gửi lại đoạn nagraveo gacircy

ra timeout khởi động lại bộ định

thigrave Ack đatilde nhận

cập nhật caacutei gigrave sẽ được ACK

khởi động bộ định thigrave nếu coacute caacutec đoạn cograven chờ

Transport Layer 3-64

TCP becircn gửi(đơn giản)

NextSeqNum = InitialSeqNum SendBase = InitialSeqNum

loop (forever) switch(event)

event data received from application above create TCP segment with sequence number NextSeqNum if (timer currently not running) start timer pass segment to IP NextSeqNum = NextSeqNum + length(data)

event timer timeout retransmit not-yet-acknowledged segment with smallest sequence number start timer

event ACK received with ACK field value of y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer

end of loop forever

Chuacute thiacutechbull SendBase-1 byte vừa được ACK tiacutech lũy Viacute dụbull SendBase-1 = 71y= 73 vigrave thế becircn nhận muốn 73+ y gt SendBase vigrave thế dữ liệu mới được chấp nhận

Transport Layer 3-65

TCP caacutec tigravenh huống truyền lại

Host A

Seq=100 20 bytes data

ACK=100

timetimeout sớm

Host B

Seq=92 8 bytes data

ACK=120

Seq=92 8 bytes data

Seq=

92

tim

eout

ACK=120

Host A

Seq=92 8 bytes data

ACK=100

loss

tim

eout

tigravenh huống mất ACK

Host B

X

Seq=92 8 bytes data

ACK=100

time

Seq=

92

tim

eout

SendBase= 100

SendBase= 120

SendBase= 120

Sendbase= 100

Transport Layer 3-66

TCP caacutec tigravenh huống truyền lại (tt)Host A

Seq=92 8 bytes data

ACK=100

loss

tim

eout

Cumulative ACK scenario

Host B

X

Seq=100 20 bytes data

ACK=120

time

SendBase= 120

Transport Layer 3-67

TCP sinh ra ACK [RFC 1122 RFC 2581]

Sự kiện tại becircn nhận

Đoạn đến với đuacuteng số thứ tự mong muốn Tất cả dữ liệu đếnđatilde được ACK

Đoạn đến với đuacuteng số thứ tự mong muốn Một đoạn khaacutec đangchờ ACK

Caacutec đoạn đến khocircng thứ tựlớn hơn số thứ tự đoạn mong muốnCoacute khoảng trống

Đoạn đếnlấp đầy từng phần hoặc toagraven bộkhoảng trống

TCP becircn nhận hagravenh động

ACK trễ Chờ đến 500mscho đoạn kế tiếp Nếu khocircng coacute đoạnkế tiếp gửi ACK

Gửi ngay một ACK tiacutech lũy chấp nhậncho cả caacutec đoạn theo thứ tự

Gửi ngay ACK trugraveng lặp chỉ thị số thứ tựđoạn của byte kế tiếp đang mong chờ

Gửi ngay ACK với điều kiện lagrave đoạnbắt đầu ngay điểm coacute khoảng trống

Transport Layer 3-68

Truyền lại nhanh

Chu kỳ Time-out thường tương đối dagravei độ trễ dagravei trước khi gửi

lại goacutei đatilde mất

Xaacutec nhận caacutec đoạn đatilde mất bằng caacutec ACK trugraveng lặp becircn gửi thường gửi

nhiều đoạn song song Nếu đoạn bị mất sẽ

xảy ra tigravenh trạng giống như nhiều ACK trugraveng nhau

Nếu becircn gửi nhận 3 ACK của cugraveng một dữ liệu noacute cho lagrave đoạn sau dữ liệu đatilde ACK bị mất Truyền lại nhanh gửi

lại đoạn trước khi bộ định thigrave hết hạn

Transport Layer 3-69

sự kiện ACK đatilde nhận với trường lagrave y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer else increment count of dup ACKs received for y if (count of dup ACKs received for y = 3) resend segment with sequence number y

Giải thuật truyền lại nhanh

một ACK trugraveng lặp cho đoạn đatilde được ACK

Truyền lại nhanh

Transport Layer 3-70

Chương 3 Nội dung trigravenh bagravey

31 Caacutec dịch vụ lớp Transport

32 Multiplexing vagrave demultiplexing

33 Vận chuyển khocircng kết nối UDP

34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy

35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối

36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn

37 Điều khiển tắc nghẽn TCP

Transport Layer 3-71

TCP điều khiển luồng

becircn nhận của kết nối TCP coacute một bộ đệm nhận

dịch vụ so trugraveng tốc độ so trugraveng tốc độ gửi với tốc độ nhận của ứng dụng

tiến trigravenh ứng dụng coacute thể chậm tại luacutec đọc bộ đệm

becircn gửi sẽ khocircng lagravem tragraven bộ đệm vigrave truyền quaacute nhiều vagrave

quaacute nhanh

điều khiển luồng

Transport Layer 3-72

TCP điều khiển luồng caacutech lagravem

(Giả sử becircn nhận TCP loại bỏ caacutec đoạn khocircng coacute thứ tự)

dự phograveng trong bộ đệm= RcvWindow

= RcvBuffer-[LastByteRcvd - LastByteRead]

Becircn nhận thocircng baacuteo khoảng dự trữ nhờ giaacute trị RcvWindow trong caacutec đoạn

Becircn gửi hạn chế dữ liệu khocircng được ACK vagraveo RcvWindow bảo đảm bộ đệm nhận

khocircng tragraven

Transport Layer 3-73

Chương 3 Nội dung trigravenh bagravey

31 Caacutec dịch vụ lớp Transport

32 Multiplexing vagrave demultiplexing

33 Vận chuyển khocircng kết nối UDP

34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy

35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối

36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn

37 Điều khiển tắc nghẽn TCP

Transport Layer 3-74

TCP quản lyacute kết nối

Chuacute yacute Becircn gửi vagrave becircn nhận TCP thiết lập ldquokết nốirdquo trước khi trao đổi dữ liệu

khởi tạo caacutec biến TCP caacutec số thứ tự đoạn thocircng tin caacutec bộ đệm điều

khiển luồng (như RcvWindow)

client người khởi xướng kết nối

Socket clientSocket = new Socket(hostnameport

number) server được tiếp xuacutec bởi

client Socket connectionSocket =

welcomeSocketaccept()

3 phương phaacutep bắt tay

Bước 1 client host gửi đoạnTCP SYN đến server xaacutec định số thứ tự khởi đầu khocircng phải dữ liệu

Bước 2 server host nhận SYN trả lời với đoạn SYNACK

server cấp phaacutet caacutec bộ đệm

xaacutec định số thứ tự khởi đầuBước 3 client nhận SYNACK trả

lời với đoạn ACK (coacute thể chứa dữ liệu)

Transport Layer 3-75

TCP quản lyacute kết nối (tt)

Đoacuteng một kết nối

client đoacuteng socket clientSocketclose()

Bước 1 client gửi đoạn điều khiển TCP FIN đến server

Bước 2 server nhận FIN trả lời với ACK Đoacuteng kết nối gửi FIN

client

FIN

server

ACK

ACK

FIN

đoacuteng

đoacuteng

đatilde đoacutengthời g

ian c

hờ

Transport Layer 3-76

TCP quản lyacute kết nối (tt)

Bước 3 client nhận FIN trả lời với ACK

Trong khoảng ldquothời gian chờrdquo ndash sẽ phản hồi với ACK để nhận caacutec FIN

Bước 4 server nhận ACK Kết nối đatilde đoacuteng

Chuacute yacute với một sửa đổi nhỏ coacute thể quản lyacute nhiều FIN đồng thời

client

FIN

server

ACK

ACK

FIN

đang đoacuteng

đang đoacuteng

đatilde đoacuteng

thời g

ian c

hờ

đatilde đoacuteng

Transport Layer 3-77

TCP quản lyacute kết nối (tt)

chu kỳ sống củaTCP client

chu kỳ sống củaTCP server

Transport Layer 3-78

Chương 3 Nội dung trigravenh bagravey

31 Caacutec dịch vụ lớp Transport

32 Multiplexing vagrave demultiplexing

33 Vận chuyển khocircng kết nối UDP

34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy

35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối

36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn

37 Điều khiển tắc nghẽn TCP

Transport Layer 3-79

Caacutec nguyecircn lyacute điều khiển tắc nghẽn

Tắc nghẽn ldquoquaacute nhiều nguồn gửi quaacute nhanh vagrave quaacute nhiều

dữ liệu đến mạngrdquo khaacutec với điều khiển luồng caacutec biểu hiện

caacutec goacutei bị mất (tragraven bộ đệm tại caacutec router) caacutec độ trễ quaacute dagravei (xếp hagraveng trong bộ đệm

của router) lagrave 1 trong 10 vấn đề nan giải nhất

Transport Layer 3-80

Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 1

2 gửi 2 nhận 1 router caacutec bộ

đệm khocircng giới hạn

khocircng coacute truyền lại

caacutec độ trễ lớn hơn khi tắc nghẽn

năng suất coacute thể đạt tối đa

unlimited shared output link buffers

Host Ain original data

Host B

out

Transport Layer 3-81

Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 2

1 router caacutec bộ đệm coacute giới hạn becircn gửi truyền lại caacutec goacutei đatilde mất

chia sẻ vocirc hạncaacutec bộ đệm ouput

Host A in dữ liệu gốc

Host B

out

in dữ liệu gốc cugraveng với dữ liệu truyền lại

Transport Layer 3-82

Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 2 luocircn luocircn

truyền lại ldquohoagraven toagravenrdquo chỉ khi mất maacutet

truyền lại vigrave trễ (khocircng mất) lagravem cho lớn hơn với cugraveng

in

out

=

in

out

gt

in

out

ldquocaacutec chi phiacuterdquo của tắc nghẽn nhiều việc (truyền lại) caacutec truyền lại khocircng cần thiết liecircn kết nhiều bản sao của

goacutei

R2

R2in

ou

t

b

R2

R2in

ou

t

a

R2

R2in

ou

t

c

R4

R3

Transport Layer 3-83

Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 3 4 người gửi caacutec đường qua nhiều hop timeouttruyền lại

in

Hỏi điều gigrave xảy ra nếu vagrave tăng lecircn

in

chia sẻ vocirc hạncaacutec bộ đệm ouput

Host Ain dữ liệu gốc

Host B

out

in dữ liệu gốc cugraveng với dữ liệu truyền lại

Transport Layer 3-84

Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 3

ldquochi phiacuterdquo khaacutec của tắc nghẽn khi caacutec goacutei bị bỏ bất kỳ ldquokhả năng truyền

upstream dugraveng cho goacutei đoacute sẽ bị latildeng phiacuterdquo

Host A

Host B

o

u

t

Transport Layer 3-85

Caacutec caacutech tiếp cận đối với điều khiển tắc nghẽn

điều khiển tắc nghẽn end-end

khocircng coacute phản hồi rotilde ragraveng từ mạng

tắc nghẽn được suy ra từ việc quan saacutet caacutec hệ thống đầu cuối coacute mất maacutet trễ

tiếp cận được quản lyacute bởi TCP

điều khiển tắc nghẽn coacute sự hỗ trợ của mạng

caacutec router cung cấp phản hồi về caacutec hệ thống đầu cuối 1 bit duy nhất chỉ thị

tắc nghẽn (SNA DECbit TCPIP ECN ATM)

tốc độ sẽ gửi được xaacutec định rotilde ragraveng

2 caacutech

Transport Layer 3-86

Viacute dụ điều khiển tắc nghẽn ATM ABR

ABR tốc độ bit sẵn sagraveng

ldquodịch vụ mềm dẻordquo nếu đường gửi ldquochưa

hếtrdquo becircn gửi sẽ dugraveng

băng thocircng sẵn sagraveng nếu đường gửi tắc

nghẽn becircn gửi điều tiết với

tốc độ tối thiểu

RM (resource management)

gửi bởi becircn gửi rải raacutec với caacutec ocirc dữ liệu

caacutec bit trong ocirc thiết lập bởi caacutec switch bit NI khocircng tăng tốc độ

(tắc nghẽn nhẹ) bit CI tắc nghẽn rotilde rệt

Caacutec ocirc RM được trả về becircn gửi từ becircn nhận với nguyecircn vẹn caacutec bit

Transport Layer 3-87

Viacute dụ điều khiển tắc nghẽn ATM ABR

trường 2-byte ER trong ocirc RM switch đatilde tắc nghẽn coacute thể coacute giaacute trị ER thấp hơn trong ocirc tốc độ gửi do đoacute coacute thể được hỗ trợ tối đa trecircn đường

EFCI bit trong caacutec ocirc dữ liệu được cagravei giaacute trị 1 trong switch đatilde tắc nghẽn nếu ocirc dữ liệu đứng trước ocirc RM coacute cagravei EFCI becircn gửi sẽ cagravei

bit CI trong ocirc RM trả về

Transport Layer 3-88

Chương 3 Nội dung trigravenh bagravey

31 Caacutec dịch vụ lớp Transport

32 Multiplexing vagrave demultiplexing

33 Vận chuyển khocircng kết nối UDP

34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy

35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối

36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn

37 Điều khiển tắc nghẽn TCP

Transport Layer 3-89

TCP điều khiển tắc nghẽn additive tăng lecircn multiplicative giảm xuống

8 Kbytes

16 Kbytes

24 Kbytes

time

congestionwindow

Caacutech tiếp cận tăng tốc độ truyền (kiacutech thước cửa sổ) tigravem khả năng băng thocircng coacute thể cho đến khi coacute mất maacutet xảy ra additive tăng lecircn tăng CongWin bởi 1 MSS

mỗi RTT cho đến khi coacute mất maacutet xảy ra multiplicative giảm xuống bỏ CongWin trong

nửa giai đoạn sau khi mất maacutet

timekiacutech

thư

ớc

cửa

sổ

tắc

nghẽ

n

Tigravem kiếm băng thocircng

Transport Layer 3-90

TCP điều khiển tắc nghẽn chi tiết

becircn gửi hạn chế việc truyền LastByteSent-LastByteAcked

CongWin Cocircng thức

CongWin thay đổi chức năng lagrave nhận biết tắc nghẽn trecircn mạng

Lagravem thế nagraveo becircn gửi nhận biết tắc nghẽn

mất maacutet xảy ra = timeout hoặc 3 ack trugraveng lặp

becircn gửi giảm tốc độ (CongWin) sau khi mất maacutet xảy ra

3 cơ chế AIMD khởi động chậm thận trọng sau khi coacute

caacutec sự kiện timeout

tốc độ = CongWin

RTT Bytess

Transport Layer 3-91

TCP khởi động chậm

Khi kết nối bắt đầu CongWin = 1 MSS Viacute dụ MSS = 500 bytes

amp RTT = 200 ms tốc độ khởi tạo = 20

kbps

băng thocircng sẵn sagraveng coacute thể gtgt MSSRTT mong muốn nhanh

choacuteng tăng tốc lecircn tốc độ coacute thể đaacutep ứng

Khi kết nối bắt đầu tăng tốc lecircn rất nhanh cho đến khi sự cố mất maacutet xảy ra đầu tiecircn

Transport Layer 3-92

TCP khởi động chậm (tt)

Khi kết nối bắt đầu tăng tốc lecircn rất nhanh cho đến khi sự cố mất maacutet xảy ra đầu tiecircn nhacircn đocirci CongWin mỗi

RTT hoagraven thagravenh nhờ tăng CongWin ứng với mỗi ACK đatilde nhận

Tổng kết tốc độ khởi đầu lagrave chậm nhưng sau đoacute tăng tốc rất nhanh

Host A

1 đoạn

RTT

Host B

thời gian

2 đoạn

4 đoạn

Transport Layer 3-93

Tinh chếHỏi Khi nagraveo việc tăng

tốc trở thagravenh tuyến tiacutenh

Trả lời Khi CongWin đạt đến 12 giaacute trị của noacute trước khi timeout

Hiện thực Ngưỡng thay đổi Tại thời điểm coacute sự cố

mất maacutet ngưỡng được cagravei giaacute trị bằng frac12 của CongWin ngay trước đoacute

Transport Layer 3-94

Tinh chế nhận biết mất maacutet

Sau 3 ACK trugraveng lặp CongWin sẽ giảm 12 kiacutech thước cửa sổ

tăng tuyến tiacutenh nhưng sau sự cố

timeout CongWin thay giaacute trị

bằng 1 MSS kiacutech thước cửa sổ

tăng cấp lũy thừa khi đến một ngưỡng

thigrave tăng tuyến tiacutenh

3 ACK trugraveng nhau chỉ ra khả năng truyền của mạng timeout chỉ thị ldquonhiều cảnh baacuteordquo về tigravenh huống tắc nghẽn

Nguyecircn lyacute

Transport Layer 3-95

Tổng kết TCP điều khiển tắc nghẽn

Khi CongWin dưới Threshold becircn gửi đang trong giai đoạn khởi động chậm kiacutech thước cửa sổ tăng nhanh theo cấp lũy thừa

Khi CongWin trecircn Threshold becircn gửi đang trong giai đoạn traacutenh tắc nghẽn kiacutech thước cửa sổ tăng nhanh theo cấp tuyến tiacutenh

Khi coacute 3 ACK trugraveng lặp xảy ra Threshold = CongWin2 vagrave CongWin = Threshold

Khi timeout xảy ra Threshold = CongWin2 vagrave CongWin = 1 MSS

Transport Layer 3-96

TCP điều khiển tắc nghẽn becircn gửi

Trạng thaacutei Sự kiện TCP becircn gửi hagravenh động Diễn giải

Slow Start (SS)-Khởi động chậm

ACK baacuteo nhận cho dữ liệu chưa ACK trước đoacute

CongWin = CongWin + MSS If (CongWin gt Threshold) cagravei đặt trạng thaacutei ldquoTraacutenh tắc nghẽnrdquo

Hậu quả lagravem tăng gấp đocirci CongWin mỗi RTT

CongestionAvoidance (CA) ndashTraacutenh tắc nghẽn

ACK baacuteo nhận cho dữ liệu chưa ACK trước đoacute

CongWin = CongWin+MSS (MSSCongWin)

Additive tăng lecircn lagravem tăng CongWin lecircn 1 MSS mỗi RTT

SS hoặc CA Sự cố mất maacutet xảy ra khi thấy coacute 3 ACK trugraveng lặp

Threshold = CongWin2 CongWin = Thresholdcagravei đặt trạng thaacutei ldquoTraacutenh tắc nghẽnrdquo

Khocirci phục nhanh hiện thực giảm xuống multiplicative CongWin sẽ khocircng giảm xuống dưới 1 MSS

SS hoặc CA Timeout Threshold = CongWin2 CongWin = 1 MSScagravei đặt trạng thaacutei ldquoKhởi động chậmrdquo

Vagraveo chế độ ldquoKhởi động chậmrdquo

SS hoặc CA ACK trugraveng lặp

Đếm ACK tăng lecircn cho đoạn vừa được ACK

CongWin vagrave Threshold khocircng thay đổi

Transport Layer 3-97

TCP throughput

Throughout trung bigravenh của TCP biểu diễn qua kiacutech thước của sổ vagrave RTT Bỏ qua trạng thaacutei ldquoKhởi động chậmrdquo

Cho W lagrave kiacutech thước cửa sổ khi coacute mất maacutet xảy ra

Khi kiacutech thước cửa sổ = W lưu lượng = WRTT

Chỉ ngay sau khi mất maacutet cửa sổ giảm xuống = W2 lưu lượng = W2RTT

throughout trung bigravenh 075 WRTT

Transport Layer 3-98

TCP tương lai

Viacute dụ caacutec đoạn dagravei 1500 byte RTT 100ms lưu lượng 10 Gbps

Kiacutech thước cửa sổ yecircu cầu W = 83333 đoạn trecircn đường truyền

Lưu lượng trong caacutec trường hợp mất maacutet

L = 210-10

Phiecircn bản mới của TCP dagravenh cho nhu cầu tốc độ cao

LRTT

MSS221

Transport Layer 3-99

Mục tiecircu nếu K phiecircn lagravem việc TCP chia sẻ kết nối cổ chai của băng thocircng lagrave R mỗi phiecircn coacute tốc độ trung bigravenh lagrave RK

TCP kết nối 1

router cổ chaikhả năng R

TCP kết nối 2

TCP tiacutenh cocircng bằng

Transport Layer 3-100

Tại sao phải TCP cocircng bằng

2 phiecircn lagravem việc cạnh tranh nhau Additive tăng lưu lượng tăng multiplicative giảm lưu lượng tương xứng

R

R

chia sẻ băng thocircng bằng nhau

Connection 1 throughputConnect

ion 2

th

roughput

traacutenh tắc nghẽn additive tăng lecircnmất maacutet giảm cửa sổ bằng 12

traacutenh tắc nghẽn additive tăng lecircnmất maacutet giảm cửa sổ bằng 12

Transport Layer 3-101

TCP tiacutenh cocircng bằng (tt)

Tiacutenh cocircng bằng amp UDP nhiều ứng dụng

thường khocircng dugraveng TCP khocircng muốn tốc độ bị

điều tiết do điều khiển tắc nghẽn

Thay bằng dugraveng UDP truyền audiovideo với

tốc độ ổn định chịu được mất maacutet

Nghiecircn cứu giao thức thacircn thiện với TCP

Tiacutenh cocircng bằng amp caacutec kết nối TCP song song

khocircng coacute gigrave ngăn cản việc ứng dụng mở caacutec kết nối song song giữa 2 host

Trigravenh duyệt Web lagravem giống như thế

Viacute dụ tốc độ R hỗ trợ 9 kết nối ứng dụng mới yecircu cầu 1

TCP coacute tốc độ R10 ứng dụng mới yecircu cầu 11

TCP coacute tốc độ R2

Transport Layer 3-102

Mocirc higravenh trễ

Hỏi Mất bao lacircu để nhận 1 đối tượng từ Web server sau khi gửi yecircu cầu

Bỏ qua tắc nghẽn trễ bị ảnh hưởng bởi

thiết lập kết nối TCP trễ truyền dữ liệu khởi động chậm

Notation caacutec giả định Giả sử một kết nối giữa

client vagrave server coacute tốc độ R

S MSS (bits) O kiacutech thước đối tượng

(bits) khocircng truyền lại (khocircng

mất maacutet khocircng hỏng)

Kiacutech thước cửa sổ Giả định 1 cửa sổ tắc

nghẽn cố định coacute W đoạn Sau đoacute cửa sổ thay đổi

mocirc higravenh khởi động chậm

Transport Layer 3-103

Cửa sổ tắc nghẽn cố định (1)

Trường hợp đầu tiecircnWSR gt RTT + SR cho

đoạn đầu tiecircn trong cửa sổ trả về trước khi cửa sổ dữ liệu gửi ACK

trễ = 2RTT + OR

Transport Layer 3-104

Cửa sổ tắc nghẽn cố định (2)

Trường hợp thứ hai WSR lt RTT + SR sent

chờ cho ACK sau khi gửi dữ liệu

trễ = 2RTT + OR+ (K-1)[SR + RTT - WSR]

Transport Layer 3-105

TCP Mocirc higravenh trễ Khởi động chậm (1)

Bacircy giờ giả sử kiacutech thước cửa sổ tăng lecircn tugravey theo quaacute trigravenh khởi động chậm

Độ trễ của một đối tượng sẽ lagrave

R

S

R

SRTTP

R

ORTTLatency P )12(2

trong đoacute P lagrave số lần TCP rảnh ở tại server

1min KQP

- trong đoacute Q lagrave số lần server rảnh nếu đối tượng đatilde khởi tạo kiacutech thước

- vagrave K lagrave số lượng cửa sổ bao trugravem đối tượng

Transport Layer 3-106

TCP Mocirc higravenh trễ Khởi động chậm (2)

RTT

initia te TCPconnection

requestobject

first w indow= S R

second w indow= 2S R

third w indow= 4S R

fourth w indow= 8S R

com pletetransm issionobject

delivered

tim e atc lient

tim e atserver

Viacute dụbull OS = 15 đoạnbull K = 4 cửa sổbull Q = 2bull P = minK-1Q = 2

Server rảnh P=2 lần

Caacutec thagravenh phần trễbull 2 RTT dagravenh cho thiết lập kết nối vagrave yecircu cầubull OR để truyền đối tượngbullthời gian server rảnh bởi vigrave khởi động chậm

Server rảnh P = minK-1Q lần

Transport Layer 3-107

TCP Mocirc higravenh trễ(3)

R

S

R

SRTTPRTT

R

O

R

SRTT

R

SRTT

R

O

idleTimeRTTR

O

P

kP

k

P

pp

)12(][2

]2[2

2delay

1

1

1

th window after the timeidle 2 1 kR

SRTT

R

S k

ementacknowledg receivesserver until

segment send tostartsserver when from time RTTR

S

window kth the transmit totime2 1

R

Sk

RTT

initia te TCPconnection

requestobject

first w indow= S R

second w indow= 2S R

third w indow= 4S R

fourth w indow= 8S R

com pletetransm issionobject

delivered

tim e atc lient

tim e atserver

Transport Layer 3-108

TCP Mocirc higravenh trễ (4)

)1(log

)1(logmin

12min

222min

222min

2

2

110

110

S

OS

Okk

S

Ok

SOk

OSSSkK

k

k

k

caacutech tiacutenh toaacuten Q tương tự (xem HW)

K = số lượng cửa sổ bao trugravem đối tượngLagravem thế nagraveo tiacutenh được K

Transport Layer 3-109

HTTP Mocirc higravenh Giả sử trang Web chứa

1 trang HTML (kiacutech thước O bits) M higravenh ảnh (mỗi caacutei kiacutech thướcO bits)

HTTP khocircng bền vững M+1 TCP kết nối Thời gian đaacutep ứng = (M+1)OR + (M+1)2RTT + tổng số thời

gian rảnh HTTP bền vững

2 RTT để yecircu cầu vagrave nhận file HTML 1 RTT để yecircu cầu vagrave nhận M higravenh ảnh Thời gian đaacutep ứng = (M+1)OR + 3RTT + tổng số thời gian

rảnh HTTP khocircng bền vững với X kết nối song song

Giả sử MX lagrave số nguyecircn 1 TCP kết nối cho file MX thiết lập caacutec kết nối song song cho caacutec higravenh ảnh Thời gian đaacutep ứng = (M+1)OR + (MX + 1)2RTT + tổng số

thời gian rảnh

Transport Layer 3-110

02468

101214161820

28Kbps

100Kbps

1Mbps

10Mbps

non-persistent

persistent

parallel non-persistent

HTTP thời gian đaacutep ứng (giacircy)RTT = 100 msec O = 5 Kbytes M=10 vagrave X=5

Với băng thocircng thấp thời gian kết nối amp đaacutep ứng trội hơn thời gian truyền

Caacutec kết nối bền vững chỉ cho sự cải thiện khocircng đaacuteng kể trecircn caacutec kết nối song song

Transport Layer 3-111

0

10

20

30

40

50

60

70

28Kbps

100Kbps

1Mbps

10Mbps

non-persistent

persistent

parallel non-persistent

HTTP thời gian đaacutep ứng (giacircy)

RTT =1 sec O = 5 Kbytes M=10 and X=5

Với RTT lớn hơn thời gian đaacutep ứng trội hơn thời gian trễ chờ thiết lập kết nốiTCP amp khởi động chậm Caacutec kết nối bền vững bacircy giờ cho thấy cải thiện rotilde rệt đặc biệtvới caacutec mạng băng thocircng cao

Transport Layer 3-112

Chương 3 Tổng kết caacutec nguyecircn lyacute của caacutec

dịch vụ lớp transport multiplexing

demultiplexing truyền dữ liệu tin cậy điều khiển luồng điều khiển tắc nghẽn

khởi tạo vagrave hiện thực trong Internet UDP TCP

Tiếp theo nghiecircn cứu xong

caacutec vấn đề ldquongoagravei biecircnrdquo (caacutec lớp application transport)

chuẩn bị vagraveo phần ldquolotildeirdquo của mạng

  • Slide 1
  • Chương 3 Lớp Transport
  • Chương 3 Nội dung trigravenh bagravey
  • Caacutec dịch vụ vagrave giao thức Transport
  • Lớp Transport với lớp network
  • Caacutec giao thức lớp transport trecircn Internet
  • Slide 7
  • Multiplexingdemultiplexing
  • Demultiplexing lagravem việc như thế nagraveo
  • Demultiplexing khocircng kết nối
  • Demultiplexing khocircng kết nối (tiếp)
  • Demultiplexing hướng kết nối
  • Demultiplexing hướng kết nối (tiếp)
  • Demultiplexing hướng kết nối Threaded Web Server
  • Slide 15
  • UDP User Datagram Protocol [RFC 768]
  • UDP (tt)
  • UDP checksum
  • Viacute dụ Checksum
  • Slide 20
  • Caacutec nguyecircn lyacute truyền dữ liệu tin cậy
  • Slide 22
  • Slide 23
  • Truyền dữ liệu tin cậy
  • Slide 25
  • Rdt10 truyền dữ liệu tin cậy trecircn 1 kecircnh truyền tin cậy
  • Rdt20 kecircnh với caacutec lỗi
  • rdt20 đặc tả FSM
  • rdt20 hoạt động khi khocircng lỗi
  • rdt20 hoạt động khi coacute lỗi
  • rdt20 coacute lỗ hổng nghiecircm trọng
  • rdt21 người gửi quản lyacute caacutec ACKNAK bị hỏng
  • Slide 33
  • rdt21 thảo luận
  • rdt22 một giao thức khocircng cần NAK
  • rdt22 gửi nhận caacutec mảnh
  • rdt30 caacutec kecircnh với lỗi vagrave mất maacutet
  • rdt30 gửi
  • hagravenh động của rdt30
  • Slide 40
  • Hiệu suất của rdt30
  • rdt30 hoạt động dừng-vagrave-chờ
  • Caacutec giao thức Pipelined
  • Pipelining độ khả dụng tăng
  • Go-Back-N
  • GBN becircn gửi mở rộng FSM
  • GBN becircn nhận mở rộng FSM
  • GBN hoạt động
  • Lặp coacute lựa chọn
  • Lặp coacute lựa chọn caacutec cửa sổ gửi nhận
  • Slide 51
  • Hoạt động của lặp coacute lựa chọn
  • Lặp coacute lựa chọn tigravenh trạng khoacute giải quyết
  • Slide 54
  • TCP Tổng quan RFCs 793 1122 1323 2018 2581
  • TCP cấu truacutec đoạn
  • Caacutec số thứ tự TCP vagrave ACK
  • TCP Round Trip Time vagraveTimeout
  • TCP Round Trip Time vagrave Timeout
  • Viacute dụ đaacutenh giaacute RTT
  • Slide 61
  • TCP truyền dữ liệu tin cậy
  • TCP caacutec sự kiện
  • TCP becircn gửi (đơn giản)
  • TCP caacutec tigravenh huống truyền lại
  • TCP caacutec tigravenh huống truyền lại (tt)
  • TCP sinh ra ACK [RFC 1122 RFC 2581]
  • Truyền lại nhanh
  • Giải thuật truyền lại nhanh
  • Slide 70
  • TCP điều khiển luồng
  • TCP điều khiển luồng caacutech lagravem
  • Slide 73
  • TCP quản lyacute kết nối
  • TCP quản lyacute kết nối (tt)
  • Slide 76
  • Slide 77
  • Slide 78
  • Caacutec nguyecircn lyacute điều khiển tắc nghẽn
  • Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 1
  • Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 2
  • Slide 82
  • Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 3
  • Slide 84
  • Caacutec caacutech tiếp cận đối với điều khiển tắc nghẽn
  • Viacute dụ điều khiển tắc nghẽn ATM ABR
  • Slide 87
  • Slide 88
  • TCP điều khiển tắc nghẽn additive tăng lecircn multiplicative giảm xuống
  • TCP điều khiển tắc nghẽn chi tiết
  • TCP khởi động chậm
  • TCP khởi động chậm (tt)
  • Tinh chế
  • Tinh chế nhận biết mất maacutet
  • Tổng kết TCP điều khiển tắc nghẽn
  • TCP điều khiển tắc nghẽn becircn gửi
  • TCP throughput
  • TCP tương lai
  • TCP tiacutenh cocircng bằng
  • Tại sao phải TCP cocircng bằng
  • TCP tiacutenh cocircng bằng (tt)
  • Mocirc higravenh trễ
  • Cửa sổ tắc nghẽn cố định (1)
  • Cửa sổ tắc nghẽn cố định (2)
  • TCP Mocirc higravenh trễ Khởi động chậm (1)
  • TCP Mocirc higravenh trễ Khởi động chậm (2)
  • TCP Mocirc higravenh trễ(3)
  • TCP Mocirc higravenh trễ (4)
  • HTTP Mocirc higravenh
  • Slide 110
  • Slide 111
  • Chương 3 Tổng kết

Transport Layer 3-37

rdt30 caacutec kecircnh với lỗi vagrave mất maacutet

Giả định mới kecircnh ưu tiecircn cũng coacute thể lagravem mất caacutec goacutei (dữ liệu hoặc caacutec ACK) checksum số thứ tự

caacutec ACK caacutec việc truyền lại sẽ hỗ trợ nhưng khocircng đủ

Caacutech tiếp cận người gửi chờ ACK trong khoảng thời gian ldquochấp nhận đượcrdquo

truyền lại nếu khocircng nhận ACK trong khoảng thời gian nagravey

nếu goacutei (hoặc ACK) chỉ trễ (khocircng mất) truyền lại sẽ gacircy trugraveng

nhưng dugraveng số thứ tự sẽ giải quyết được

người nhận phải xaacutec định số thứ tự của goacutei vừa gửi ACK

cần bộ định thigrave đếm lugravei

Transport Layer 3-38

rdt30 gửi

sndpkt = make_pkt(0 data checksum)udt_send(sndpkt)start_timer

rdt_send(data)

Chờ cho

ACK 0

rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) ||isACK(rcvpkt1) )

Chờ cho gọi 1 từ trecircn

sndpkt = make_pkt(1 data checksum)udt_send(sndpkt)start_timer

rdt_send(data)

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt0)

rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) ||isACK(rcvpkt0) )

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt1)

stop_timerstop_timer

udt_send(sndpkt)start_timer

timeout

udt_send(sndpkt)start_timer

timeout

rdt_rcv(rcvpkt)

Chờ cho gọi 0 từ trecircn

Chờ cho

ACK 1

rdt_rcv(rcvpkt)

Transport Layer 3-39

hagravenh động của rdt30

Transport Layer 3-40

hagravenh động của rdt30

Transport Layer 3-41

Hiệu suất của rdt30

rdt30 lagravem việc được nhưng đaacutenh giaacute hiệu suất hơi rắc rối viacute dụ liecircn kết 1 Gbps trễ lan truyền giữa hai đầu cuối lagrave 15

ms goacutei 1KB

T truyền = 8kbpkt109 bsec

= 8 microsec

U sender độ khả dụng ndash

U sender

= 008

30008 = 000027

microseconds

L R

RTT + L R =

L (độ dagravei goacutei tiacutenh bằng bits)R (tốc độ truyền bps)

=

goacutei 1KB mỗi 30 msec -gt 33kBs trecircn đường truyền 1 Gbps giao thức network hạn chế việc dugraveng caacutec tagravei nguyecircn vật

lyacute

Transport Layer 3-42

rdt30 hoạt động dừng-vagrave-chờ

goacutei đầu tiecircn đatilde truyền t = 0

gửi nhận

RTT

goacutei cuối cugraveng đatilde truyền t = L R

goacutei đầu tiecircn đatilde đếngoacutei cuối cugraveng đatilde đến gửi ACK

ACK đến gửi goacutei kế tiếp t = RTT + L R

U sender

= 008

30008 = 000027

microseconds

L R

RTT + L R =

Transport Layer 3-43

Caacutec giao thức Pipelined

Pipelining người gửi cho pheacutep gửi nhiều goacutei đồng thời khocircng cần chờ baacuteo nhận được nhoacutem caacutec số thứ tự phải tăng dần phải coacute bộ nhớ đệm tại nơi gửi vagravehoặc nơi nhận

hai dạng phổ biến của caacutec giao thức pipelined go-Back-N Lặp coacute lựa chọn

Transport Layer 3-44

Pipelining độ khả dụng tăng

goacutei đầu tiecircn đatilde truyền t = 0

sender receiver

RTT

goacutei cuối cugraveng đatilde truyền t = L R

goacutei đầu tiecircn đatilde đếngoacutei cuối cugraveng đatilde đến gửi ACK

ACK đến gửi goacuteikế tiếp t = RTT + L R

bit cuối của goacutei thứ 2 đến gửi ACKbit cuối của goacutei thứ 3 đến gửi ACK

U sender

= 024

30008 = 00008

microseconds

3 L R

RTT + L R =

Độ khả dụng tăng lecircngấp 3 lần

Transport Layer 3-45

Go-Back-NBecircn gửi k-bit số thứ tự trong header của goacutei ldquocửa sổrdquo tăng lecircn đến N cho pheacutep gửi caacutec goacutei liecircn tục khocircng cần ACK

ACK(n) ACKs tất cả caacutec goacutei đến chứa số thứ tự n ndash ldquoACK tiacutech lũyrdquo coacute thể nhận caacutec ACK trugraveng lặp (xem becircn nhận)

định thigrave cho mỗi goacutei trecircn đường truyền timeout(n) gửi lại goacutei n vagrave tất cả caacutec goacutei coacute số thứ tự cao

hơn trong cửa sổ

Transport Layer 3-46

GBN becircn gửi mở rộng FSM

chờ start_timerudt_send(sndpkt[base])udt_send(sndpkt[base+1])hellipudt_send(sndpkt[nextseqnum-1])

timeout

rdt_send(data)

if (nextseqnum lt base+N) sndpkt[nextseqnum] = make_pkt(nextseqnumdatachksum) udt_send(sndpkt[nextseqnum]) if (base == nextseqnum) start_timer nextseqnum++ else refuse_data(data)

base = getacknum(rcvpkt)+1If (base == nextseqnum) stop_timer else start_timer

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)

base=1nextseqnum=1

rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)

Transport Layer 3-47

GBN becircn nhận mở rộng FSM

ACK-duy nhất luocircn luocircn gửi ACK cho goacutei đatilde nhận đuacuteng với số thứ tự xếp hạng cao nhất coacute thể sinh ra caacutec ACK trugraveng nhau chỉ cần nhớ expectedseqnum

goacutei khocircng theo thứ tự hủy -gt khocircng nhận vagraveo bộ đệm gửi lại ACK với số thứ tự xếp hạng cao nhất

chờ

udt_send(sndpkt)

default

rdt_rcv(rcvpkt) ampamp notcurrupt(rcvpkt) ampamp hasseqnum(rcvpktexpectedseqnum)

extract(rcvpktdata)deliver_data(data)sndpkt = make_pkt(expectedseqnumACKchksum)udt_send(sndpkt)expectedseqnum++

expectedseqnum=1sndpkt = make_pkt(expectedseqnumACKchksum)

Transport Layer 3-48

GBN hoạt động

Transport Layer 3-49

Lặp coacute lựa chọn

becircn nhận thocircng baacuteo đatilde nhận đuacuteng tất cả từng goacutei một đệm (buffer) caacutec goacutei nếu cần thiết

becircn gửi chỉ gửi lại caacutec goacutei nagraveo khocircng nhận được ACK becircn gửi định thigrave đối với mỗi goacutei khocircng gửi ACK

cửa sổ becircn gửi N số thứ tự liecircn tục hạn chế số thứ tự caacutec goacutei khocircng gửi ACK

Transport Layer 3-50

Lặp coacute lựa chọn caacutec cửa sổ gửi nhận

Transport Layer 3-51

Lặp coacute lựa chọn

dữ liệu từ lớp trecircn nếu số thứ tự kế tiếp sẵn

sagraveng trong cửa sổ gửi goacutei

timeout(n) gửi lại goacutei n taacutei khởi tạo

bộ định thigrave

ACK(n) trong [sendbasesendbase+N]

đaacutenh dấu goacutei n lagrave đatilde nhận nếu goacutei khocircng ACK coacute n

nhỏ nhất dịch chuyển cửa sổ base đến số thứ tự khocircng ACK kế tiếp

Gửigoacutei n trong [rcvbase

rcvbase+N-1]

gửi ACK(n) khocircng thứ tự đệm

(buffer) coacute thứ tự truyền (cũng

truyền caacutec goacutei đatilde đệm coacute thứ tự) dịch chuyển cửa sổ đến goacutei chưa nhận kế tiếp

goacutei n trong [rcvbase-Nrcvbase-1]

ACK(n)

ngược lại lờ đi

Nhận

Transport Layer 3-52

Hoạt động của lặp coacute lựa chọn

Transport Layer 3-53

Lặp coacute lựa chọntigravenh trạng khoacute giải quyếtViacute dụ Số thứ tự 0 1 2 3 Kiacutech thước cửa sổ = 3

becircn nhận khocircng thấy sự khaacutec nhau trong 2 tigravenh huống

chuyển khocircng chiacutenh xaacutec dữ liệu trugraveng lặp như dữ liệu mới trong (a)

Hỏi quan hệ giữa datildey số thứ tự vagrave kiacutech thước cửa sổ

Transport Layer 3-54

Chương 3 Nội dung trigravenh bagravey

31 Caacutec dịch vụ lớp Transport

32 Multiplexing vagrave demultiplexing

33 Vận chuyển khocircng kết nối UDP

34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy

35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối

36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn

37 Điều khiển tắc nghẽn TCP

Transport Layer 3-55

TCP Tổng quan RFCs 793 1122 1323 2018 2581

dữ liệu full duplex luồng dữ liệu đi 2 chiều

trong cugraveng một kết nối MSS maximum

segment size ndash kiacutech thước đoạn tối đa

hướng kết nối bắt tay (trao đổi caacutec

thocircng điệp điều khiển) trạng thaacutei becircn gửi becircn nhận trước khi trao đổi dữ liệu

điều khiển luồng becircn gửi sẽ khocircng lấn aacutet

becircn nhận

point-to-point một becircn gửi một becircn

nhận tin cậy dograveng byte coacute

thứ tự khocircng ldquoranh giới thocircng

điệprdquo kecircnh liecircn lạc

TCP điều khiển luồng vagrave tắc nghẽn thiết lập kiacutech thước cửa sổ

caacutec bộ đệm gửi amp nhận

socketdoor

T C Psend buffer

T C Preceive buffer

socketdoor

segm ent

applicationwrites data

applicationreads data

Transport Layer 3-56

TCP cấu truacutec đoạn

port nguồn port điacutech

32 bits

dữ liệu ứng dụng(độ dagravei thay đổi)

số thứ tự

số ACKcửa sổ nhận

con trỏ URGchecksum

FSRPAUheadlen

notused

Tugravey chọn (độ dagravei thay đổi)

URG dữ liệu khẩn cấp(thường khocircng dugraveng)

ACK ACK hợp lệ

PSH push data now(thường khocircng dugraveng)

RST SYN FINthiết lập kết nối

(caacutec lệnh thiết lậpchia nhỏ)

số byte becircn nhận sẵn sagraveng chấp nhận

đếm bởi số bytecủa dữ liệu

Internetchecksum

(giống UDP)

Transport Layer 3-57

Caacutec số thứ tự TCP vagrave ACKCaacutec số thứ tự

dograveng byte ldquođaacutenh sốrdquo byte đầu tiecircn trong dữ liệu của đoạn

caacutec ACK số thứ tự của byte

kế tiếp được chờ đợi từ phiacutea becircn kia

ACK tiacutech lũyHỏi lagravem thế nagraveo becircn

nhận quản lyacute caacutec đoạn khocircng thứ tự Trả lời TCP khocircng

đề cập tugravey thuộc người hiện thực

Host A Host B

Seq=42 ACK=79 data = lsquoCrsquo

Seq=79 ACK=43 data = lsquoCrsquo

Seq=43 ACK=80

UsernhậplsquoCrsquo

host ACKsnhận phản hồi

lsquoCrsquo

host ACKsbaacuteo nhận

lsquoCrsquo phản hồingược lại lsquoCrsquo

timetigravenh huống telnet đơn giản

Transport Layer 3-58

TCP Round Trip Time vagraveTimeout

Hỏi Lagravem thế nagraveo để thiết lập giaacute trị TCP timeout

dagravei hơn RTT khaacutec với RTT

quaacute ngắn timeout sớm truyền lại khocircng

cần thiết quaacute dagravei phản ứng

chậm đối với việc mất maacutet goacutei

Hỏi Lagravem thế nagraveo để thiết lập RTT

SampleRTT thời gian được đo từ khi truyền đoạn đến khi baacuteo nhận ACK lờ đi việc truyền lại

SampleRTT sẽ thay đổi muốn ước lượng RTT ldquomượt hơnrdquo tiacutenh trung bigravenh một số giaacute

trị đo được gần đoacute khocircng chỉ SampleRTT hiện tại

Transport Layer 3-59

TCP Round Trip Time vagrave Timeout

EstimatedRTT = (1- )EstimatedRTT + SampleRTT

giaacute trị đặc trưng = 0125

Transport Layer 3-60

Viacute dụ đaacutenh giaacute RTTRTT gaiacsumassedu to fantasiaeurecomfr

100

150

200

250

300

350

1 8 15 22 29 36 43 50 57 64 71 78 85 92 99 106

time (seconnds)

RTT

(mill

isec

onds

)

SampleRTT Estimated RTT

Transport Layer 3-61

TCP Round Trip Time vagrave Timeout

Thiết lập timeout EstimtedRTT cộng ldquohệ số dự trữ an toagravenrdquo

sự biến thiecircn lớn trong EstimatedRTT -gt hệ số dự trữ an toagraven lớn hơn ước lượng đầu tiecircn về sự biến thiecircn của SampleRTT từ EstimatedRTT

TimeoutInterval = EstimatedRTT + 4DevRTT

DevRTT = (1-)DevRTT + |SampleRTT-EstimatedRTT|

(tiecircu biểu = 025)

Sau đoacute thiết lập timeout interval

Transport Layer 3-62

TCP truyền dữ liệu tin cậy

TCP tạo dịch vụ rdt trecircn dịch vụ khocircng tin cậy IP

caacutec đoạn Pipelined caacutec ACK tiacutech lũy TCP dugraveng bộ định thigrave

truyền lại đơn

Truyền lại được kiacutech hoạt bởi caacutec sự kiện timeout caacutec ack trugraveng lặp

luacutec đầu khảo saacutet caacutec becircn gửi TCP đơn giản lờ đi caacutec ack trugraveng lặp lờ đi điều khiển luồng

điều khiển tắc nghẽn

Transport Layer 3-63

TCP caacutec sự kiệndữ liệu đatilde nhận từ ứng

dụng tạo đoạn với số thứ

tự của noacute số thứ tự lagrave số theo

byte dữ liệu đầu tiecircn khởi động bộ định thigrave

nếu chưa chạy khoảng thời gian hết

hạn TimeOutInterval

timeout gửi lại đoạn nagraveo gacircy

ra timeout khởi động lại bộ định

thigrave Ack đatilde nhận

cập nhật caacutei gigrave sẽ được ACK

khởi động bộ định thigrave nếu coacute caacutec đoạn cograven chờ

Transport Layer 3-64

TCP becircn gửi(đơn giản)

NextSeqNum = InitialSeqNum SendBase = InitialSeqNum

loop (forever) switch(event)

event data received from application above create TCP segment with sequence number NextSeqNum if (timer currently not running) start timer pass segment to IP NextSeqNum = NextSeqNum + length(data)

event timer timeout retransmit not-yet-acknowledged segment with smallest sequence number start timer

event ACK received with ACK field value of y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer

end of loop forever

Chuacute thiacutechbull SendBase-1 byte vừa được ACK tiacutech lũy Viacute dụbull SendBase-1 = 71y= 73 vigrave thế becircn nhận muốn 73+ y gt SendBase vigrave thế dữ liệu mới được chấp nhận

Transport Layer 3-65

TCP caacutec tigravenh huống truyền lại

Host A

Seq=100 20 bytes data

ACK=100

timetimeout sớm

Host B

Seq=92 8 bytes data

ACK=120

Seq=92 8 bytes data

Seq=

92

tim

eout

ACK=120

Host A

Seq=92 8 bytes data

ACK=100

loss

tim

eout

tigravenh huống mất ACK

Host B

X

Seq=92 8 bytes data

ACK=100

time

Seq=

92

tim

eout

SendBase= 100

SendBase= 120

SendBase= 120

Sendbase= 100

Transport Layer 3-66

TCP caacutec tigravenh huống truyền lại (tt)Host A

Seq=92 8 bytes data

ACK=100

loss

tim

eout

Cumulative ACK scenario

Host B

X

Seq=100 20 bytes data

ACK=120

time

SendBase= 120

Transport Layer 3-67

TCP sinh ra ACK [RFC 1122 RFC 2581]

Sự kiện tại becircn nhận

Đoạn đến với đuacuteng số thứ tự mong muốn Tất cả dữ liệu đếnđatilde được ACK

Đoạn đến với đuacuteng số thứ tự mong muốn Một đoạn khaacutec đangchờ ACK

Caacutec đoạn đến khocircng thứ tựlớn hơn số thứ tự đoạn mong muốnCoacute khoảng trống

Đoạn đếnlấp đầy từng phần hoặc toagraven bộkhoảng trống

TCP becircn nhận hagravenh động

ACK trễ Chờ đến 500mscho đoạn kế tiếp Nếu khocircng coacute đoạnkế tiếp gửi ACK

Gửi ngay một ACK tiacutech lũy chấp nhậncho cả caacutec đoạn theo thứ tự

Gửi ngay ACK trugraveng lặp chỉ thị số thứ tựđoạn của byte kế tiếp đang mong chờ

Gửi ngay ACK với điều kiện lagrave đoạnbắt đầu ngay điểm coacute khoảng trống

Transport Layer 3-68

Truyền lại nhanh

Chu kỳ Time-out thường tương đối dagravei độ trễ dagravei trước khi gửi

lại goacutei đatilde mất

Xaacutec nhận caacutec đoạn đatilde mất bằng caacutec ACK trugraveng lặp becircn gửi thường gửi

nhiều đoạn song song Nếu đoạn bị mất sẽ

xảy ra tigravenh trạng giống như nhiều ACK trugraveng nhau

Nếu becircn gửi nhận 3 ACK của cugraveng một dữ liệu noacute cho lagrave đoạn sau dữ liệu đatilde ACK bị mất Truyền lại nhanh gửi

lại đoạn trước khi bộ định thigrave hết hạn

Transport Layer 3-69

sự kiện ACK đatilde nhận với trường lagrave y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer else increment count of dup ACKs received for y if (count of dup ACKs received for y = 3) resend segment with sequence number y

Giải thuật truyền lại nhanh

một ACK trugraveng lặp cho đoạn đatilde được ACK

Truyền lại nhanh

Transport Layer 3-70

Chương 3 Nội dung trigravenh bagravey

31 Caacutec dịch vụ lớp Transport

32 Multiplexing vagrave demultiplexing

33 Vận chuyển khocircng kết nối UDP

34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy

35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối

36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn

37 Điều khiển tắc nghẽn TCP

Transport Layer 3-71

TCP điều khiển luồng

becircn nhận của kết nối TCP coacute một bộ đệm nhận

dịch vụ so trugraveng tốc độ so trugraveng tốc độ gửi với tốc độ nhận của ứng dụng

tiến trigravenh ứng dụng coacute thể chậm tại luacutec đọc bộ đệm

becircn gửi sẽ khocircng lagravem tragraven bộ đệm vigrave truyền quaacute nhiều vagrave

quaacute nhanh

điều khiển luồng

Transport Layer 3-72

TCP điều khiển luồng caacutech lagravem

(Giả sử becircn nhận TCP loại bỏ caacutec đoạn khocircng coacute thứ tự)

dự phograveng trong bộ đệm= RcvWindow

= RcvBuffer-[LastByteRcvd - LastByteRead]

Becircn nhận thocircng baacuteo khoảng dự trữ nhờ giaacute trị RcvWindow trong caacutec đoạn

Becircn gửi hạn chế dữ liệu khocircng được ACK vagraveo RcvWindow bảo đảm bộ đệm nhận

khocircng tragraven

Transport Layer 3-73

Chương 3 Nội dung trigravenh bagravey

31 Caacutec dịch vụ lớp Transport

32 Multiplexing vagrave demultiplexing

33 Vận chuyển khocircng kết nối UDP

34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy

35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối

36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn

37 Điều khiển tắc nghẽn TCP

Transport Layer 3-74

TCP quản lyacute kết nối

Chuacute yacute Becircn gửi vagrave becircn nhận TCP thiết lập ldquokết nốirdquo trước khi trao đổi dữ liệu

khởi tạo caacutec biến TCP caacutec số thứ tự đoạn thocircng tin caacutec bộ đệm điều

khiển luồng (như RcvWindow)

client người khởi xướng kết nối

Socket clientSocket = new Socket(hostnameport

number) server được tiếp xuacutec bởi

client Socket connectionSocket =

welcomeSocketaccept()

3 phương phaacutep bắt tay

Bước 1 client host gửi đoạnTCP SYN đến server xaacutec định số thứ tự khởi đầu khocircng phải dữ liệu

Bước 2 server host nhận SYN trả lời với đoạn SYNACK

server cấp phaacutet caacutec bộ đệm

xaacutec định số thứ tự khởi đầuBước 3 client nhận SYNACK trả

lời với đoạn ACK (coacute thể chứa dữ liệu)

Transport Layer 3-75

TCP quản lyacute kết nối (tt)

Đoacuteng một kết nối

client đoacuteng socket clientSocketclose()

Bước 1 client gửi đoạn điều khiển TCP FIN đến server

Bước 2 server nhận FIN trả lời với ACK Đoacuteng kết nối gửi FIN

client

FIN

server

ACK

ACK

FIN

đoacuteng

đoacuteng

đatilde đoacutengthời g

ian c

hờ

Transport Layer 3-76

TCP quản lyacute kết nối (tt)

Bước 3 client nhận FIN trả lời với ACK

Trong khoảng ldquothời gian chờrdquo ndash sẽ phản hồi với ACK để nhận caacutec FIN

Bước 4 server nhận ACK Kết nối đatilde đoacuteng

Chuacute yacute với một sửa đổi nhỏ coacute thể quản lyacute nhiều FIN đồng thời

client

FIN

server

ACK

ACK

FIN

đang đoacuteng

đang đoacuteng

đatilde đoacuteng

thời g

ian c

hờ

đatilde đoacuteng

Transport Layer 3-77

TCP quản lyacute kết nối (tt)

chu kỳ sống củaTCP client

chu kỳ sống củaTCP server

Transport Layer 3-78

Chương 3 Nội dung trigravenh bagravey

31 Caacutec dịch vụ lớp Transport

32 Multiplexing vagrave demultiplexing

33 Vận chuyển khocircng kết nối UDP

34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy

35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối

36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn

37 Điều khiển tắc nghẽn TCP

Transport Layer 3-79

Caacutec nguyecircn lyacute điều khiển tắc nghẽn

Tắc nghẽn ldquoquaacute nhiều nguồn gửi quaacute nhanh vagrave quaacute nhiều

dữ liệu đến mạngrdquo khaacutec với điều khiển luồng caacutec biểu hiện

caacutec goacutei bị mất (tragraven bộ đệm tại caacutec router) caacutec độ trễ quaacute dagravei (xếp hagraveng trong bộ đệm

của router) lagrave 1 trong 10 vấn đề nan giải nhất

Transport Layer 3-80

Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 1

2 gửi 2 nhận 1 router caacutec bộ

đệm khocircng giới hạn

khocircng coacute truyền lại

caacutec độ trễ lớn hơn khi tắc nghẽn

năng suất coacute thể đạt tối đa

unlimited shared output link buffers

Host Ain original data

Host B

out

Transport Layer 3-81

Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 2

1 router caacutec bộ đệm coacute giới hạn becircn gửi truyền lại caacutec goacutei đatilde mất

chia sẻ vocirc hạncaacutec bộ đệm ouput

Host A in dữ liệu gốc

Host B

out

in dữ liệu gốc cugraveng với dữ liệu truyền lại

Transport Layer 3-82

Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 2 luocircn luocircn

truyền lại ldquohoagraven toagravenrdquo chỉ khi mất maacutet

truyền lại vigrave trễ (khocircng mất) lagravem cho lớn hơn với cugraveng

in

out

=

in

out

gt

in

out

ldquocaacutec chi phiacuterdquo của tắc nghẽn nhiều việc (truyền lại) caacutec truyền lại khocircng cần thiết liecircn kết nhiều bản sao của

goacutei

R2

R2in

ou

t

b

R2

R2in

ou

t

a

R2

R2in

ou

t

c

R4

R3

Transport Layer 3-83

Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 3 4 người gửi caacutec đường qua nhiều hop timeouttruyền lại

in

Hỏi điều gigrave xảy ra nếu vagrave tăng lecircn

in

chia sẻ vocirc hạncaacutec bộ đệm ouput

Host Ain dữ liệu gốc

Host B

out

in dữ liệu gốc cugraveng với dữ liệu truyền lại

Transport Layer 3-84

Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 3

ldquochi phiacuterdquo khaacutec của tắc nghẽn khi caacutec goacutei bị bỏ bất kỳ ldquokhả năng truyền

upstream dugraveng cho goacutei đoacute sẽ bị latildeng phiacuterdquo

Host A

Host B

o

u

t

Transport Layer 3-85

Caacutec caacutech tiếp cận đối với điều khiển tắc nghẽn

điều khiển tắc nghẽn end-end

khocircng coacute phản hồi rotilde ragraveng từ mạng

tắc nghẽn được suy ra từ việc quan saacutet caacutec hệ thống đầu cuối coacute mất maacutet trễ

tiếp cận được quản lyacute bởi TCP

điều khiển tắc nghẽn coacute sự hỗ trợ của mạng

caacutec router cung cấp phản hồi về caacutec hệ thống đầu cuối 1 bit duy nhất chỉ thị

tắc nghẽn (SNA DECbit TCPIP ECN ATM)

tốc độ sẽ gửi được xaacutec định rotilde ragraveng

2 caacutech

Transport Layer 3-86

Viacute dụ điều khiển tắc nghẽn ATM ABR

ABR tốc độ bit sẵn sagraveng

ldquodịch vụ mềm dẻordquo nếu đường gửi ldquochưa

hếtrdquo becircn gửi sẽ dugraveng

băng thocircng sẵn sagraveng nếu đường gửi tắc

nghẽn becircn gửi điều tiết với

tốc độ tối thiểu

RM (resource management)

gửi bởi becircn gửi rải raacutec với caacutec ocirc dữ liệu

caacutec bit trong ocirc thiết lập bởi caacutec switch bit NI khocircng tăng tốc độ

(tắc nghẽn nhẹ) bit CI tắc nghẽn rotilde rệt

Caacutec ocirc RM được trả về becircn gửi từ becircn nhận với nguyecircn vẹn caacutec bit

Transport Layer 3-87

Viacute dụ điều khiển tắc nghẽn ATM ABR

trường 2-byte ER trong ocirc RM switch đatilde tắc nghẽn coacute thể coacute giaacute trị ER thấp hơn trong ocirc tốc độ gửi do đoacute coacute thể được hỗ trợ tối đa trecircn đường

EFCI bit trong caacutec ocirc dữ liệu được cagravei giaacute trị 1 trong switch đatilde tắc nghẽn nếu ocirc dữ liệu đứng trước ocirc RM coacute cagravei EFCI becircn gửi sẽ cagravei

bit CI trong ocirc RM trả về

Transport Layer 3-88

Chương 3 Nội dung trigravenh bagravey

31 Caacutec dịch vụ lớp Transport

32 Multiplexing vagrave demultiplexing

33 Vận chuyển khocircng kết nối UDP

34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy

35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối

36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn

37 Điều khiển tắc nghẽn TCP

Transport Layer 3-89

TCP điều khiển tắc nghẽn additive tăng lecircn multiplicative giảm xuống

8 Kbytes

16 Kbytes

24 Kbytes

time

congestionwindow

Caacutech tiếp cận tăng tốc độ truyền (kiacutech thước cửa sổ) tigravem khả năng băng thocircng coacute thể cho đến khi coacute mất maacutet xảy ra additive tăng lecircn tăng CongWin bởi 1 MSS

mỗi RTT cho đến khi coacute mất maacutet xảy ra multiplicative giảm xuống bỏ CongWin trong

nửa giai đoạn sau khi mất maacutet

timekiacutech

thư

ớc

cửa

sổ

tắc

nghẽ

n

Tigravem kiếm băng thocircng

Transport Layer 3-90

TCP điều khiển tắc nghẽn chi tiết

becircn gửi hạn chế việc truyền LastByteSent-LastByteAcked

CongWin Cocircng thức

CongWin thay đổi chức năng lagrave nhận biết tắc nghẽn trecircn mạng

Lagravem thế nagraveo becircn gửi nhận biết tắc nghẽn

mất maacutet xảy ra = timeout hoặc 3 ack trugraveng lặp

becircn gửi giảm tốc độ (CongWin) sau khi mất maacutet xảy ra

3 cơ chế AIMD khởi động chậm thận trọng sau khi coacute

caacutec sự kiện timeout

tốc độ = CongWin

RTT Bytess

Transport Layer 3-91

TCP khởi động chậm

Khi kết nối bắt đầu CongWin = 1 MSS Viacute dụ MSS = 500 bytes

amp RTT = 200 ms tốc độ khởi tạo = 20

kbps

băng thocircng sẵn sagraveng coacute thể gtgt MSSRTT mong muốn nhanh

choacuteng tăng tốc lecircn tốc độ coacute thể đaacutep ứng

Khi kết nối bắt đầu tăng tốc lecircn rất nhanh cho đến khi sự cố mất maacutet xảy ra đầu tiecircn

Transport Layer 3-92

TCP khởi động chậm (tt)

Khi kết nối bắt đầu tăng tốc lecircn rất nhanh cho đến khi sự cố mất maacutet xảy ra đầu tiecircn nhacircn đocirci CongWin mỗi

RTT hoagraven thagravenh nhờ tăng CongWin ứng với mỗi ACK đatilde nhận

Tổng kết tốc độ khởi đầu lagrave chậm nhưng sau đoacute tăng tốc rất nhanh

Host A

1 đoạn

RTT

Host B

thời gian

2 đoạn

4 đoạn

Transport Layer 3-93

Tinh chếHỏi Khi nagraveo việc tăng

tốc trở thagravenh tuyến tiacutenh

Trả lời Khi CongWin đạt đến 12 giaacute trị của noacute trước khi timeout

Hiện thực Ngưỡng thay đổi Tại thời điểm coacute sự cố

mất maacutet ngưỡng được cagravei giaacute trị bằng frac12 của CongWin ngay trước đoacute

Transport Layer 3-94

Tinh chế nhận biết mất maacutet

Sau 3 ACK trugraveng lặp CongWin sẽ giảm 12 kiacutech thước cửa sổ

tăng tuyến tiacutenh nhưng sau sự cố

timeout CongWin thay giaacute trị

bằng 1 MSS kiacutech thước cửa sổ

tăng cấp lũy thừa khi đến một ngưỡng

thigrave tăng tuyến tiacutenh

3 ACK trugraveng nhau chỉ ra khả năng truyền của mạng timeout chỉ thị ldquonhiều cảnh baacuteordquo về tigravenh huống tắc nghẽn

Nguyecircn lyacute

Transport Layer 3-95

Tổng kết TCP điều khiển tắc nghẽn

Khi CongWin dưới Threshold becircn gửi đang trong giai đoạn khởi động chậm kiacutech thước cửa sổ tăng nhanh theo cấp lũy thừa

Khi CongWin trecircn Threshold becircn gửi đang trong giai đoạn traacutenh tắc nghẽn kiacutech thước cửa sổ tăng nhanh theo cấp tuyến tiacutenh

Khi coacute 3 ACK trugraveng lặp xảy ra Threshold = CongWin2 vagrave CongWin = Threshold

Khi timeout xảy ra Threshold = CongWin2 vagrave CongWin = 1 MSS

Transport Layer 3-96

TCP điều khiển tắc nghẽn becircn gửi

Trạng thaacutei Sự kiện TCP becircn gửi hagravenh động Diễn giải

Slow Start (SS)-Khởi động chậm

ACK baacuteo nhận cho dữ liệu chưa ACK trước đoacute

CongWin = CongWin + MSS If (CongWin gt Threshold) cagravei đặt trạng thaacutei ldquoTraacutenh tắc nghẽnrdquo

Hậu quả lagravem tăng gấp đocirci CongWin mỗi RTT

CongestionAvoidance (CA) ndashTraacutenh tắc nghẽn

ACK baacuteo nhận cho dữ liệu chưa ACK trước đoacute

CongWin = CongWin+MSS (MSSCongWin)

Additive tăng lecircn lagravem tăng CongWin lecircn 1 MSS mỗi RTT

SS hoặc CA Sự cố mất maacutet xảy ra khi thấy coacute 3 ACK trugraveng lặp

Threshold = CongWin2 CongWin = Thresholdcagravei đặt trạng thaacutei ldquoTraacutenh tắc nghẽnrdquo

Khocirci phục nhanh hiện thực giảm xuống multiplicative CongWin sẽ khocircng giảm xuống dưới 1 MSS

SS hoặc CA Timeout Threshold = CongWin2 CongWin = 1 MSScagravei đặt trạng thaacutei ldquoKhởi động chậmrdquo

Vagraveo chế độ ldquoKhởi động chậmrdquo

SS hoặc CA ACK trugraveng lặp

Đếm ACK tăng lecircn cho đoạn vừa được ACK

CongWin vagrave Threshold khocircng thay đổi

Transport Layer 3-97

TCP throughput

Throughout trung bigravenh của TCP biểu diễn qua kiacutech thước của sổ vagrave RTT Bỏ qua trạng thaacutei ldquoKhởi động chậmrdquo

Cho W lagrave kiacutech thước cửa sổ khi coacute mất maacutet xảy ra

Khi kiacutech thước cửa sổ = W lưu lượng = WRTT

Chỉ ngay sau khi mất maacutet cửa sổ giảm xuống = W2 lưu lượng = W2RTT

throughout trung bigravenh 075 WRTT

Transport Layer 3-98

TCP tương lai

Viacute dụ caacutec đoạn dagravei 1500 byte RTT 100ms lưu lượng 10 Gbps

Kiacutech thước cửa sổ yecircu cầu W = 83333 đoạn trecircn đường truyền

Lưu lượng trong caacutec trường hợp mất maacutet

L = 210-10

Phiecircn bản mới của TCP dagravenh cho nhu cầu tốc độ cao

LRTT

MSS221

Transport Layer 3-99

Mục tiecircu nếu K phiecircn lagravem việc TCP chia sẻ kết nối cổ chai của băng thocircng lagrave R mỗi phiecircn coacute tốc độ trung bigravenh lagrave RK

TCP kết nối 1

router cổ chaikhả năng R

TCP kết nối 2

TCP tiacutenh cocircng bằng

Transport Layer 3-100

Tại sao phải TCP cocircng bằng

2 phiecircn lagravem việc cạnh tranh nhau Additive tăng lưu lượng tăng multiplicative giảm lưu lượng tương xứng

R

R

chia sẻ băng thocircng bằng nhau

Connection 1 throughputConnect

ion 2

th

roughput

traacutenh tắc nghẽn additive tăng lecircnmất maacutet giảm cửa sổ bằng 12

traacutenh tắc nghẽn additive tăng lecircnmất maacutet giảm cửa sổ bằng 12

Transport Layer 3-101

TCP tiacutenh cocircng bằng (tt)

Tiacutenh cocircng bằng amp UDP nhiều ứng dụng

thường khocircng dugraveng TCP khocircng muốn tốc độ bị

điều tiết do điều khiển tắc nghẽn

Thay bằng dugraveng UDP truyền audiovideo với

tốc độ ổn định chịu được mất maacutet

Nghiecircn cứu giao thức thacircn thiện với TCP

Tiacutenh cocircng bằng amp caacutec kết nối TCP song song

khocircng coacute gigrave ngăn cản việc ứng dụng mở caacutec kết nối song song giữa 2 host

Trigravenh duyệt Web lagravem giống như thế

Viacute dụ tốc độ R hỗ trợ 9 kết nối ứng dụng mới yecircu cầu 1

TCP coacute tốc độ R10 ứng dụng mới yecircu cầu 11

TCP coacute tốc độ R2

Transport Layer 3-102

Mocirc higravenh trễ

Hỏi Mất bao lacircu để nhận 1 đối tượng từ Web server sau khi gửi yecircu cầu

Bỏ qua tắc nghẽn trễ bị ảnh hưởng bởi

thiết lập kết nối TCP trễ truyền dữ liệu khởi động chậm

Notation caacutec giả định Giả sử một kết nối giữa

client vagrave server coacute tốc độ R

S MSS (bits) O kiacutech thước đối tượng

(bits) khocircng truyền lại (khocircng

mất maacutet khocircng hỏng)

Kiacutech thước cửa sổ Giả định 1 cửa sổ tắc

nghẽn cố định coacute W đoạn Sau đoacute cửa sổ thay đổi

mocirc higravenh khởi động chậm

Transport Layer 3-103

Cửa sổ tắc nghẽn cố định (1)

Trường hợp đầu tiecircnWSR gt RTT + SR cho

đoạn đầu tiecircn trong cửa sổ trả về trước khi cửa sổ dữ liệu gửi ACK

trễ = 2RTT + OR

Transport Layer 3-104

Cửa sổ tắc nghẽn cố định (2)

Trường hợp thứ hai WSR lt RTT + SR sent

chờ cho ACK sau khi gửi dữ liệu

trễ = 2RTT + OR+ (K-1)[SR + RTT - WSR]

Transport Layer 3-105

TCP Mocirc higravenh trễ Khởi động chậm (1)

Bacircy giờ giả sử kiacutech thước cửa sổ tăng lecircn tugravey theo quaacute trigravenh khởi động chậm

Độ trễ của một đối tượng sẽ lagrave

R

S

R

SRTTP

R

ORTTLatency P )12(2

trong đoacute P lagrave số lần TCP rảnh ở tại server

1min KQP

- trong đoacute Q lagrave số lần server rảnh nếu đối tượng đatilde khởi tạo kiacutech thước

- vagrave K lagrave số lượng cửa sổ bao trugravem đối tượng

Transport Layer 3-106

TCP Mocirc higravenh trễ Khởi động chậm (2)

RTT

initia te TCPconnection

requestobject

first w indow= S R

second w indow= 2S R

third w indow= 4S R

fourth w indow= 8S R

com pletetransm issionobject

delivered

tim e atc lient

tim e atserver

Viacute dụbull OS = 15 đoạnbull K = 4 cửa sổbull Q = 2bull P = minK-1Q = 2

Server rảnh P=2 lần

Caacutec thagravenh phần trễbull 2 RTT dagravenh cho thiết lập kết nối vagrave yecircu cầubull OR để truyền đối tượngbullthời gian server rảnh bởi vigrave khởi động chậm

Server rảnh P = minK-1Q lần

Transport Layer 3-107

TCP Mocirc higravenh trễ(3)

R

S

R

SRTTPRTT

R

O

R

SRTT

R

SRTT

R

O

idleTimeRTTR

O

P

kP

k

P

pp

)12(][2

]2[2

2delay

1

1

1

th window after the timeidle 2 1 kR

SRTT

R

S k

ementacknowledg receivesserver until

segment send tostartsserver when from time RTTR

S

window kth the transmit totime2 1

R

Sk

RTT

initia te TCPconnection

requestobject

first w indow= S R

second w indow= 2S R

third w indow= 4S R

fourth w indow= 8S R

com pletetransm issionobject

delivered

tim e atc lient

tim e atserver

Transport Layer 3-108

TCP Mocirc higravenh trễ (4)

)1(log

)1(logmin

12min

222min

222min

2

2

110

110

S

OS

Okk

S

Ok

SOk

OSSSkK

k

k

k

caacutech tiacutenh toaacuten Q tương tự (xem HW)

K = số lượng cửa sổ bao trugravem đối tượngLagravem thế nagraveo tiacutenh được K

Transport Layer 3-109

HTTP Mocirc higravenh Giả sử trang Web chứa

1 trang HTML (kiacutech thước O bits) M higravenh ảnh (mỗi caacutei kiacutech thướcO bits)

HTTP khocircng bền vững M+1 TCP kết nối Thời gian đaacutep ứng = (M+1)OR + (M+1)2RTT + tổng số thời

gian rảnh HTTP bền vững

2 RTT để yecircu cầu vagrave nhận file HTML 1 RTT để yecircu cầu vagrave nhận M higravenh ảnh Thời gian đaacutep ứng = (M+1)OR + 3RTT + tổng số thời gian

rảnh HTTP khocircng bền vững với X kết nối song song

Giả sử MX lagrave số nguyecircn 1 TCP kết nối cho file MX thiết lập caacutec kết nối song song cho caacutec higravenh ảnh Thời gian đaacutep ứng = (M+1)OR + (MX + 1)2RTT + tổng số

thời gian rảnh

Transport Layer 3-110

02468

101214161820

28Kbps

100Kbps

1Mbps

10Mbps

non-persistent

persistent

parallel non-persistent

HTTP thời gian đaacutep ứng (giacircy)RTT = 100 msec O = 5 Kbytes M=10 vagrave X=5

Với băng thocircng thấp thời gian kết nối amp đaacutep ứng trội hơn thời gian truyền

Caacutec kết nối bền vững chỉ cho sự cải thiện khocircng đaacuteng kể trecircn caacutec kết nối song song

Transport Layer 3-111

0

10

20

30

40

50

60

70

28Kbps

100Kbps

1Mbps

10Mbps

non-persistent

persistent

parallel non-persistent

HTTP thời gian đaacutep ứng (giacircy)

RTT =1 sec O = 5 Kbytes M=10 and X=5

Với RTT lớn hơn thời gian đaacutep ứng trội hơn thời gian trễ chờ thiết lập kết nốiTCP amp khởi động chậm Caacutec kết nối bền vững bacircy giờ cho thấy cải thiện rotilde rệt đặc biệtvới caacutec mạng băng thocircng cao

Transport Layer 3-112

Chương 3 Tổng kết caacutec nguyecircn lyacute của caacutec

dịch vụ lớp transport multiplexing

demultiplexing truyền dữ liệu tin cậy điều khiển luồng điều khiển tắc nghẽn

khởi tạo vagrave hiện thực trong Internet UDP TCP

Tiếp theo nghiecircn cứu xong

caacutec vấn đề ldquongoagravei biecircnrdquo (caacutec lớp application transport)

chuẩn bị vagraveo phần ldquolotildeirdquo của mạng

  • Slide 1
  • Chương 3 Lớp Transport
  • Chương 3 Nội dung trigravenh bagravey
  • Caacutec dịch vụ vagrave giao thức Transport
  • Lớp Transport với lớp network
  • Caacutec giao thức lớp transport trecircn Internet
  • Slide 7
  • Multiplexingdemultiplexing
  • Demultiplexing lagravem việc như thế nagraveo
  • Demultiplexing khocircng kết nối
  • Demultiplexing khocircng kết nối (tiếp)
  • Demultiplexing hướng kết nối
  • Demultiplexing hướng kết nối (tiếp)
  • Demultiplexing hướng kết nối Threaded Web Server
  • Slide 15
  • UDP User Datagram Protocol [RFC 768]
  • UDP (tt)
  • UDP checksum
  • Viacute dụ Checksum
  • Slide 20
  • Caacutec nguyecircn lyacute truyền dữ liệu tin cậy
  • Slide 22
  • Slide 23
  • Truyền dữ liệu tin cậy
  • Slide 25
  • Rdt10 truyền dữ liệu tin cậy trecircn 1 kecircnh truyền tin cậy
  • Rdt20 kecircnh với caacutec lỗi
  • rdt20 đặc tả FSM
  • rdt20 hoạt động khi khocircng lỗi
  • rdt20 hoạt động khi coacute lỗi
  • rdt20 coacute lỗ hổng nghiecircm trọng
  • rdt21 người gửi quản lyacute caacutec ACKNAK bị hỏng
  • Slide 33
  • rdt21 thảo luận
  • rdt22 một giao thức khocircng cần NAK
  • rdt22 gửi nhận caacutec mảnh
  • rdt30 caacutec kecircnh với lỗi vagrave mất maacutet
  • rdt30 gửi
  • hagravenh động của rdt30
  • Slide 40
  • Hiệu suất của rdt30
  • rdt30 hoạt động dừng-vagrave-chờ
  • Caacutec giao thức Pipelined
  • Pipelining độ khả dụng tăng
  • Go-Back-N
  • GBN becircn gửi mở rộng FSM
  • GBN becircn nhận mở rộng FSM
  • GBN hoạt động
  • Lặp coacute lựa chọn
  • Lặp coacute lựa chọn caacutec cửa sổ gửi nhận
  • Slide 51
  • Hoạt động của lặp coacute lựa chọn
  • Lặp coacute lựa chọn tigravenh trạng khoacute giải quyết
  • Slide 54
  • TCP Tổng quan RFCs 793 1122 1323 2018 2581
  • TCP cấu truacutec đoạn
  • Caacutec số thứ tự TCP vagrave ACK
  • TCP Round Trip Time vagraveTimeout
  • TCP Round Trip Time vagrave Timeout
  • Viacute dụ đaacutenh giaacute RTT
  • Slide 61
  • TCP truyền dữ liệu tin cậy
  • TCP caacutec sự kiện
  • TCP becircn gửi (đơn giản)
  • TCP caacutec tigravenh huống truyền lại
  • TCP caacutec tigravenh huống truyền lại (tt)
  • TCP sinh ra ACK [RFC 1122 RFC 2581]
  • Truyền lại nhanh
  • Giải thuật truyền lại nhanh
  • Slide 70
  • TCP điều khiển luồng
  • TCP điều khiển luồng caacutech lagravem
  • Slide 73
  • TCP quản lyacute kết nối
  • TCP quản lyacute kết nối (tt)
  • Slide 76
  • Slide 77
  • Slide 78
  • Caacutec nguyecircn lyacute điều khiển tắc nghẽn
  • Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 1
  • Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 2
  • Slide 82
  • Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 3
  • Slide 84
  • Caacutec caacutech tiếp cận đối với điều khiển tắc nghẽn
  • Viacute dụ điều khiển tắc nghẽn ATM ABR
  • Slide 87
  • Slide 88
  • TCP điều khiển tắc nghẽn additive tăng lecircn multiplicative giảm xuống
  • TCP điều khiển tắc nghẽn chi tiết
  • TCP khởi động chậm
  • TCP khởi động chậm (tt)
  • Tinh chế
  • Tinh chế nhận biết mất maacutet
  • Tổng kết TCP điều khiển tắc nghẽn
  • TCP điều khiển tắc nghẽn becircn gửi
  • TCP throughput
  • TCP tương lai
  • TCP tiacutenh cocircng bằng
  • Tại sao phải TCP cocircng bằng
  • TCP tiacutenh cocircng bằng (tt)
  • Mocirc higravenh trễ
  • Cửa sổ tắc nghẽn cố định (1)
  • Cửa sổ tắc nghẽn cố định (2)
  • TCP Mocirc higravenh trễ Khởi động chậm (1)
  • TCP Mocirc higravenh trễ Khởi động chậm (2)
  • TCP Mocirc higravenh trễ(3)
  • TCP Mocirc higravenh trễ (4)
  • HTTP Mocirc higravenh
  • Slide 110
  • Slide 111
  • Chương 3 Tổng kết

Transport Layer 3-38

rdt30 gửi

sndpkt = make_pkt(0 data checksum)udt_send(sndpkt)start_timer

rdt_send(data)

Chờ cho

ACK 0

rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) ||isACK(rcvpkt1) )

Chờ cho gọi 1 từ trecircn

sndpkt = make_pkt(1 data checksum)udt_send(sndpkt)start_timer

rdt_send(data)

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt0)

rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) ||isACK(rcvpkt0) )

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt1)

stop_timerstop_timer

udt_send(sndpkt)start_timer

timeout

udt_send(sndpkt)start_timer

timeout

rdt_rcv(rcvpkt)

Chờ cho gọi 0 từ trecircn

Chờ cho

ACK 1

rdt_rcv(rcvpkt)

Transport Layer 3-39

hagravenh động của rdt30

Transport Layer 3-40

hagravenh động của rdt30

Transport Layer 3-41

Hiệu suất của rdt30

rdt30 lagravem việc được nhưng đaacutenh giaacute hiệu suất hơi rắc rối viacute dụ liecircn kết 1 Gbps trễ lan truyền giữa hai đầu cuối lagrave 15

ms goacutei 1KB

T truyền = 8kbpkt109 bsec

= 8 microsec

U sender độ khả dụng ndash

U sender

= 008

30008 = 000027

microseconds

L R

RTT + L R =

L (độ dagravei goacutei tiacutenh bằng bits)R (tốc độ truyền bps)

=

goacutei 1KB mỗi 30 msec -gt 33kBs trecircn đường truyền 1 Gbps giao thức network hạn chế việc dugraveng caacutec tagravei nguyecircn vật

lyacute

Transport Layer 3-42

rdt30 hoạt động dừng-vagrave-chờ

goacutei đầu tiecircn đatilde truyền t = 0

gửi nhận

RTT

goacutei cuối cugraveng đatilde truyền t = L R

goacutei đầu tiecircn đatilde đếngoacutei cuối cugraveng đatilde đến gửi ACK

ACK đến gửi goacutei kế tiếp t = RTT + L R

U sender

= 008

30008 = 000027

microseconds

L R

RTT + L R =

Transport Layer 3-43

Caacutec giao thức Pipelined

Pipelining người gửi cho pheacutep gửi nhiều goacutei đồng thời khocircng cần chờ baacuteo nhận được nhoacutem caacutec số thứ tự phải tăng dần phải coacute bộ nhớ đệm tại nơi gửi vagravehoặc nơi nhận

hai dạng phổ biến của caacutec giao thức pipelined go-Back-N Lặp coacute lựa chọn

Transport Layer 3-44

Pipelining độ khả dụng tăng

goacutei đầu tiecircn đatilde truyền t = 0

sender receiver

RTT

goacutei cuối cugraveng đatilde truyền t = L R

goacutei đầu tiecircn đatilde đếngoacutei cuối cugraveng đatilde đến gửi ACK

ACK đến gửi goacuteikế tiếp t = RTT + L R

bit cuối của goacutei thứ 2 đến gửi ACKbit cuối của goacutei thứ 3 đến gửi ACK

U sender

= 024

30008 = 00008

microseconds

3 L R

RTT + L R =

Độ khả dụng tăng lecircngấp 3 lần

Transport Layer 3-45

Go-Back-NBecircn gửi k-bit số thứ tự trong header của goacutei ldquocửa sổrdquo tăng lecircn đến N cho pheacutep gửi caacutec goacutei liecircn tục khocircng cần ACK

ACK(n) ACKs tất cả caacutec goacutei đến chứa số thứ tự n ndash ldquoACK tiacutech lũyrdquo coacute thể nhận caacutec ACK trugraveng lặp (xem becircn nhận)

định thigrave cho mỗi goacutei trecircn đường truyền timeout(n) gửi lại goacutei n vagrave tất cả caacutec goacutei coacute số thứ tự cao

hơn trong cửa sổ

Transport Layer 3-46

GBN becircn gửi mở rộng FSM

chờ start_timerudt_send(sndpkt[base])udt_send(sndpkt[base+1])hellipudt_send(sndpkt[nextseqnum-1])

timeout

rdt_send(data)

if (nextseqnum lt base+N) sndpkt[nextseqnum] = make_pkt(nextseqnumdatachksum) udt_send(sndpkt[nextseqnum]) if (base == nextseqnum) start_timer nextseqnum++ else refuse_data(data)

base = getacknum(rcvpkt)+1If (base == nextseqnum) stop_timer else start_timer

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)

base=1nextseqnum=1

rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)

Transport Layer 3-47

GBN becircn nhận mở rộng FSM

ACK-duy nhất luocircn luocircn gửi ACK cho goacutei đatilde nhận đuacuteng với số thứ tự xếp hạng cao nhất coacute thể sinh ra caacutec ACK trugraveng nhau chỉ cần nhớ expectedseqnum

goacutei khocircng theo thứ tự hủy -gt khocircng nhận vagraveo bộ đệm gửi lại ACK với số thứ tự xếp hạng cao nhất

chờ

udt_send(sndpkt)

default

rdt_rcv(rcvpkt) ampamp notcurrupt(rcvpkt) ampamp hasseqnum(rcvpktexpectedseqnum)

extract(rcvpktdata)deliver_data(data)sndpkt = make_pkt(expectedseqnumACKchksum)udt_send(sndpkt)expectedseqnum++

expectedseqnum=1sndpkt = make_pkt(expectedseqnumACKchksum)

Transport Layer 3-48

GBN hoạt động

Transport Layer 3-49

Lặp coacute lựa chọn

becircn nhận thocircng baacuteo đatilde nhận đuacuteng tất cả từng goacutei một đệm (buffer) caacutec goacutei nếu cần thiết

becircn gửi chỉ gửi lại caacutec goacutei nagraveo khocircng nhận được ACK becircn gửi định thigrave đối với mỗi goacutei khocircng gửi ACK

cửa sổ becircn gửi N số thứ tự liecircn tục hạn chế số thứ tự caacutec goacutei khocircng gửi ACK

Transport Layer 3-50

Lặp coacute lựa chọn caacutec cửa sổ gửi nhận

Transport Layer 3-51

Lặp coacute lựa chọn

dữ liệu từ lớp trecircn nếu số thứ tự kế tiếp sẵn

sagraveng trong cửa sổ gửi goacutei

timeout(n) gửi lại goacutei n taacutei khởi tạo

bộ định thigrave

ACK(n) trong [sendbasesendbase+N]

đaacutenh dấu goacutei n lagrave đatilde nhận nếu goacutei khocircng ACK coacute n

nhỏ nhất dịch chuyển cửa sổ base đến số thứ tự khocircng ACK kế tiếp

Gửigoacutei n trong [rcvbase

rcvbase+N-1]

gửi ACK(n) khocircng thứ tự đệm

(buffer) coacute thứ tự truyền (cũng

truyền caacutec goacutei đatilde đệm coacute thứ tự) dịch chuyển cửa sổ đến goacutei chưa nhận kế tiếp

goacutei n trong [rcvbase-Nrcvbase-1]

ACK(n)

ngược lại lờ đi

Nhận

Transport Layer 3-52

Hoạt động của lặp coacute lựa chọn

Transport Layer 3-53

Lặp coacute lựa chọntigravenh trạng khoacute giải quyếtViacute dụ Số thứ tự 0 1 2 3 Kiacutech thước cửa sổ = 3

becircn nhận khocircng thấy sự khaacutec nhau trong 2 tigravenh huống

chuyển khocircng chiacutenh xaacutec dữ liệu trugraveng lặp như dữ liệu mới trong (a)

Hỏi quan hệ giữa datildey số thứ tự vagrave kiacutech thước cửa sổ

Transport Layer 3-54

Chương 3 Nội dung trigravenh bagravey

31 Caacutec dịch vụ lớp Transport

32 Multiplexing vagrave demultiplexing

33 Vận chuyển khocircng kết nối UDP

34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy

35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối

36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn

37 Điều khiển tắc nghẽn TCP

Transport Layer 3-55

TCP Tổng quan RFCs 793 1122 1323 2018 2581

dữ liệu full duplex luồng dữ liệu đi 2 chiều

trong cugraveng một kết nối MSS maximum

segment size ndash kiacutech thước đoạn tối đa

hướng kết nối bắt tay (trao đổi caacutec

thocircng điệp điều khiển) trạng thaacutei becircn gửi becircn nhận trước khi trao đổi dữ liệu

điều khiển luồng becircn gửi sẽ khocircng lấn aacutet

becircn nhận

point-to-point một becircn gửi một becircn

nhận tin cậy dograveng byte coacute

thứ tự khocircng ldquoranh giới thocircng

điệprdquo kecircnh liecircn lạc

TCP điều khiển luồng vagrave tắc nghẽn thiết lập kiacutech thước cửa sổ

caacutec bộ đệm gửi amp nhận

socketdoor

T C Psend buffer

T C Preceive buffer

socketdoor

segm ent

applicationwrites data

applicationreads data

Transport Layer 3-56

TCP cấu truacutec đoạn

port nguồn port điacutech

32 bits

dữ liệu ứng dụng(độ dagravei thay đổi)

số thứ tự

số ACKcửa sổ nhận

con trỏ URGchecksum

FSRPAUheadlen

notused

Tugravey chọn (độ dagravei thay đổi)

URG dữ liệu khẩn cấp(thường khocircng dugraveng)

ACK ACK hợp lệ

PSH push data now(thường khocircng dugraveng)

RST SYN FINthiết lập kết nối

(caacutec lệnh thiết lậpchia nhỏ)

số byte becircn nhận sẵn sagraveng chấp nhận

đếm bởi số bytecủa dữ liệu

Internetchecksum

(giống UDP)

Transport Layer 3-57

Caacutec số thứ tự TCP vagrave ACKCaacutec số thứ tự

dograveng byte ldquođaacutenh sốrdquo byte đầu tiecircn trong dữ liệu của đoạn

caacutec ACK số thứ tự của byte

kế tiếp được chờ đợi từ phiacutea becircn kia

ACK tiacutech lũyHỏi lagravem thế nagraveo becircn

nhận quản lyacute caacutec đoạn khocircng thứ tự Trả lời TCP khocircng

đề cập tugravey thuộc người hiện thực

Host A Host B

Seq=42 ACK=79 data = lsquoCrsquo

Seq=79 ACK=43 data = lsquoCrsquo

Seq=43 ACK=80

UsernhậplsquoCrsquo

host ACKsnhận phản hồi

lsquoCrsquo

host ACKsbaacuteo nhận

lsquoCrsquo phản hồingược lại lsquoCrsquo

timetigravenh huống telnet đơn giản

Transport Layer 3-58

TCP Round Trip Time vagraveTimeout

Hỏi Lagravem thế nagraveo để thiết lập giaacute trị TCP timeout

dagravei hơn RTT khaacutec với RTT

quaacute ngắn timeout sớm truyền lại khocircng

cần thiết quaacute dagravei phản ứng

chậm đối với việc mất maacutet goacutei

Hỏi Lagravem thế nagraveo để thiết lập RTT

SampleRTT thời gian được đo từ khi truyền đoạn đến khi baacuteo nhận ACK lờ đi việc truyền lại

SampleRTT sẽ thay đổi muốn ước lượng RTT ldquomượt hơnrdquo tiacutenh trung bigravenh một số giaacute

trị đo được gần đoacute khocircng chỉ SampleRTT hiện tại

Transport Layer 3-59

TCP Round Trip Time vagrave Timeout

EstimatedRTT = (1- )EstimatedRTT + SampleRTT

giaacute trị đặc trưng = 0125

Transport Layer 3-60

Viacute dụ đaacutenh giaacute RTTRTT gaiacsumassedu to fantasiaeurecomfr

100

150

200

250

300

350

1 8 15 22 29 36 43 50 57 64 71 78 85 92 99 106

time (seconnds)

RTT

(mill

isec

onds

)

SampleRTT Estimated RTT

Transport Layer 3-61

TCP Round Trip Time vagrave Timeout

Thiết lập timeout EstimtedRTT cộng ldquohệ số dự trữ an toagravenrdquo

sự biến thiecircn lớn trong EstimatedRTT -gt hệ số dự trữ an toagraven lớn hơn ước lượng đầu tiecircn về sự biến thiecircn của SampleRTT từ EstimatedRTT

TimeoutInterval = EstimatedRTT + 4DevRTT

DevRTT = (1-)DevRTT + |SampleRTT-EstimatedRTT|

(tiecircu biểu = 025)

Sau đoacute thiết lập timeout interval

Transport Layer 3-62

TCP truyền dữ liệu tin cậy

TCP tạo dịch vụ rdt trecircn dịch vụ khocircng tin cậy IP

caacutec đoạn Pipelined caacutec ACK tiacutech lũy TCP dugraveng bộ định thigrave

truyền lại đơn

Truyền lại được kiacutech hoạt bởi caacutec sự kiện timeout caacutec ack trugraveng lặp

luacutec đầu khảo saacutet caacutec becircn gửi TCP đơn giản lờ đi caacutec ack trugraveng lặp lờ đi điều khiển luồng

điều khiển tắc nghẽn

Transport Layer 3-63

TCP caacutec sự kiệndữ liệu đatilde nhận từ ứng

dụng tạo đoạn với số thứ

tự của noacute số thứ tự lagrave số theo

byte dữ liệu đầu tiecircn khởi động bộ định thigrave

nếu chưa chạy khoảng thời gian hết

hạn TimeOutInterval

timeout gửi lại đoạn nagraveo gacircy

ra timeout khởi động lại bộ định

thigrave Ack đatilde nhận

cập nhật caacutei gigrave sẽ được ACK

khởi động bộ định thigrave nếu coacute caacutec đoạn cograven chờ

Transport Layer 3-64

TCP becircn gửi(đơn giản)

NextSeqNum = InitialSeqNum SendBase = InitialSeqNum

loop (forever) switch(event)

event data received from application above create TCP segment with sequence number NextSeqNum if (timer currently not running) start timer pass segment to IP NextSeqNum = NextSeqNum + length(data)

event timer timeout retransmit not-yet-acknowledged segment with smallest sequence number start timer

event ACK received with ACK field value of y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer

end of loop forever

Chuacute thiacutechbull SendBase-1 byte vừa được ACK tiacutech lũy Viacute dụbull SendBase-1 = 71y= 73 vigrave thế becircn nhận muốn 73+ y gt SendBase vigrave thế dữ liệu mới được chấp nhận

Transport Layer 3-65

TCP caacutec tigravenh huống truyền lại

Host A

Seq=100 20 bytes data

ACK=100

timetimeout sớm

Host B

Seq=92 8 bytes data

ACK=120

Seq=92 8 bytes data

Seq=

92

tim

eout

ACK=120

Host A

Seq=92 8 bytes data

ACK=100

loss

tim

eout

tigravenh huống mất ACK

Host B

X

Seq=92 8 bytes data

ACK=100

time

Seq=

92

tim

eout

SendBase= 100

SendBase= 120

SendBase= 120

Sendbase= 100

Transport Layer 3-66

TCP caacutec tigravenh huống truyền lại (tt)Host A

Seq=92 8 bytes data

ACK=100

loss

tim

eout

Cumulative ACK scenario

Host B

X

Seq=100 20 bytes data

ACK=120

time

SendBase= 120

Transport Layer 3-67

TCP sinh ra ACK [RFC 1122 RFC 2581]

Sự kiện tại becircn nhận

Đoạn đến với đuacuteng số thứ tự mong muốn Tất cả dữ liệu đếnđatilde được ACK

Đoạn đến với đuacuteng số thứ tự mong muốn Một đoạn khaacutec đangchờ ACK

Caacutec đoạn đến khocircng thứ tựlớn hơn số thứ tự đoạn mong muốnCoacute khoảng trống

Đoạn đếnlấp đầy từng phần hoặc toagraven bộkhoảng trống

TCP becircn nhận hagravenh động

ACK trễ Chờ đến 500mscho đoạn kế tiếp Nếu khocircng coacute đoạnkế tiếp gửi ACK

Gửi ngay một ACK tiacutech lũy chấp nhậncho cả caacutec đoạn theo thứ tự

Gửi ngay ACK trugraveng lặp chỉ thị số thứ tựđoạn của byte kế tiếp đang mong chờ

Gửi ngay ACK với điều kiện lagrave đoạnbắt đầu ngay điểm coacute khoảng trống

Transport Layer 3-68

Truyền lại nhanh

Chu kỳ Time-out thường tương đối dagravei độ trễ dagravei trước khi gửi

lại goacutei đatilde mất

Xaacutec nhận caacutec đoạn đatilde mất bằng caacutec ACK trugraveng lặp becircn gửi thường gửi

nhiều đoạn song song Nếu đoạn bị mất sẽ

xảy ra tigravenh trạng giống như nhiều ACK trugraveng nhau

Nếu becircn gửi nhận 3 ACK của cugraveng một dữ liệu noacute cho lagrave đoạn sau dữ liệu đatilde ACK bị mất Truyền lại nhanh gửi

lại đoạn trước khi bộ định thigrave hết hạn

Transport Layer 3-69

sự kiện ACK đatilde nhận với trường lagrave y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer else increment count of dup ACKs received for y if (count of dup ACKs received for y = 3) resend segment with sequence number y

Giải thuật truyền lại nhanh

một ACK trugraveng lặp cho đoạn đatilde được ACK

Truyền lại nhanh

Transport Layer 3-70

Chương 3 Nội dung trigravenh bagravey

31 Caacutec dịch vụ lớp Transport

32 Multiplexing vagrave demultiplexing

33 Vận chuyển khocircng kết nối UDP

34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy

35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối

36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn

37 Điều khiển tắc nghẽn TCP

Transport Layer 3-71

TCP điều khiển luồng

becircn nhận của kết nối TCP coacute một bộ đệm nhận

dịch vụ so trugraveng tốc độ so trugraveng tốc độ gửi với tốc độ nhận của ứng dụng

tiến trigravenh ứng dụng coacute thể chậm tại luacutec đọc bộ đệm

becircn gửi sẽ khocircng lagravem tragraven bộ đệm vigrave truyền quaacute nhiều vagrave

quaacute nhanh

điều khiển luồng

Transport Layer 3-72

TCP điều khiển luồng caacutech lagravem

(Giả sử becircn nhận TCP loại bỏ caacutec đoạn khocircng coacute thứ tự)

dự phograveng trong bộ đệm= RcvWindow

= RcvBuffer-[LastByteRcvd - LastByteRead]

Becircn nhận thocircng baacuteo khoảng dự trữ nhờ giaacute trị RcvWindow trong caacutec đoạn

Becircn gửi hạn chế dữ liệu khocircng được ACK vagraveo RcvWindow bảo đảm bộ đệm nhận

khocircng tragraven

Transport Layer 3-73

Chương 3 Nội dung trigravenh bagravey

31 Caacutec dịch vụ lớp Transport

32 Multiplexing vagrave demultiplexing

33 Vận chuyển khocircng kết nối UDP

34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy

35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối

36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn

37 Điều khiển tắc nghẽn TCP

Transport Layer 3-74

TCP quản lyacute kết nối

Chuacute yacute Becircn gửi vagrave becircn nhận TCP thiết lập ldquokết nốirdquo trước khi trao đổi dữ liệu

khởi tạo caacutec biến TCP caacutec số thứ tự đoạn thocircng tin caacutec bộ đệm điều

khiển luồng (như RcvWindow)

client người khởi xướng kết nối

Socket clientSocket = new Socket(hostnameport

number) server được tiếp xuacutec bởi

client Socket connectionSocket =

welcomeSocketaccept()

3 phương phaacutep bắt tay

Bước 1 client host gửi đoạnTCP SYN đến server xaacutec định số thứ tự khởi đầu khocircng phải dữ liệu

Bước 2 server host nhận SYN trả lời với đoạn SYNACK

server cấp phaacutet caacutec bộ đệm

xaacutec định số thứ tự khởi đầuBước 3 client nhận SYNACK trả

lời với đoạn ACK (coacute thể chứa dữ liệu)

Transport Layer 3-75

TCP quản lyacute kết nối (tt)

Đoacuteng một kết nối

client đoacuteng socket clientSocketclose()

Bước 1 client gửi đoạn điều khiển TCP FIN đến server

Bước 2 server nhận FIN trả lời với ACK Đoacuteng kết nối gửi FIN

client

FIN

server

ACK

ACK

FIN

đoacuteng

đoacuteng

đatilde đoacutengthời g

ian c

hờ

Transport Layer 3-76

TCP quản lyacute kết nối (tt)

Bước 3 client nhận FIN trả lời với ACK

Trong khoảng ldquothời gian chờrdquo ndash sẽ phản hồi với ACK để nhận caacutec FIN

Bước 4 server nhận ACK Kết nối đatilde đoacuteng

Chuacute yacute với một sửa đổi nhỏ coacute thể quản lyacute nhiều FIN đồng thời

client

FIN

server

ACK

ACK

FIN

đang đoacuteng

đang đoacuteng

đatilde đoacuteng

thời g

ian c

hờ

đatilde đoacuteng

Transport Layer 3-77

TCP quản lyacute kết nối (tt)

chu kỳ sống củaTCP client

chu kỳ sống củaTCP server

Transport Layer 3-78

Chương 3 Nội dung trigravenh bagravey

31 Caacutec dịch vụ lớp Transport

32 Multiplexing vagrave demultiplexing

33 Vận chuyển khocircng kết nối UDP

34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy

35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối

36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn

37 Điều khiển tắc nghẽn TCP

Transport Layer 3-79

Caacutec nguyecircn lyacute điều khiển tắc nghẽn

Tắc nghẽn ldquoquaacute nhiều nguồn gửi quaacute nhanh vagrave quaacute nhiều

dữ liệu đến mạngrdquo khaacutec với điều khiển luồng caacutec biểu hiện

caacutec goacutei bị mất (tragraven bộ đệm tại caacutec router) caacutec độ trễ quaacute dagravei (xếp hagraveng trong bộ đệm

của router) lagrave 1 trong 10 vấn đề nan giải nhất

Transport Layer 3-80

Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 1

2 gửi 2 nhận 1 router caacutec bộ

đệm khocircng giới hạn

khocircng coacute truyền lại

caacutec độ trễ lớn hơn khi tắc nghẽn

năng suất coacute thể đạt tối đa

unlimited shared output link buffers

Host Ain original data

Host B

out

Transport Layer 3-81

Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 2

1 router caacutec bộ đệm coacute giới hạn becircn gửi truyền lại caacutec goacutei đatilde mất

chia sẻ vocirc hạncaacutec bộ đệm ouput

Host A in dữ liệu gốc

Host B

out

in dữ liệu gốc cugraveng với dữ liệu truyền lại

Transport Layer 3-82

Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 2 luocircn luocircn

truyền lại ldquohoagraven toagravenrdquo chỉ khi mất maacutet

truyền lại vigrave trễ (khocircng mất) lagravem cho lớn hơn với cugraveng

in

out

=

in

out

gt

in

out

ldquocaacutec chi phiacuterdquo của tắc nghẽn nhiều việc (truyền lại) caacutec truyền lại khocircng cần thiết liecircn kết nhiều bản sao của

goacutei

R2

R2in

ou

t

b

R2

R2in

ou

t

a

R2

R2in

ou

t

c

R4

R3

Transport Layer 3-83

Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 3 4 người gửi caacutec đường qua nhiều hop timeouttruyền lại

in

Hỏi điều gigrave xảy ra nếu vagrave tăng lecircn

in

chia sẻ vocirc hạncaacutec bộ đệm ouput

Host Ain dữ liệu gốc

Host B

out

in dữ liệu gốc cugraveng với dữ liệu truyền lại

Transport Layer 3-84

Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 3

ldquochi phiacuterdquo khaacutec của tắc nghẽn khi caacutec goacutei bị bỏ bất kỳ ldquokhả năng truyền

upstream dugraveng cho goacutei đoacute sẽ bị latildeng phiacuterdquo

Host A

Host B

o

u

t

Transport Layer 3-85

Caacutec caacutech tiếp cận đối với điều khiển tắc nghẽn

điều khiển tắc nghẽn end-end

khocircng coacute phản hồi rotilde ragraveng từ mạng

tắc nghẽn được suy ra từ việc quan saacutet caacutec hệ thống đầu cuối coacute mất maacutet trễ

tiếp cận được quản lyacute bởi TCP

điều khiển tắc nghẽn coacute sự hỗ trợ của mạng

caacutec router cung cấp phản hồi về caacutec hệ thống đầu cuối 1 bit duy nhất chỉ thị

tắc nghẽn (SNA DECbit TCPIP ECN ATM)

tốc độ sẽ gửi được xaacutec định rotilde ragraveng

2 caacutech

Transport Layer 3-86

Viacute dụ điều khiển tắc nghẽn ATM ABR

ABR tốc độ bit sẵn sagraveng

ldquodịch vụ mềm dẻordquo nếu đường gửi ldquochưa

hếtrdquo becircn gửi sẽ dugraveng

băng thocircng sẵn sagraveng nếu đường gửi tắc

nghẽn becircn gửi điều tiết với

tốc độ tối thiểu

RM (resource management)

gửi bởi becircn gửi rải raacutec với caacutec ocirc dữ liệu

caacutec bit trong ocirc thiết lập bởi caacutec switch bit NI khocircng tăng tốc độ

(tắc nghẽn nhẹ) bit CI tắc nghẽn rotilde rệt

Caacutec ocirc RM được trả về becircn gửi từ becircn nhận với nguyecircn vẹn caacutec bit

Transport Layer 3-87

Viacute dụ điều khiển tắc nghẽn ATM ABR

trường 2-byte ER trong ocirc RM switch đatilde tắc nghẽn coacute thể coacute giaacute trị ER thấp hơn trong ocirc tốc độ gửi do đoacute coacute thể được hỗ trợ tối đa trecircn đường

EFCI bit trong caacutec ocirc dữ liệu được cagravei giaacute trị 1 trong switch đatilde tắc nghẽn nếu ocirc dữ liệu đứng trước ocirc RM coacute cagravei EFCI becircn gửi sẽ cagravei

bit CI trong ocirc RM trả về

Transport Layer 3-88

Chương 3 Nội dung trigravenh bagravey

31 Caacutec dịch vụ lớp Transport

32 Multiplexing vagrave demultiplexing

33 Vận chuyển khocircng kết nối UDP

34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy

35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối

36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn

37 Điều khiển tắc nghẽn TCP

Transport Layer 3-89

TCP điều khiển tắc nghẽn additive tăng lecircn multiplicative giảm xuống

8 Kbytes

16 Kbytes

24 Kbytes

time

congestionwindow

Caacutech tiếp cận tăng tốc độ truyền (kiacutech thước cửa sổ) tigravem khả năng băng thocircng coacute thể cho đến khi coacute mất maacutet xảy ra additive tăng lecircn tăng CongWin bởi 1 MSS

mỗi RTT cho đến khi coacute mất maacutet xảy ra multiplicative giảm xuống bỏ CongWin trong

nửa giai đoạn sau khi mất maacutet

timekiacutech

thư

ớc

cửa

sổ

tắc

nghẽ

n

Tigravem kiếm băng thocircng

Transport Layer 3-90

TCP điều khiển tắc nghẽn chi tiết

becircn gửi hạn chế việc truyền LastByteSent-LastByteAcked

CongWin Cocircng thức

CongWin thay đổi chức năng lagrave nhận biết tắc nghẽn trecircn mạng

Lagravem thế nagraveo becircn gửi nhận biết tắc nghẽn

mất maacutet xảy ra = timeout hoặc 3 ack trugraveng lặp

becircn gửi giảm tốc độ (CongWin) sau khi mất maacutet xảy ra

3 cơ chế AIMD khởi động chậm thận trọng sau khi coacute

caacutec sự kiện timeout

tốc độ = CongWin

RTT Bytess

Transport Layer 3-91

TCP khởi động chậm

Khi kết nối bắt đầu CongWin = 1 MSS Viacute dụ MSS = 500 bytes

amp RTT = 200 ms tốc độ khởi tạo = 20

kbps

băng thocircng sẵn sagraveng coacute thể gtgt MSSRTT mong muốn nhanh

choacuteng tăng tốc lecircn tốc độ coacute thể đaacutep ứng

Khi kết nối bắt đầu tăng tốc lecircn rất nhanh cho đến khi sự cố mất maacutet xảy ra đầu tiecircn

Transport Layer 3-92

TCP khởi động chậm (tt)

Khi kết nối bắt đầu tăng tốc lecircn rất nhanh cho đến khi sự cố mất maacutet xảy ra đầu tiecircn nhacircn đocirci CongWin mỗi

RTT hoagraven thagravenh nhờ tăng CongWin ứng với mỗi ACK đatilde nhận

Tổng kết tốc độ khởi đầu lagrave chậm nhưng sau đoacute tăng tốc rất nhanh

Host A

1 đoạn

RTT

Host B

thời gian

2 đoạn

4 đoạn

Transport Layer 3-93

Tinh chếHỏi Khi nagraveo việc tăng

tốc trở thagravenh tuyến tiacutenh

Trả lời Khi CongWin đạt đến 12 giaacute trị của noacute trước khi timeout

Hiện thực Ngưỡng thay đổi Tại thời điểm coacute sự cố

mất maacutet ngưỡng được cagravei giaacute trị bằng frac12 của CongWin ngay trước đoacute

Transport Layer 3-94

Tinh chế nhận biết mất maacutet

Sau 3 ACK trugraveng lặp CongWin sẽ giảm 12 kiacutech thước cửa sổ

tăng tuyến tiacutenh nhưng sau sự cố

timeout CongWin thay giaacute trị

bằng 1 MSS kiacutech thước cửa sổ

tăng cấp lũy thừa khi đến một ngưỡng

thigrave tăng tuyến tiacutenh

3 ACK trugraveng nhau chỉ ra khả năng truyền của mạng timeout chỉ thị ldquonhiều cảnh baacuteordquo về tigravenh huống tắc nghẽn

Nguyecircn lyacute

Transport Layer 3-95

Tổng kết TCP điều khiển tắc nghẽn

Khi CongWin dưới Threshold becircn gửi đang trong giai đoạn khởi động chậm kiacutech thước cửa sổ tăng nhanh theo cấp lũy thừa

Khi CongWin trecircn Threshold becircn gửi đang trong giai đoạn traacutenh tắc nghẽn kiacutech thước cửa sổ tăng nhanh theo cấp tuyến tiacutenh

Khi coacute 3 ACK trugraveng lặp xảy ra Threshold = CongWin2 vagrave CongWin = Threshold

Khi timeout xảy ra Threshold = CongWin2 vagrave CongWin = 1 MSS

Transport Layer 3-96

TCP điều khiển tắc nghẽn becircn gửi

Trạng thaacutei Sự kiện TCP becircn gửi hagravenh động Diễn giải

Slow Start (SS)-Khởi động chậm

ACK baacuteo nhận cho dữ liệu chưa ACK trước đoacute

CongWin = CongWin + MSS If (CongWin gt Threshold) cagravei đặt trạng thaacutei ldquoTraacutenh tắc nghẽnrdquo

Hậu quả lagravem tăng gấp đocirci CongWin mỗi RTT

CongestionAvoidance (CA) ndashTraacutenh tắc nghẽn

ACK baacuteo nhận cho dữ liệu chưa ACK trước đoacute

CongWin = CongWin+MSS (MSSCongWin)

Additive tăng lecircn lagravem tăng CongWin lecircn 1 MSS mỗi RTT

SS hoặc CA Sự cố mất maacutet xảy ra khi thấy coacute 3 ACK trugraveng lặp

Threshold = CongWin2 CongWin = Thresholdcagravei đặt trạng thaacutei ldquoTraacutenh tắc nghẽnrdquo

Khocirci phục nhanh hiện thực giảm xuống multiplicative CongWin sẽ khocircng giảm xuống dưới 1 MSS

SS hoặc CA Timeout Threshold = CongWin2 CongWin = 1 MSScagravei đặt trạng thaacutei ldquoKhởi động chậmrdquo

Vagraveo chế độ ldquoKhởi động chậmrdquo

SS hoặc CA ACK trugraveng lặp

Đếm ACK tăng lecircn cho đoạn vừa được ACK

CongWin vagrave Threshold khocircng thay đổi

Transport Layer 3-97

TCP throughput

Throughout trung bigravenh của TCP biểu diễn qua kiacutech thước của sổ vagrave RTT Bỏ qua trạng thaacutei ldquoKhởi động chậmrdquo

Cho W lagrave kiacutech thước cửa sổ khi coacute mất maacutet xảy ra

Khi kiacutech thước cửa sổ = W lưu lượng = WRTT

Chỉ ngay sau khi mất maacutet cửa sổ giảm xuống = W2 lưu lượng = W2RTT

throughout trung bigravenh 075 WRTT

Transport Layer 3-98

TCP tương lai

Viacute dụ caacutec đoạn dagravei 1500 byte RTT 100ms lưu lượng 10 Gbps

Kiacutech thước cửa sổ yecircu cầu W = 83333 đoạn trecircn đường truyền

Lưu lượng trong caacutec trường hợp mất maacutet

L = 210-10

Phiecircn bản mới của TCP dagravenh cho nhu cầu tốc độ cao

LRTT

MSS221

Transport Layer 3-99

Mục tiecircu nếu K phiecircn lagravem việc TCP chia sẻ kết nối cổ chai của băng thocircng lagrave R mỗi phiecircn coacute tốc độ trung bigravenh lagrave RK

TCP kết nối 1

router cổ chaikhả năng R

TCP kết nối 2

TCP tiacutenh cocircng bằng

Transport Layer 3-100

Tại sao phải TCP cocircng bằng

2 phiecircn lagravem việc cạnh tranh nhau Additive tăng lưu lượng tăng multiplicative giảm lưu lượng tương xứng

R

R

chia sẻ băng thocircng bằng nhau

Connection 1 throughputConnect

ion 2

th

roughput

traacutenh tắc nghẽn additive tăng lecircnmất maacutet giảm cửa sổ bằng 12

traacutenh tắc nghẽn additive tăng lecircnmất maacutet giảm cửa sổ bằng 12

Transport Layer 3-101

TCP tiacutenh cocircng bằng (tt)

Tiacutenh cocircng bằng amp UDP nhiều ứng dụng

thường khocircng dugraveng TCP khocircng muốn tốc độ bị

điều tiết do điều khiển tắc nghẽn

Thay bằng dugraveng UDP truyền audiovideo với

tốc độ ổn định chịu được mất maacutet

Nghiecircn cứu giao thức thacircn thiện với TCP

Tiacutenh cocircng bằng amp caacutec kết nối TCP song song

khocircng coacute gigrave ngăn cản việc ứng dụng mở caacutec kết nối song song giữa 2 host

Trigravenh duyệt Web lagravem giống như thế

Viacute dụ tốc độ R hỗ trợ 9 kết nối ứng dụng mới yecircu cầu 1

TCP coacute tốc độ R10 ứng dụng mới yecircu cầu 11

TCP coacute tốc độ R2

Transport Layer 3-102

Mocirc higravenh trễ

Hỏi Mất bao lacircu để nhận 1 đối tượng từ Web server sau khi gửi yecircu cầu

Bỏ qua tắc nghẽn trễ bị ảnh hưởng bởi

thiết lập kết nối TCP trễ truyền dữ liệu khởi động chậm

Notation caacutec giả định Giả sử một kết nối giữa

client vagrave server coacute tốc độ R

S MSS (bits) O kiacutech thước đối tượng

(bits) khocircng truyền lại (khocircng

mất maacutet khocircng hỏng)

Kiacutech thước cửa sổ Giả định 1 cửa sổ tắc

nghẽn cố định coacute W đoạn Sau đoacute cửa sổ thay đổi

mocirc higravenh khởi động chậm

Transport Layer 3-103

Cửa sổ tắc nghẽn cố định (1)

Trường hợp đầu tiecircnWSR gt RTT + SR cho

đoạn đầu tiecircn trong cửa sổ trả về trước khi cửa sổ dữ liệu gửi ACK

trễ = 2RTT + OR

Transport Layer 3-104

Cửa sổ tắc nghẽn cố định (2)

Trường hợp thứ hai WSR lt RTT + SR sent

chờ cho ACK sau khi gửi dữ liệu

trễ = 2RTT + OR+ (K-1)[SR + RTT - WSR]

Transport Layer 3-105

TCP Mocirc higravenh trễ Khởi động chậm (1)

Bacircy giờ giả sử kiacutech thước cửa sổ tăng lecircn tugravey theo quaacute trigravenh khởi động chậm

Độ trễ của một đối tượng sẽ lagrave

R

S

R

SRTTP

R

ORTTLatency P )12(2

trong đoacute P lagrave số lần TCP rảnh ở tại server

1min KQP

- trong đoacute Q lagrave số lần server rảnh nếu đối tượng đatilde khởi tạo kiacutech thước

- vagrave K lagrave số lượng cửa sổ bao trugravem đối tượng

Transport Layer 3-106

TCP Mocirc higravenh trễ Khởi động chậm (2)

RTT

initia te TCPconnection

requestobject

first w indow= S R

second w indow= 2S R

third w indow= 4S R

fourth w indow= 8S R

com pletetransm issionobject

delivered

tim e atc lient

tim e atserver

Viacute dụbull OS = 15 đoạnbull K = 4 cửa sổbull Q = 2bull P = minK-1Q = 2

Server rảnh P=2 lần

Caacutec thagravenh phần trễbull 2 RTT dagravenh cho thiết lập kết nối vagrave yecircu cầubull OR để truyền đối tượngbullthời gian server rảnh bởi vigrave khởi động chậm

Server rảnh P = minK-1Q lần

Transport Layer 3-107

TCP Mocirc higravenh trễ(3)

R

S

R

SRTTPRTT

R

O

R

SRTT

R

SRTT

R

O

idleTimeRTTR

O

P

kP

k

P

pp

)12(][2

]2[2

2delay

1

1

1

th window after the timeidle 2 1 kR

SRTT

R

S k

ementacknowledg receivesserver until

segment send tostartsserver when from time RTTR

S

window kth the transmit totime2 1

R

Sk

RTT

initia te TCPconnection

requestobject

first w indow= S R

second w indow= 2S R

third w indow= 4S R

fourth w indow= 8S R

com pletetransm issionobject

delivered

tim e atc lient

tim e atserver

Transport Layer 3-108

TCP Mocirc higravenh trễ (4)

)1(log

)1(logmin

12min

222min

222min

2

2

110

110

S

OS

Okk

S

Ok

SOk

OSSSkK

k

k

k

caacutech tiacutenh toaacuten Q tương tự (xem HW)

K = số lượng cửa sổ bao trugravem đối tượngLagravem thế nagraveo tiacutenh được K

Transport Layer 3-109

HTTP Mocirc higravenh Giả sử trang Web chứa

1 trang HTML (kiacutech thước O bits) M higravenh ảnh (mỗi caacutei kiacutech thướcO bits)

HTTP khocircng bền vững M+1 TCP kết nối Thời gian đaacutep ứng = (M+1)OR + (M+1)2RTT + tổng số thời

gian rảnh HTTP bền vững

2 RTT để yecircu cầu vagrave nhận file HTML 1 RTT để yecircu cầu vagrave nhận M higravenh ảnh Thời gian đaacutep ứng = (M+1)OR + 3RTT + tổng số thời gian

rảnh HTTP khocircng bền vững với X kết nối song song

Giả sử MX lagrave số nguyecircn 1 TCP kết nối cho file MX thiết lập caacutec kết nối song song cho caacutec higravenh ảnh Thời gian đaacutep ứng = (M+1)OR + (MX + 1)2RTT + tổng số

thời gian rảnh

Transport Layer 3-110

02468

101214161820

28Kbps

100Kbps

1Mbps

10Mbps

non-persistent

persistent

parallel non-persistent

HTTP thời gian đaacutep ứng (giacircy)RTT = 100 msec O = 5 Kbytes M=10 vagrave X=5

Với băng thocircng thấp thời gian kết nối amp đaacutep ứng trội hơn thời gian truyền

Caacutec kết nối bền vững chỉ cho sự cải thiện khocircng đaacuteng kể trecircn caacutec kết nối song song

Transport Layer 3-111

0

10

20

30

40

50

60

70

28Kbps

100Kbps

1Mbps

10Mbps

non-persistent

persistent

parallel non-persistent

HTTP thời gian đaacutep ứng (giacircy)

RTT =1 sec O = 5 Kbytes M=10 and X=5

Với RTT lớn hơn thời gian đaacutep ứng trội hơn thời gian trễ chờ thiết lập kết nốiTCP amp khởi động chậm Caacutec kết nối bền vững bacircy giờ cho thấy cải thiện rotilde rệt đặc biệtvới caacutec mạng băng thocircng cao

Transport Layer 3-112

Chương 3 Tổng kết caacutec nguyecircn lyacute của caacutec

dịch vụ lớp transport multiplexing

demultiplexing truyền dữ liệu tin cậy điều khiển luồng điều khiển tắc nghẽn

khởi tạo vagrave hiện thực trong Internet UDP TCP

Tiếp theo nghiecircn cứu xong

caacutec vấn đề ldquongoagravei biecircnrdquo (caacutec lớp application transport)

chuẩn bị vagraveo phần ldquolotildeirdquo của mạng

  • Slide 1
  • Chương 3 Lớp Transport
  • Chương 3 Nội dung trigravenh bagravey
  • Caacutec dịch vụ vagrave giao thức Transport
  • Lớp Transport với lớp network
  • Caacutec giao thức lớp transport trecircn Internet
  • Slide 7
  • Multiplexingdemultiplexing
  • Demultiplexing lagravem việc như thế nagraveo
  • Demultiplexing khocircng kết nối
  • Demultiplexing khocircng kết nối (tiếp)
  • Demultiplexing hướng kết nối
  • Demultiplexing hướng kết nối (tiếp)
  • Demultiplexing hướng kết nối Threaded Web Server
  • Slide 15
  • UDP User Datagram Protocol [RFC 768]
  • UDP (tt)
  • UDP checksum
  • Viacute dụ Checksum
  • Slide 20
  • Caacutec nguyecircn lyacute truyền dữ liệu tin cậy
  • Slide 22
  • Slide 23
  • Truyền dữ liệu tin cậy
  • Slide 25
  • Rdt10 truyền dữ liệu tin cậy trecircn 1 kecircnh truyền tin cậy
  • Rdt20 kecircnh với caacutec lỗi
  • rdt20 đặc tả FSM
  • rdt20 hoạt động khi khocircng lỗi
  • rdt20 hoạt động khi coacute lỗi
  • rdt20 coacute lỗ hổng nghiecircm trọng
  • rdt21 người gửi quản lyacute caacutec ACKNAK bị hỏng
  • Slide 33
  • rdt21 thảo luận
  • rdt22 một giao thức khocircng cần NAK
  • rdt22 gửi nhận caacutec mảnh
  • rdt30 caacutec kecircnh với lỗi vagrave mất maacutet
  • rdt30 gửi
  • hagravenh động của rdt30
  • Slide 40
  • Hiệu suất của rdt30
  • rdt30 hoạt động dừng-vagrave-chờ
  • Caacutec giao thức Pipelined
  • Pipelining độ khả dụng tăng
  • Go-Back-N
  • GBN becircn gửi mở rộng FSM
  • GBN becircn nhận mở rộng FSM
  • GBN hoạt động
  • Lặp coacute lựa chọn
  • Lặp coacute lựa chọn caacutec cửa sổ gửi nhận
  • Slide 51
  • Hoạt động của lặp coacute lựa chọn
  • Lặp coacute lựa chọn tigravenh trạng khoacute giải quyết
  • Slide 54
  • TCP Tổng quan RFCs 793 1122 1323 2018 2581
  • TCP cấu truacutec đoạn
  • Caacutec số thứ tự TCP vagrave ACK
  • TCP Round Trip Time vagraveTimeout
  • TCP Round Trip Time vagrave Timeout
  • Viacute dụ đaacutenh giaacute RTT
  • Slide 61
  • TCP truyền dữ liệu tin cậy
  • TCP caacutec sự kiện
  • TCP becircn gửi (đơn giản)
  • TCP caacutec tigravenh huống truyền lại
  • TCP caacutec tigravenh huống truyền lại (tt)
  • TCP sinh ra ACK [RFC 1122 RFC 2581]
  • Truyền lại nhanh
  • Giải thuật truyền lại nhanh
  • Slide 70
  • TCP điều khiển luồng
  • TCP điều khiển luồng caacutech lagravem
  • Slide 73
  • TCP quản lyacute kết nối
  • TCP quản lyacute kết nối (tt)
  • Slide 76
  • Slide 77
  • Slide 78
  • Caacutec nguyecircn lyacute điều khiển tắc nghẽn
  • Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 1
  • Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 2
  • Slide 82
  • Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 3
  • Slide 84
  • Caacutec caacutech tiếp cận đối với điều khiển tắc nghẽn
  • Viacute dụ điều khiển tắc nghẽn ATM ABR
  • Slide 87
  • Slide 88
  • TCP điều khiển tắc nghẽn additive tăng lecircn multiplicative giảm xuống
  • TCP điều khiển tắc nghẽn chi tiết
  • TCP khởi động chậm
  • TCP khởi động chậm (tt)
  • Tinh chế
  • Tinh chế nhận biết mất maacutet
  • Tổng kết TCP điều khiển tắc nghẽn
  • TCP điều khiển tắc nghẽn becircn gửi
  • TCP throughput
  • TCP tương lai
  • TCP tiacutenh cocircng bằng
  • Tại sao phải TCP cocircng bằng
  • TCP tiacutenh cocircng bằng (tt)
  • Mocirc higravenh trễ
  • Cửa sổ tắc nghẽn cố định (1)
  • Cửa sổ tắc nghẽn cố định (2)
  • TCP Mocirc higravenh trễ Khởi động chậm (1)
  • TCP Mocirc higravenh trễ Khởi động chậm (2)
  • TCP Mocirc higravenh trễ(3)
  • TCP Mocirc higravenh trễ (4)
  • HTTP Mocirc higravenh
  • Slide 110
  • Slide 111
  • Chương 3 Tổng kết

Transport Layer 3-39

hagravenh động của rdt30

Transport Layer 3-40

hagravenh động của rdt30

Transport Layer 3-41

Hiệu suất của rdt30

rdt30 lagravem việc được nhưng đaacutenh giaacute hiệu suất hơi rắc rối viacute dụ liecircn kết 1 Gbps trễ lan truyền giữa hai đầu cuối lagrave 15

ms goacutei 1KB

T truyền = 8kbpkt109 bsec

= 8 microsec

U sender độ khả dụng ndash

U sender

= 008

30008 = 000027

microseconds

L R

RTT + L R =

L (độ dagravei goacutei tiacutenh bằng bits)R (tốc độ truyền bps)

=

goacutei 1KB mỗi 30 msec -gt 33kBs trecircn đường truyền 1 Gbps giao thức network hạn chế việc dugraveng caacutec tagravei nguyecircn vật

lyacute

Transport Layer 3-42

rdt30 hoạt động dừng-vagrave-chờ

goacutei đầu tiecircn đatilde truyền t = 0

gửi nhận

RTT

goacutei cuối cugraveng đatilde truyền t = L R

goacutei đầu tiecircn đatilde đếngoacutei cuối cugraveng đatilde đến gửi ACK

ACK đến gửi goacutei kế tiếp t = RTT + L R

U sender

= 008

30008 = 000027

microseconds

L R

RTT + L R =

Transport Layer 3-43

Caacutec giao thức Pipelined

Pipelining người gửi cho pheacutep gửi nhiều goacutei đồng thời khocircng cần chờ baacuteo nhận được nhoacutem caacutec số thứ tự phải tăng dần phải coacute bộ nhớ đệm tại nơi gửi vagravehoặc nơi nhận

hai dạng phổ biến của caacutec giao thức pipelined go-Back-N Lặp coacute lựa chọn

Transport Layer 3-44

Pipelining độ khả dụng tăng

goacutei đầu tiecircn đatilde truyền t = 0

sender receiver

RTT

goacutei cuối cugraveng đatilde truyền t = L R

goacutei đầu tiecircn đatilde đếngoacutei cuối cugraveng đatilde đến gửi ACK

ACK đến gửi goacuteikế tiếp t = RTT + L R

bit cuối của goacutei thứ 2 đến gửi ACKbit cuối của goacutei thứ 3 đến gửi ACK

U sender

= 024

30008 = 00008

microseconds

3 L R

RTT + L R =

Độ khả dụng tăng lecircngấp 3 lần

Transport Layer 3-45

Go-Back-NBecircn gửi k-bit số thứ tự trong header của goacutei ldquocửa sổrdquo tăng lecircn đến N cho pheacutep gửi caacutec goacutei liecircn tục khocircng cần ACK

ACK(n) ACKs tất cả caacutec goacutei đến chứa số thứ tự n ndash ldquoACK tiacutech lũyrdquo coacute thể nhận caacutec ACK trugraveng lặp (xem becircn nhận)

định thigrave cho mỗi goacutei trecircn đường truyền timeout(n) gửi lại goacutei n vagrave tất cả caacutec goacutei coacute số thứ tự cao

hơn trong cửa sổ

Transport Layer 3-46

GBN becircn gửi mở rộng FSM

chờ start_timerudt_send(sndpkt[base])udt_send(sndpkt[base+1])hellipudt_send(sndpkt[nextseqnum-1])

timeout

rdt_send(data)

if (nextseqnum lt base+N) sndpkt[nextseqnum] = make_pkt(nextseqnumdatachksum) udt_send(sndpkt[nextseqnum]) if (base == nextseqnum) start_timer nextseqnum++ else refuse_data(data)

base = getacknum(rcvpkt)+1If (base == nextseqnum) stop_timer else start_timer

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)

base=1nextseqnum=1

rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)

Transport Layer 3-47

GBN becircn nhận mở rộng FSM

ACK-duy nhất luocircn luocircn gửi ACK cho goacutei đatilde nhận đuacuteng với số thứ tự xếp hạng cao nhất coacute thể sinh ra caacutec ACK trugraveng nhau chỉ cần nhớ expectedseqnum

goacutei khocircng theo thứ tự hủy -gt khocircng nhận vagraveo bộ đệm gửi lại ACK với số thứ tự xếp hạng cao nhất

chờ

udt_send(sndpkt)

default

rdt_rcv(rcvpkt) ampamp notcurrupt(rcvpkt) ampamp hasseqnum(rcvpktexpectedseqnum)

extract(rcvpktdata)deliver_data(data)sndpkt = make_pkt(expectedseqnumACKchksum)udt_send(sndpkt)expectedseqnum++

expectedseqnum=1sndpkt = make_pkt(expectedseqnumACKchksum)

Transport Layer 3-48

GBN hoạt động

Transport Layer 3-49

Lặp coacute lựa chọn

becircn nhận thocircng baacuteo đatilde nhận đuacuteng tất cả từng goacutei một đệm (buffer) caacutec goacutei nếu cần thiết

becircn gửi chỉ gửi lại caacutec goacutei nagraveo khocircng nhận được ACK becircn gửi định thigrave đối với mỗi goacutei khocircng gửi ACK

cửa sổ becircn gửi N số thứ tự liecircn tục hạn chế số thứ tự caacutec goacutei khocircng gửi ACK

Transport Layer 3-50

Lặp coacute lựa chọn caacutec cửa sổ gửi nhận

Transport Layer 3-51

Lặp coacute lựa chọn

dữ liệu từ lớp trecircn nếu số thứ tự kế tiếp sẵn

sagraveng trong cửa sổ gửi goacutei

timeout(n) gửi lại goacutei n taacutei khởi tạo

bộ định thigrave

ACK(n) trong [sendbasesendbase+N]

đaacutenh dấu goacutei n lagrave đatilde nhận nếu goacutei khocircng ACK coacute n

nhỏ nhất dịch chuyển cửa sổ base đến số thứ tự khocircng ACK kế tiếp

Gửigoacutei n trong [rcvbase

rcvbase+N-1]

gửi ACK(n) khocircng thứ tự đệm

(buffer) coacute thứ tự truyền (cũng

truyền caacutec goacutei đatilde đệm coacute thứ tự) dịch chuyển cửa sổ đến goacutei chưa nhận kế tiếp

goacutei n trong [rcvbase-Nrcvbase-1]

ACK(n)

ngược lại lờ đi

Nhận

Transport Layer 3-52

Hoạt động của lặp coacute lựa chọn

Transport Layer 3-53

Lặp coacute lựa chọntigravenh trạng khoacute giải quyếtViacute dụ Số thứ tự 0 1 2 3 Kiacutech thước cửa sổ = 3

becircn nhận khocircng thấy sự khaacutec nhau trong 2 tigravenh huống

chuyển khocircng chiacutenh xaacutec dữ liệu trugraveng lặp như dữ liệu mới trong (a)

Hỏi quan hệ giữa datildey số thứ tự vagrave kiacutech thước cửa sổ

Transport Layer 3-54

Chương 3 Nội dung trigravenh bagravey

31 Caacutec dịch vụ lớp Transport

32 Multiplexing vagrave demultiplexing

33 Vận chuyển khocircng kết nối UDP

34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy

35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối

36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn

37 Điều khiển tắc nghẽn TCP

Transport Layer 3-55

TCP Tổng quan RFCs 793 1122 1323 2018 2581

dữ liệu full duplex luồng dữ liệu đi 2 chiều

trong cugraveng một kết nối MSS maximum

segment size ndash kiacutech thước đoạn tối đa

hướng kết nối bắt tay (trao đổi caacutec

thocircng điệp điều khiển) trạng thaacutei becircn gửi becircn nhận trước khi trao đổi dữ liệu

điều khiển luồng becircn gửi sẽ khocircng lấn aacutet

becircn nhận

point-to-point một becircn gửi một becircn

nhận tin cậy dograveng byte coacute

thứ tự khocircng ldquoranh giới thocircng

điệprdquo kecircnh liecircn lạc

TCP điều khiển luồng vagrave tắc nghẽn thiết lập kiacutech thước cửa sổ

caacutec bộ đệm gửi amp nhận

socketdoor

T C Psend buffer

T C Preceive buffer

socketdoor

segm ent

applicationwrites data

applicationreads data

Transport Layer 3-56

TCP cấu truacutec đoạn

port nguồn port điacutech

32 bits

dữ liệu ứng dụng(độ dagravei thay đổi)

số thứ tự

số ACKcửa sổ nhận

con trỏ URGchecksum

FSRPAUheadlen

notused

Tugravey chọn (độ dagravei thay đổi)

URG dữ liệu khẩn cấp(thường khocircng dugraveng)

ACK ACK hợp lệ

PSH push data now(thường khocircng dugraveng)

RST SYN FINthiết lập kết nối

(caacutec lệnh thiết lậpchia nhỏ)

số byte becircn nhận sẵn sagraveng chấp nhận

đếm bởi số bytecủa dữ liệu

Internetchecksum

(giống UDP)

Transport Layer 3-57

Caacutec số thứ tự TCP vagrave ACKCaacutec số thứ tự

dograveng byte ldquođaacutenh sốrdquo byte đầu tiecircn trong dữ liệu của đoạn

caacutec ACK số thứ tự của byte

kế tiếp được chờ đợi từ phiacutea becircn kia

ACK tiacutech lũyHỏi lagravem thế nagraveo becircn

nhận quản lyacute caacutec đoạn khocircng thứ tự Trả lời TCP khocircng

đề cập tugravey thuộc người hiện thực

Host A Host B

Seq=42 ACK=79 data = lsquoCrsquo

Seq=79 ACK=43 data = lsquoCrsquo

Seq=43 ACK=80

UsernhậplsquoCrsquo

host ACKsnhận phản hồi

lsquoCrsquo

host ACKsbaacuteo nhận

lsquoCrsquo phản hồingược lại lsquoCrsquo

timetigravenh huống telnet đơn giản

Transport Layer 3-58

TCP Round Trip Time vagraveTimeout

Hỏi Lagravem thế nagraveo để thiết lập giaacute trị TCP timeout

dagravei hơn RTT khaacutec với RTT

quaacute ngắn timeout sớm truyền lại khocircng

cần thiết quaacute dagravei phản ứng

chậm đối với việc mất maacutet goacutei

Hỏi Lagravem thế nagraveo để thiết lập RTT

SampleRTT thời gian được đo từ khi truyền đoạn đến khi baacuteo nhận ACK lờ đi việc truyền lại

SampleRTT sẽ thay đổi muốn ước lượng RTT ldquomượt hơnrdquo tiacutenh trung bigravenh một số giaacute

trị đo được gần đoacute khocircng chỉ SampleRTT hiện tại

Transport Layer 3-59

TCP Round Trip Time vagrave Timeout

EstimatedRTT = (1- )EstimatedRTT + SampleRTT

giaacute trị đặc trưng = 0125

Transport Layer 3-60

Viacute dụ đaacutenh giaacute RTTRTT gaiacsumassedu to fantasiaeurecomfr

100

150

200

250

300

350

1 8 15 22 29 36 43 50 57 64 71 78 85 92 99 106

time (seconnds)

RTT

(mill

isec

onds

)

SampleRTT Estimated RTT

Transport Layer 3-61

TCP Round Trip Time vagrave Timeout

Thiết lập timeout EstimtedRTT cộng ldquohệ số dự trữ an toagravenrdquo

sự biến thiecircn lớn trong EstimatedRTT -gt hệ số dự trữ an toagraven lớn hơn ước lượng đầu tiecircn về sự biến thiecircn của SampleRTT từ EstimatedRTT

TimeoutInterval = EstimatedRTT + 4DevRTT

DevRTT = (1-)DevRTT + |SampleRTT-EstimatedRTT|

(tiecircu biểu = 025)

Sau đoacute thiết lập timeout interval

Transport Layer 3-62

TCP truyền dữ liệu tin cậy

TCP tạo dịch vụ rdt trecircn dịch vụ khocircng tin cậy IP

caacutec đoạn Pipelined caacutec ACK tiacutech lũy TCP dugraveng bộ định thigrave

truyền lại đơn

Truyền lại được kiacutech hoạt bởi caacutec sự kiện timeout caacutec ack trugraveng lặp

luacutec đầu khảo saacutet caacutec becircn gửi TCP đơn giản lờ đi caacutec ack trugraveng lặp lờ đi điều khiển luồng

điều khiển tắc nghẽn

Transport Layer 3-63

TCP caacutec sự kiệndữ liệu đatilde nhận từ ứng

dụng tạo đoạn với số thứ

tự của noacute số thứ tự lagrave số theo

byte dữ liệu đầu tiecircn khởi động bộ định thigrave

nếu chưa chạy khoảng thời gian hết

hạn TimeOutInterval

timeout gửi lại đoạn nagraveo gacircy

ra timeout khởi động lại bộ định

thigrave Ack đatilde nhận

cập nhật caacutei gigrave sẽ được ACK

khởi động bộ định thigrave nếu coacute caacutec đoạn cograven chờ

Transport Layer 3-64

TCP becircn gửi(đơn giản)

NextSeqNum = InitialSeqNum SendBase = InitialSeqNum

loop (forever) switch(event)

event data received from application above create TCP segment with sequence number NextSeqNum if (timer currently not running) start timer pass segment to IP NextSeqNum = NextSeqNum + length(data)

event timer timeout retransmit not-yet-acknowledged segment with smallest sequence number start timer

event ACK received with ACK field value of y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer

end of loop forever

Chuacute thiacutechbull SendBase-1 byte vừa được ACK tiacutech lũy Viacute dụbull SendBase-1 = 71y= 73 vigrave thế becircn nhận muốn 73+ y gt SendBase vigrave thế dữ liệu mới được chấp nhận

Transport Layer 3-65

TCP caacutec tigravenh huống truyền lại

Host A

Seq=100 20 bytes data

ACK=100

timetimeout sớm

Host B

Seq=92 8 bytes data

ACK=120

Seq=92 8 bytes data

Seq=

92

tim

eout

ACK=120

Host A

Seq=92 8 bytes data

ACK=100

loss

tim

eout

tigravenh huống mất ACK

Host B

X

Seq=92 8 bytes data

ACK=100

time

Seq=

92

tim

eout

SendBase= 100

SendBase= 120

SendBase= 120

Sendbase= 100

Transport Layer 3-66

TCP caacutec tigravenh huống truyền lại (tt)Host A

Seq=92 8 bytes data

ACK=100

loss

tim

eout

Cumulative ACK scenario

Host B

X

Seq=100 20 bytes data

ACK=120

time

SendBase= 120

Transport Layer 3-67

TCP sinh ra ACK [RFC 1122 RFC 2581]

Sự kiện tại becircn nhận

Đoạn đến với đuacuteng số thứ tự mong muốn Tất cả dữ liệu đếnđatilde được ACK

Đoạn đến với đuacuteng số thứ tự mong muốn Một đoạn khaacutec đangchờ ACK

Caacutec đoạn đến khocircng thứ tựlớn hơn số thứ tự đoạn mong muốnCoacute khoảng trống

Đoạn đếnlấp đầy từng phần hoặc toagraven bộkhoảng trống

TCP becircn nhận hagravenh động

ACK trễ Chờ đến 500mscho đoạn kế tiếp Nếu khocircng coacute đoạnkế tiếp gửi ACK

Gửi ngay một ACK tiacutech lũy chấp nhậncho cả caacutec đoạn theo thứ tự

Gửi ngay ACK trugraveng lặp chỉ thị số thứ tựđoạn của byte kế tiếp đang mong chờ

Gửi ngay ACK với điều kiện lagrave đoạnbắt đầu ngay điểm coacute khoảng trống

Transport Layer 3-68

Truyền lại nhanh

Chu kỳ Time-out thường tương đối dagravei độ trễ dagravei trước khi gửi

lại goacutei đatilde mất

Xaacutec nhận caacutec đoạn đatilde mất bằng caacutec ACK trugraveng lặp becircn gửi thường gửi

nhiều đoạn song song Nếu đoạn bị mất sẽ

xảy ra tigravenh trạng giống như nhiều ACK trugraveng nhau

Nếu becircn gửi nhận 3 ACK của cugraveng một dữ liệu noacute cho lagrave đoạn sau dữ liệu đatilde ACK bị mất Truyền lại nhanh gửi

lại đoạn trước khi bộ định thigrave hết hạn

Transport Layer 3-69

sự kiện ACK đatilde nhận với trường lagrave y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer else increment count of dup ACKs received for y if (count of dup ACKs received for y = 3) resend segment with sequence number y

Giải thuật truyền lại nhanh

một ACK trugraveng lặp cho đoạn đatilde được ACK

Truyền lại nhanh

Transport Layer 3-70

Chương 3 Nội dung trigravenh bagravey

31 Caacutec dịch vụ lớp Transport

32 Multiplexing vagrave demultiplexing

33 Vận chuyển khocircng kết nối UDP

34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy

35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối

36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn

37 Điều khiển tắc nghẽn TCP

Transport Layer 3-71

TCP điều khiển luồng

becircn nhận của kết nối TCP coacute một bộ đệm nhận

dịch vụ so trugraveng tốc độ so trugraveng tốc độ gửi với tốc độ nhận của ứng dụng

tiến trigravenh ứng dụng coacute thể chậm tại luacutec đọc bộ đệm

becircn gửi sẽ khocircng lagravem tragraven bộ đệm vigrave truyền quaacute nhiều vagrave

quaacute nhanh

điều khiển luồng

Transport Layer 3-72

TCP điều khiển luồng caacutech lagravem

(Giả sử becircn nhận TCP loại bỏ caacutec đoạn khocircng coacute thứ tự)

dự phograveng trong bộ đệm= RcvWindow

= RcvBuffer-[LastByteRcvd - LastByteRead]

Becircn nhận thocircng baacuteo khoảng dự trữ nhờ giaacute trị RcvWindow trong caacutec đoạn

Becircn gửi hạn chế dữ liệu khocircng được ACK vagraveo RcvWindow bảo đảm bộ đệm nhận

khocircng tragraven

Transport Layer 3-73

Chương 3 Nội dung trigravenh bagravey

31 Caacutec dịch vụ lớp Transport

32 Multiplexing vagrave demultiplexing

33 Vận chuyển khocircng kết nối UDP

34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy

35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối

36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn

37 Điều khiển tắc nghẽn TCP

Transport Layer 3-74

TCP quản lyacute kết nối

Chuacute yacute Becircn gửi vagrave becircn nhận TCP thiết lập ldquokết nốirdquo trước khi trao đổi dữ liệu

khởi tạo caacutec biến TCP caacutec số thứ tự đoạn thocircng tin caacutec bộ đệm điều

khiển luồng (như RcvWindow)

client người khởi xướng kết nối

Socket clientSocket = new Socket(hostnameport

number) server được tiếp xuacutec bởi

client Socket connectionSocket =

welcomeSocketaccept()

3 phương phaacutep bắt tay

Bước 1 client host gửi đoạnTCP SYN đến server xaacutec định số thứ tự khởi đầu khocircng phải dữ liệu

Bước 2 server host nhận SYN trả lời với đoạn SYNACK

server cấp phaacutet caacutec bộ đệm

xaacutec định số thứ tự khởi đầuBước 3 client nhận SYNACK trả

lời với đoạn ACK (coacute thể chứa dữ liệu)

Transport Layer 3-75

TCP quản lyacute kết nối (tt)

Đoacuteng một kết nối

client đoacuteng socket clientSocketclose()

Bước 1 client gửi đoạn điều khiển TCP FIN đến server

Bước 2 server nhận FIN trả lời với ACK Đoacuteng kết nối gửi FIN

client

FIN

server

ACK

ACK

FIN

đoacuteng

đoacuteng

đatilde đoacutengthời g

ian c

hờ

Transport Layer 3-76

TCP quản lyacute kết nối (tt)

Bước 3 client nhận FIN trả lời với ACK

Trong khoảng ldquothời gian chờrdquo ndash sẽ phản hồi với ACK để nhận caacutec FIN

Bước 4 server nhận ACK Kết nối đatilde đoacuteng

Chuacute yacute với một sửa đổi nhỏ coacute thể quản lyacute nhiều FIN đồng thời

client

FIN

server

ACK

ACK

FIN

đang đoacuteng

đang đoacuteng

đatilde đoacuteng

thời g

ian c

hờ

đatilde đoacuteng

Transport Layer 3-77

TCP quản lyacute kết nối (tt)

chu kỳ sống củaTCP client

chu kỳ sống củaTCP server

Transport Layer 3-78

Chương 3 Nội dung trigravenh bagravey

31 Caacutec dịch vụ lớp Transport

32 Multiplexing vagrave demultiplexing

33 Vận chuyển khocircng kết nối UDP

34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy

35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối

36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn

37 Điều khiển tắc nghẽn TCP

Transport Layer 3-79

Caacutec nguyecircn lyacute điều khiển tắc nghẽn

Tắc nghẽn ldquoquaacute nhiều nguồn gửi quaacute nhanh vagrave quaacute nhiều

dữ liệu đến mạngrdquo khaacutec với điều khiển luồng caacutec biểu hiện

caacutec goacutei bị mất (tragraven bộ đệm tại caacutec router) caacutec độ trễ quaacute dagravei (xếp hagraveng trong bộ đệm

của router) lagrave 1 trong 10 vấn đề nan giải nhất

Transport Layer 3-80

Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 1

2 gửi 2 nhận 1 router caacutec bộ

đệm khocircng giới hạn

khocircng coacute truyền lại

caacutec độ trễ lớn hơn khi tắc nghẽn

năng suất coacute thể đạt tối đa

unlimited shared output link buffers

Host Ain original data

Host B

out

Transport Layer 3-81

Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 2

1 router caacutec bộ đệm coacute giới hạn becircn gửi truyền lại caacutec goacutei đatilde mất

chia sẻ vocirc hạncaacutec bộ đệm ouput

Host A in dữ liệu gốc

Host B

out

in dữ liệu gốc cugraveng với dữ liệu truyền lại

Transport Layer 3-82

Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 2 luocircn luocircn

truyền lại ldquohoagraven toagravenrdquo chỉ khi mất maacutet

truyền lại vigrave trễ (khocircng mất) lagravem cho lớn hơn với cugraveng

in

out

=

in

out

gt

in

out

ldquocaacutec chi phiacuterdquo của tắc nghẽn nhiều việc (truyền lại) caacutec truyền lại khocircng cần thiết liecircn kết nhiều bản sao của

goacutei

R2

R2in

ou

t

b

R2

R2in

ou

t

a

R2

R2in

ou

t

c

R4

R3

Transport Layer 3-83

Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 3 4 người gửi caacutec đường qua nhiều hop timeouttruyền lại

in

Hỏi điều gigrave xảy ra nếu vagrave tăng lecircn

in

chia sẻ vocirc hạncaacutec bộ đệm ouput

Host Ain dữ liệu gốc

Host B

out

in dữ liệu gốc cugraveng với dữ liệu truyền lại

Transport Layer 3-84

Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 3

ldquochi phiacuterdquo khaacutec của tắc nghẽn khi caacutec goacutei bị bỏ bất kỳ ldquokhả năng truyền

upstream dugraveng cho goacutei đoacute sẽ bị latildeng phiacuterdquo

Host A

Host B

o

u

t

Transport Layer 3-85

Caacutec caacutech tiếp cận đối với điều khiển tắc nghẽn

điều khiển tắc nghẽn end-end

khocircng coacute phản hồi rotilde ragraveng từ mạng

tắc nghẽn được suy ra từ việc quan saacutet caacutec hệ thống đầu cuối coacute mất maacutet trễ

tiếp cận được quản lyacute bởi TCP

điều khiển tắc nghẽn coacute sự hỗ trợ của mạng

caacutec router cung cấp phản hồi về caacutec hệ thống đầu cuối 1 bit duy nhất chỉ thị

tắc nghẽn (SNA DECbit TCPIP ECN ATM)

tốc độ sẽ gửi được xaacutec định rotilde ragraveng

2 caacutech

Transport Layer 3-86

Viacute dụ điều khiển tắc nghẽn ATM ABR

ABR tốc độ bit sẵn sagraveng

ldquodịch vụ mềm dẻordquo nếu đường gửi ldquochưa

hếtrdquo becircn gửi sẽ dugraveng

băng thocircng sẵn sagraveng nếu đường gửi tắc

nghẽn becircn gửi điều tiết với

tốc độ tối thiểu

RM (resource management)

gửi bởi becircn gửi rải raacutec với caacutec ocirc dữ liệu

caacutec bit trong ocirc thiết lập bởi caacutec switch bit NI khocircng tăng tốc độ

(tắc nghẽn nhẹ) bit CI tắc nghẽn rotilde rệt

Caacutec ocirc RM được trả về becircn gửi từ becircn nhận với nguyecircn vẹn caacutec bit

Transport Layer 3-87

Viacute dụ điều khiển tắc nghẽn ATM ABR

trường 2-byte ER trong ocirc RM switch đatilde tắc nghẽn coacute thể coacute giaacute trị ER thấp hơn trong ocirc tốc độ gửi do đoacute coacute thể được hỗ trợ tối đa trecircn đường

EFCI bit trong caacutec ocirc dữ liệu được cagravei giaacute trị 1 trong switch đatilde tắc nghẽn nếu ocirc dữ liệu đứng trước ocirc RM coacute cagravei EFCI becircn gửi sẽ cagravei

bit CI trong ocirc RM trả về

Transport Layer 3-88

Chương 3 Nội dung trigravenh bagravey

31 Caacutec dịch vụ lớp Transport

32 Multiplexing vagrave demultiplexing

33 Vận chuyển khocircng kết nối UDP

34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy

35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối

36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn

37 Điều khiển tắc nghẽn TCP

Transport Layer 3-89

TCP điều khiển tắc nghẽn additive tăng lecircn multiplicative giảm xuống

8 Kbytes

16 Kbytes

24 Kbytes

time

congestionwindow

Caacutech tiếp cận tăng tốc độ truyền (kiacutech thước cửa sổ) tigravem khả năng băng thocircng coacute thể cho đến khi coacute mất maacutet xảy ra additive tăng lecircn tăng CongWin bởi 1 MSS

mỗi RTT cho đến khi coacute mất maacutet xảy ra multiplicative giảm xuống bỏ CongWin trong

nửa giai đoạn sau khi mất maacutet

timekiacutech

thư

ớc

cửa

sổ

tắc

nghẽ

n

Tigravem kiếm băng thocircng

Transport Layer 3-90

TCP điều khiển tắc nghẽn chi tiết

becircn gửi hạn chế việc truyền LastByteSent-LastByteAcked

CongWin Cocircng thức

CongWin thay đổi chức năng lagrave nhận biết tắc nghẽn trecircn mạng

Lagravem thế nagraveo becircn gửi nhận biết tắc nghẽn

mất maacutet xảy ra = timeout hoặc 3 ack trugraveng lặp

becircn gửi giảm tốc độ (CongWin) sau khi mất maacutet xảy ra

3 cơ chế AIMD khởi động chậm thận trọng sau khi coacute

caacutec sự kiện timeout

tốc độ = CongWin

RTT Bytess

Transport Layer 3-91

TCP khởi động chậm

Khi kết nối bắt đầu CongWin = 1 MSS Viacute dụ MSS = 500 bytes

amp RTT = 200 ms tốc độ khởi tạo = 20

kbps

băng thocircng sẵn sagraveng coacute thể gtgt MSSRTT mong muốn nhanh

choacuteng tăng tốc lecircn tốc độ coacute thể đaacutep ứng

Khi kết nối bắt đầu tăng tốc lecircn rất nhanh cho đến khi sự cố mất maacutet xảy ra đầu tiecircn

Transport Layer 3-92

TCP khởi động chậm (tt)

Khi kết nối bắt đầu tăng tốc lecircn rất nhanh cho đến khi sự cố mất maacutet xảy ra đầu tiecircn nhacircn đocirci CongWin mỗi

RTT hoagraven thagravenh nhờ tăng CongWin ứng với mỗi ACK đatilde nhận

Tổng kết tốc độ khởi đầu lagrave chậm nhưng sau đoacute tăng tốc rất nhanh

Host A

1 đoạn

RTT

Host B

thời gian

2 đoạn

4 đoạn

Transport Layer 3-93

Tinh chếHỏi Khi nagraveo việc tăng

tốc trở thagravenh tuyến tiacutenh

Trả lời Khi CongWin đạt đến 12 giaacute trị của noacute trước khi timeout

Hiện thực Ngưỡng thay đổi Tại thời điểm coacute sự cố

mất maacutet ngưỡng được cagravei giaacute trị bằng frac12 của CongWin ngay trước đoacute

Transport Layer 3-94

Tinh chế nhận biết mất maacutet

Sau 3 ACK trugraveng lặp CongWin sẽ giảm 12 kiacutech thước cửa sổ

tăng tuyến tiacutenh nhưng sau sự cố

timeout CongWin thay giaacute trị

bằng 1 MSS kiacutech thước cửa sổ

tăng cấp lũy thừa khi đến một ngưỡng

thigrave tăng tuyến tiacutenh

3 ACK trugraveng nhau chỉ ra khả năng truyền của mạng timeout chỉ thị ldquonhiều cảnh baacuteordquo về tigravenh huống tắc nghẽn

Nguyecircn lyacute

Transport Layer 3-95

Tổng kết TCP điều khiển tắc nghẽn

Khi CongWin dưới Threshold becircn gửi đang trong giai đoạn khởi động chậm kiacutech thước cửa sổ tăng nhanh theo cấp lũy thừa

Khi CongWin trecircn Threshold becircn gửi đang trong giai đoạn traacutenh tắc nghẽn kiacutech thước cửa sổ tăng nhanh theo cấp tuyến tiacutenh

Khi coacute 3 ACK trugraveng lặp xảy ra Threshold = CongWin2 vagrave CongWin = Threshold

Khi timeout xảy ra Threshold = CongWin2 vagrave CongWin = 1 MSS

Transport Layer 3-96

TCP điều khiển tắc nghẽn becircn gửi

Trạng thaacutei Sự kiện TCP becircn gửi hagravenh động Diễn giải

Slow Start (SS)-Khởi động chậm

ACK baacuteo nhận cho dữ liệu chưa ACK trước đoacute

CongWin = CongWin + MSS If (CongWin gt Threshold) cagravei đặt trạng thaacutei ldquoTraacutenh tắc nghẽnrdquo

Hậu quả lagravem tăng gấp đocirci CongWin mỗi RTT

CongestionAvoidance (CA) ndashTraacutenh tắc nghẽn

ACK baacuteo nhận cho dữ liệu chưa ACK trước đoacute

CongWin = CongWin+MSS (MSSCongWin)

Additive tăng lecircn lagravem tăng CongWin lecircn 1 MSS mỗi RTT

SS hoặc CA Sự cố mất maacutet xảy ra khi thấy coacute 3 ACK trugraveng lặp

Threshold = CongWin2 CongWin = Thresholdcagravei đặt trạng thaacutei ldquoTraacutenh tắc nghẽnrdquo

Khocirci phục nhanh hiện thực giảm xuống multiplicative CongWin sẽ khocircng giảm xuống dưới 1 MSS

SS hoặc CA Timeout Threshold = CongWin2 CongWin = 1 MSScagravei đặt trạng thaacutei ldquoKhởi động chậmrdquo

Vagraveo chế độ ldquoKhởi động chậmrdquo

SS hoặc CA ACK trugraveng lặp

Đếm ACK tăng lecircn cho đoạn vừa được ACK

CongWin vagrave Threshold khocircng thay đổi

Transport Layer 3-97

TCP throughput

Throughout trung bigravenh của TCP biểu diễn qua kiacutech thước của sổ vagrave RTT Bỏ qua trạng thaacutei ldquoKhởi động chậmrdquo

Cho W lagrave kiacutech thước cửa sổ khi coacute mất maacutet xảy ra

Khi kiacutech thước cửa sổ = W lưu lượng = WRTT

Chỉ ngay sau khi mất maacutet cửa sổ giảm xuống = W2 lưu lượng = W2RTT

throughout trung bigravenh 075 WRTT

Transport Layer 3-98

TCP tương lai

Viacute dụ caacutec đoạn dagravei 1500 byte RTT 100ms lưu lượng 10 Gbps

Kiacutech thước cửa sổ yecircu cầu W = 83333 đoạn trecircn đường truyền

Lưu lượng trong caacutec trường hợp mất maacutet

L = 210-10

Phiecircn bản mới của TCP dagravenh cho nhu cầu tốc độ cao

LRTT

MSS221

Transport Layer 3-99

Mục tiecircu nếu K phiecircn lagravem việc TCP chia sẻ kết nối cổ chai của băng thocircng lagrave R mỗi phiecircn coacute tốc độ trung bigravenh lagrave RK

TCP kết nối 1

router cổ chaikhả năng R

TCP kết nối 2

TCP tiacutenh cocircng bằng

Transport Layer 3-100

Tại sao phải TCP cocircng bằng

2 phiecircn lagravem việc cạnh tranh nhau Additive tăng lưu lượng tăng multiplicative giảm lưu lượng tương xứng

R

R

chia sẻ băng thocircng bằng nhau

Connection 1 throughputConnect

ion 2

th

roughput

traacutenh tắc nghẽn additive tăng lecircnmất maacutet giảm cửa sổ bằng 12

traacutenh tắc nghẽn additive tăng lecircnmất maacutet giảm cửa sổ bằng 12

Transport Layer 3-101

TCP tiacutenh cocircng bằng (tt)

Tiacutenh cocircng bằng amp UDP nhiều ứng dụng

thường khocircng dugraveng TCP khocircng muốn tốc độ bị

điều tiết do điều khiển tắc nghẽn

Thay bằng dugraveng UDP truyền audiovideo với

tốc độ ổn định chịu được mất maacutet

Nghiecircn cứu giao thức thacircn thiện với TCP

Tiacutenh cocircng bằng amp caacutec kết nối TCP song song

khocircng coacute gigrave ngăn cản việc ứng dụng mở caacutec kết nối song song giữa 2 host

Trigravenh duyệt Web lagravem giống như thế

Viacute dụ tốc độ R hỗ trợ 9 kết nối ứng dụng mới yecircu cầu 1

TCP coacute tốc độ R10 ứng dụng mới yecircu cầu 11

TCP coacute tốc độ R2

Transport Layer 3-102

Mocirc higravenh trễ

Hỏi Mất bao lacircu để nhận 1 đối tượng từ Web server sau khi gửi yecircu cầu

Bỏ qua tắc nghẽn trễ bị ảnh hưởng bởi

thiết lập kết nối TCP trễ truyền dữ liệu khởi động chậm

Notation caacutec giả định Giả sử một kết nối giữa

client vagrave server coacute tốc độ R

S MSS (bits) O kiacutech thước đối tượng

(bits) khocircng truyền lại (khocircng

mất maacutet khocircng hỏng)

Kiacutech thước cửa sổ Giả định 1 cửa sổ tắc

nghẽn cố định coacute W đoạn Sau đoacute cửa sổ thay đổi

mocirc higravenh khởi động chậm

Transport Layer 3-103

Cửa sổ tắc nghẽn cố định (1)

Trường hợp đầu tiecircnWSR gt RTT + SR cho

đoạn đầu tiecircn trong cửa sổ trả về trước khi cửa sổ dữ liệu gửi ACK

trễ = 2RTT + OR

Transport Layer 3-104

Cửa sổ tắc nghẽn cố định (2)

Trường hợp thứ hai WSR lt RTT + SR sent

chờ cho ACK sau khi gửi dữ liệu

trễ = 2RTT + OR+ (K-1)[SR + RTT - WSR]

Transport Layer 3-105

TCP Mocirc higravenh trễ Khởi động chậm (1)

Bacircy giờ giả sử kiacutech thước cửa sổ tăng lecircn tugravey theo quaacute trigravenh khởi động chậm

Độ trễ của một đối tượng sẽ lagrave

R

S

R

SRTTP

R

ORTTLatency P )12(2

trong đoacute P lagrave số lần TCP rảnh ở tại server

1min KQP

- trong đoacute Q lagrave số lần server rảnh nếu đối tượng đatilde khởi tạo kiacutech thước

- vagrave K lagrave số lượng cửa sổ bao trugravem đối tượng

Transport Layer 3-106

TCP Mocirc higravenh trễ Khởi động chậm (2)

RTT

initia te TCPconnection

requestobject

first w indow= S R

second w indow= 2S R

third w indow= 4S R

fourth w indow= 8S R

com pletetransm issionobject

delivered

tim e atc lient

tim e atserver

Viacute dụbull OS = 15 đoạnbull K = 4 cửa sổbull Q = 2bull P = minK-1Q = 2

Server rảnh P=2 lần

Caacutec thagravenh phần trễbull 2 RTT dagravenh cho thiết lập kết nối vagrave yecircu cầubull OR để truyền đối tượngbullthời gian server rảnh bởi vigrave khởi động chậm

Server rảnh P = minK-1Q lần

Transport Layer 3-107

TCP Mocirc higravenh trễ(3)

R

S

R

SRTTPRTT

R

O

R

SRTT

R

SRTT

R

O

idleTimeRTTR

O

P

kP

k

P

pp

)12(][2

]2[2

2delay

1

1

1

th window after the timeidle 2 1 kR

SRTT

R

S k

ementacknowledg receivesserver until

segment send tostartsserver when from time RTTR

S

window kth the transmit totime2 1

R

Sk

RTT

initia te TCPconnection

requestobject

first w indow= S R

second w indow= 2S R

third w indow= 4S R

fourth w indow= 8S R

com pletetransm issionobject

delivered

tim e atc lient

tim e atserver

Transport Layer 3-108

TCP Mocirc higravenh trễ (4)

)1(log

)1(logmin

12min

222min

222min

2

2

110

110

S

OS

Okk

S

Ok

SOk

OSSSkK

k

k

k

caacutech tiacutenh toaacuten Q tương tự (xem HW)

K = số lượng cửa sổ bao trugravem đối tượngLagravem thế nagraveo tiacutenh được K

Transport Layer 3-109

HTTP Mocirc higravenh Giả sử trang Web chứa

1 trang HTML (kiacutech thước O bits) M higravenh ảnh (mỗi caacutei kiacutech thướcO bits)

HTTP khocircng bền vững M+1 TCP kết nối Thời gian đaacutep ứng = (M+1)OR + (M+1)2RTT + tổng số thời

gian rảnh HTTP bền vững

2 RTT để yecircu cầu vagrave nhận file HTML 1 RTT để yecircu cầu vagrave nhận M higravenh ảnh Thời gian đaacutep ứng = (M+1)OR + 3RTT + tổng số thời gian

rảnh HTTP khocircng bền vững với X kết nối song song

Giả sử MX lagrave số nguyecircn 1 TCP kết nối cho file MX thiết lập caacutec kết nối song song cho caacutec higravenh ảnh Thời gian đaacutep ứng = (M+1)OR + (MX + 1)2RTT + tổng số

thời gian rảnh

Transport Layer 3-110

02468

101214161820

28Kbps

100Kbps

1Mbps

10Mbps

non-persistent

persistent

parallel non-persistent

HTTP thời gian đaacutep ứng (giacircy)RTT = 100 msec O = 5 Kbytes M=10 vagrave X=5

Với băng thocircng thấp thời gian kết nối amp đaacutep ứng trội hơn thời gian truyền

Caacutec kết nối bền vững chỉ cho sự cải thiện khocircng đaacuteng kể trecircn caacutec kết nối song song

Transport Layer 3-111

0

10

20

30

40

50

60

70

28Kbps

100Kbps

1Mbps

10Mbps

non-persistent

persistent

parallel non-persistent

HTTP thời gian đaacutep ứng (giacircy)

RTT =1 sec O = 5 Kbytes M=10 and X=5

Với RTT lớn hơn thời gian đaacutep ứng trội hơn thời gian trễ chờ thiết lập kết nốiTCP amp khởi động chậm Caacutec kết nối bền vững bacircy giờ cho thấy cải thiện rotilde rệt đặc biệtvới caacutec mạng băng thocircng cao

Transport Layer 3-112

Chương 3 Tổng kết caacutec nguyecircn lyacute của caacutec

dịch vụ lớp transport multiplexing

demultiplexing truyền dữ liệu tin cậy điều khiển luồng điều khiển tắc nghẽn

khởi tạo vagrave hiện thực trong Internet UDP TCP

Tiếp theo nghiecircn cứu xong

caacutec vấn đề ldquongoagravei biecircnrdquo (caacutec lớp application transport)

chuẩn bị vagraveo phần ldquolotildeirdquo của mạng

  • Slide 1
  • Chương 3 Lớp Transport
  • Chương 3 Nội dung trigravenh bagravey
  • Caacutec dịch vụ vagrave giao thức Transport
  • Lớp Transport với lớp network
  • Caacutec giao thức lớp transport trecircn Internet
  • Slide 7
  • Multiplexingdemultiplexing
  • Demultiplexing lagravem việc như thế nagraveo
  • Demultiplexing khocircng kết nối
  • Demultiplexing khocircng kết nối (tiếp)
  • Demultiplexing hướng kết nối
  • Demultiplexing hướng kết nối (tiếp)
  • Demultiplexing hướng kết nối Threaded Web Server
  • Slide 15
  • UDP User Datagram Protocol [RFC 768]
  • UDP (tt)
  • UDP checksum
  • Viacute dụ Checksum
  • Slide 20
  • Caacutec nguyecircn lyacute truyền dữ liệu tin cậy
  • Slide 22
  • Slide 23
  • Truyền dữ liệu tin cậy
  • Slide 25
  • Rdt10 truyền dữ liệu tin cậy trecircn 1 kecircnh truyền tin cậy
  • Rdt20 kecircnh với caacutec lỗi
  • rdt20 đặc tả FSM
  • rdt20 hoạt động khi khocircng lỗi
  • rdt20 hoạt động khi coacute lỗi
  • rdt20 coacute lỗ hổng nghiecircm trọng
  • rdt21 người gửi quản lyacute caacutec ACKNAK bị hỏng
  • Slide 33
  • rdt21 thảo luận
  • rdt22 một giao thức khocircng cần NAK
  • rdt22 gửi nhận caacutec mảnh
  • rdt30 caacutec kecircnh với lỗi vagrave mất maacutet
  • rdt30 gửi
  • hagravenh động của rdt30
  • Slide 40
  • Hiệu suất của rdt30
  • rdt30 hoạt động dừng-vagrave-chờ
  • Caacutec giao thức Pipelined
  • Pipelining độ khả dụng tăng
  • Go-Back-N
  • GBN becircn gửi mở rộng FSM
  • GBN becircn nhận mở rộng FSM
  • GBN hoạt động
  • Lặp coacute lựa chọn
  • Lặp coacute lựa chọn caacutec cửa sổ gửi nhận
  • Slide 51
  • Hoạt động của lặp coacute lựa chọn
  • Lặp coacute lựa chọn tigravenh trạng khoacute giải quyết
  • Slide 54
  • TCP Tổng quan RFCs 793 1122 1323 2018 2581
  • TCP cấu truacutec đoạn
  • Caacutec số thứ tự TCP vagrave ACK
  • TCP Round Trip Time vagraveTimeout
  • TCP Round Trip Time vagrave Timeout
  • Viacute dụ đaacutenh giaacute RTT
  • Slide 61
  • TCP truyền dữ liệu tin cậy
  • TCP caacutec sự kiện
  • TCP becircn gửi (đơn giản)
  • TCP caacutec tigravenh huống truyền lại
  • TCP caacutec tigravenh huống truyền lại (tt)
  • TCP sinh ra ACK [RFC 1122 RFC 2581]
  • Truyền lại nhanh
  • Giải thuật truyền lại nhanh
  • Slide 70
  • TCP điều khiển luồng
  • TCP điều khiển luồng caacutech lagravem
  • Slide 73
  • TCP quản lyacute kết nối
  • TCP quản lyacute kết nối (tt)
  • Slide 76
  • Slide 77
  • Slide 78
  • Caacutec nguyecircn lyacute điều khiển tắc nghẽn
  • Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 1
  • Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 2
  • Slide 82
  • Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 3
  • Slide 84
  • Caacutec caacutech tiếp cận đối với điều khiển tắc nghẽn
  • Viacute dụ điều khiển tắc nghẽn ATM ABR
  • Slide 87
  • Slide 88
  • TCP điều khiển tắc nghẽn additive tăng lecircn multiplicative giảm xuống
  • TCP điều khiển tắc nghẽn chi tiết
  • TCP khởi động chậm
  • TCP khởi động chậm (tt)
  • Tinh chế
  • Tinh chế nhận biết mất maacutet
  • Tổng kết TCP điều khiển tắc nghẽn
  • TCP điều khiển tắc nghẽn becircn gửi
  • TCP throughput
  • TCP tương lai
  • TCP tiacutenh cocircng bằng
  • Tại sao phải TCP cocircng bằng
  • TCP tiacutenh cocircng bằng (tt)
  • Mocirc higravenh trễ
  • Cửa sổ tắc nghẽn cố định (1)
  • Cửa sổ tắc nghẽn cố định (2)
  • TCP Mocirc higravenh trễ Khởi động chậm (1)
  • TCP Mocirc higravenh trễ Khởi động chậm (2)
  • TCP Mocirc higravenh trễ(3)
  • TCP Mocirc higravenh trễ (4)
  • HTTP Mocirc higravenh
  • Slide 110
  • Slide 111
  • Chương 3 Tổng kết

Transport Layer 3-40

hagravenh động của rdt30

Transport Layer 3-41

Hiệu suất của rdt30

rdt30 lagravem việc được nhưng đaacutenh giaacute hiệu suất hơi rắc rối viacute dụ liecircn kết 1 Gbps trễ lan truyền giữa hai đầu cuối lagrave 15

ms goacutei 1KB

T truyền = 8kbpkt109 bsec

= 8 microsec

U sender độ khả dụng ndash

U sender

= 008

30008 = 000027

microseconds

L R

RTT + L R =

L (độ dagravei goacutei tiacutenh bằng bits)R (tốc độ truyền bps)

=

goacutei 1KB mỗi 30 msec -gt 33kBs trecircn đường truyền 1 Gbps giao thức network hạn chế việc dugraveng caacutec tagravei nguyecircn vật

lyacute

Transport Layer 3-42

rdt30 hoạt động dừng-vagrave-chờ

goacutei đầu tiecircn đatilde truyền t = 0

gửi nhận

RTT

goacutei cuối cugraveng đatilde truyền t = L R

goacutei đầu tiecircn đatilde đếngoacutei cuối cugraveng đatilde đến gửi ACK

ACK đến gửi goacutei kế tiếp t = RTT + L R

U sender

= 008

30008 = 000027

microseconds

L R

RTT + L R =

Transport Layer 3-43

Caacutec giao thức Pipelined

Pipelining người gửi cho pheacutep gửi nhiều goacutei đồng thời khocircng cần chờ baacuteo nhận được nhoacutem caacutec số thứ tự phải tăng dần phải coacute bộ nhớ đệm tại nơi gửi vagravehoặc nơi nhận

hai dạng phổ biến của caacutec giao thức pipelined go-Back-N Lặp coacute lựa chọn

Transport Layer 3-44

Pipelining độ khả dụng tăng

goacutei đầu tiecircn đatilde truyền t = 0

sender receiver

RTT

goacutei cuối cugraveng đatilde truyền t = L R

goacutei đầu tiecircn đatilde đếngoacutei cuối cugraveng đatilde đến gửi ACK

ACK đến gửi goacuteikế tiếp t = RTT + L R

bit cuối của goacutei thứ 2 đến gửi ACKbit cuối của goacutei thứ 3 đến gửi ACK

U sender

= 024

30008 = 00008

microseconds

3 L R

RTT + L R =

Độ khả dụng tăng lecircngấp 3 lần

Transport Layer 3-45

Go-Back-NBecircn gửi k-bit số thứ tự trong header của goacutei ldquocửa sổrdquo tăng lecircn đến N cho pheacutep gửi caacutec goacutei liecircn tục khocircng cần ACK

ACK(n) ACKs tất cả caacutec goacutei đến chứa số thứ tự n ndash ldquoACK tiacutech lũyrdquo coacute thể nhận caacutec ACK trugraveng lặp (xem becircn nhận)

định thigrave cho mỗi goacutei trecircn đường truyền timeout(n) gửi lại goacutei n vagrave tất cả caacutec goacutei coacute số thứ tự cao

hơn trong cửa sổ

Transport Layer 3-46

GBN becircn gửi mở rộng FSM

chờ start_timerudt_send(sndpkt[base])udt_send(sndpkt[base+1])hellipudt_send(sndpkt[nextseqnum-1])

timeout

rdt_send(data)

if (nextseqnum lt base+N) sndpkt[nextseqnum] = make_pkt(nextseqnumdatachksum) udt_send(sndpkt[nextseqnum]) if (base == nextseqnum) start_timer nextseqnum++ else refuse_data(data)

base = getacknum(rcvpkt)+1If (base == nextseqnum) stop_timer else start_timer

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)

base=1nextseqnum=1

rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)

Transport Layer 3-47

GBN becircn nhận mở rộng FSM

ACK-duy nhất luocircn luocircn gửi ACK cho goacutei đatilde nhận đuacuteng với số thứ tự xếp hạng cao nhất coacute thể sinh ra caacutec ACK trugraveng nhau chỉ cần nhớ expectedseqnum

goacutei khocircng theo thứ tự hủy -gt khocircng nhận vagraveo bộ đệm gửi lại ACK với số thứ tự xếp hạng cao nhất

chờ

udt_send(sndpkt)

default

rdt_rcv(rcvpkt) ampamp notcurrupt(rcvpkt) ampamp hasseqnum(rcvpktexpectedseqnum)

extract(rcvpktdata)deliver_data(data)sndpkt = make_pkt(expectedseqnumACKchksum)udt_send(sndpkt)expectedseqnum++

expectedseqnum=1sndpkt = make_pkt(expectedseqnumACKchksum)

Transport Layer 3-48

GBN hoạt động

Transport Layer 3-49

Lặp coacute lựa chọn

becircn nhận thocircng baacuteo đatilde nhận đuacuteng tất cả từng goacutei một đệm (buffer) caacutec goacutei nếu cần thiết

becircn gửi chỉ gửi lại caacutec goacutei nagraveo khocircng nhận được ACK becircn gửi định thigrave đối với mỗi goacutei khocircng gửi ACK

cửa sổ becircn gửi N số thứ tự liecircn tục hạn chế số thứ tự caacutec goacutei khocircng gửi ACK

Transport Layer 3-50

Lặp coacute lựa chọn caacutec cửa sổ gửi nhận

Transport Layer 3-51

Lặp coacute lựa chọn

dữ liệu từ lớp trecircn nếu số thứ tự kế tiếp sẵn

sagraveng trong cửa sổ gửi goacutei

timeout(n) gửi lại goacutei n taacutei khởi tạo

bộ định thigrave

ACK(n) trong [sendbasesendbase+N]

đaacutenh dấu goacutei n lagrave đatilde nhận nếu goacutei khocircng ACK coacute n

nhỏ nhất dịch chuyển cửa sổ base đến số thứ tự khocircng ACK kế tiếp

Gửigoacutei n trong [rcvbase

rcvbase+N-1]

gửi ACK(n) khocircng thứ tự đệm

(buffer) coacute thứ tự truyền (cũng

truyền caacutec goacutei đatilde đệm coacute thứ tự) dịch chuyển cửa sổ đến goacutei chưa nhận kế tiếp

goacutei n trong [rcvbase-Nrcvbase-1]

ACK(n)

ngược lại lờ đi

Nhận

Transport Layer 3-52

Hoạt động của lặp coacute lựa chọn

Transport Layer 3-53

Lặp coacute lựa chọntigravenh trạng khoacute giải quyếtViacute dụ Số thứ tự 0 1 2 3 Kiacutech thước cửa sổ = 3

becircn nhận khocircng thấy sự khaacutec nhau trong 2 tigravenh huống

chuyển khocircng chiacutenh xaacutec dữ liệu trugraveng lặp như dữ liệu mới trong (a)

Hỏi quan hệ giữa datildey số thứ tự vagrave kiacutech thước cửa sổ

Transport Layer 3-54

Chương 3 Nội dung trigravenh bagravey

31 Caacutec dịch vụ lớp Transport

32 Multiplexing vagrave demultiplexing

33 Vận chuyển khocircng kết nối UDP

34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy

35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối

36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn

37 Điều khiển tắc nghẽn TCP

Transport Layer 3-55

TCP Tổng quan RFCs 793 1122 1323 2018 2581

dữ liệu full duplex luồng dữ liệu đi 2 chiều

trong cugraveng một kết nối MSS maximum

segment size ndash kiacutech thước đoạn tối đa

hướng kết nối bắt tay (trao đổi caacutec

thocircng điệp điều khiển) trạng thaacutei becircn gửi becircn nhận trước khi trao đổi dữ liệu

điều khiển luồng becircn gửi sẽ khocircng lấn aacutet

becircn nhận

point-to-point một becircn gửi một becircn

nhận tin cậy dograveng byte coacute

thứ tự khocircng ldquoranh giới thocircng

điệprdquo kecircnh liecircn lạc

TCP điều khiển luồng vagrave tắc nghẽn thiết lập kiacutech thước cửa sổ

caacutec bộ đệm gửi amp nhận

socketdoor

T C Psend buffer

T C Preceive buffer

socketdoor

segm ent

applicationwrites data

applicationreads data

Transport Layer 3-56

TCP cấu truacutec đoạn

port nguồn port điacutech

32 bits

dữ liệu ứng dụng(độ dagravei thay đổi)

số thứ tự

số ACKcửa sổ nhận

con trỏ URGchecksum

FSRPAUheadlen

notused

Tugravey chọn (độ dagravei thay đổi)

URG dữ liệu khẩn cấp(thường khocircng dugraveng)

ACK ACK hợp lệ

PSH push data now(thường khocircng dugraveng)

RST SYN FINthiết lập kết nối

(caacutec lệnh thiết lậpchia nhỏ)

số byte becircn nhận sẵn sagraveng chấp nhận

đếm bởi số bytecủa dữ liệu

Internetchecksum

(giống UDP)

Transport Layer 3-57

Caacutec số thứ tự TCP vagrave ACKCaacutec số thứ tự

dograveng byte ldquođaacutenh sốrdquo byte đầu tiecircn trong dữ liệu của đoạn

caacutec ACK số thứ tự của byte

kế tiếp được chờ đợi từ phiacutea becircn kia

ACK tiacutech lũyHỏi lagravem thế nagraveo becircn

nhận quản lyacute caacutec đoạn khocircng thứ tự Trả lời TCP khocircng

đề cập tugravey thuộc người hiện thực

Host A Host B

Seq=42 ACK=79 data = lsquoCrsquo

Seq=79 ACK=43 data = lsquoCrsquo

Seq=43 ACK=80

UsernhậplsquoCrsquo

host ACKsnhận phản hồi

lsquoCrsquo

host ACKsbaacuteo nhận

lsquoCrsquo phản hồingược lại lsquoCrsquo

timetigravenh huống telnet đơn giản

Transport Layer 3-58

TCP Round Trip Time vagraveTimeout

Hỏi Lagravem thế nagraveo để thiết lập giaacute trị TCP timeout

dagravei hơn RTT khaacutec với RTT

quaacute ngắn timeout sớm truyền lại khocircng

cần thiết quaacute dagravei phản ứng

chậm đối với việc mất maacutet goacutei

Hỏi Lagravem thế nagraveo để thiết lập RTT

SampleRTT thời gian được đo từ khi truyền đoạn đến khi baacuteo nhận ACK lờ đi việc truyền lại

SampleRTT sẽ thay đổi muốn ước lượng RTT ldquomượt hơnrdquo tiacutenh trung bigravenh một số giaacute

trị đo được gần đoacute khocircng chỉ SampleRTT hiện tại

Transport Layer 3-59

TCP Round Trip Time vagrave Timeout

EstimatedRTT = (1- )EstimatedRTT + SampleRTT

giaacute trị đặc trưng = 0125

Transport Layer 3-60

Viacute dụ đaacutenh giaacute RTTRTT gaiacsumassedu to fantasiaeurecomfr

100

150

200

250

300

350

1 8 15 22 29 36 43 50 57 64 71 78 85 92 99 106

time (seconnds)

RTT

(mill

isec

onds

)

SampleRTT Estimated RTT

Transport Layer 3-61

TCP Round Trip Time vagrave Timeout

Thiết lập timeout EstimtedRTT cộng ldquohệ số dự trữ an toagravenrdquo

sự biến thiecircn lớn trong EstimatedRTT -gt hệ số dự trữ an toagraven lớn hơn ước lượng đầu tiecircn về sự biến thiecircn của SampleRTT từ EstimatedRTT

TimeoutInterval = EstimatedRTT + 4DevRTT

DevRTT = (1-)DevRTT + |SampleRTT-EstimatedRTT|

(tiecircu biểu = 025)

Sau đoacute thiết lập timeout interval

Transport Layer 3-62

TCP truyền dữ liệu tin cậy

TCP tạo dịch vụ rdt trecircn dịch vụ khocircng tin cậy IP

caacutec đoạn Pipelined caacutec ACK tiacutech lũy TCP dugraveng bộ định thigrave

truyền lại đơn

Truyền lại được kiacutech hoạt bởi caacutec sự kiện timeout caacutec ack trugraveng lặp

luacutec đầu khảo saacutet caacutec becircn gửi TCP đơn giản lờ đi caacutec ack trugraveng lặp lờ đi điều khiển luồng

điều khiển tắc nghẽn

Transport Layer 3-63

TCP caacutec sự kiệndữ liệu đatilde nhận từ ứng

dụng tạo đoạn với số thứ

tự của noacute số thứ tự lagrave số theo

byte dữ liệu đầu tiecircn khởi động bộ định thigrave

nếu chưa chạy khoảng thời gian hết

hạn TimeOutInterval

timeout gửi lại đoạn nagraveo gacircy

ra timeout khởi động lại bộ định

thigrave Ack đatilde nhận

cập nhật caacutei gigrave sẽ được ACK

khởi động bộ định thigrave nếu coacute caacutec đoạn cograven chờ

Transport Layer 3-64

TCP becircn gửi(đơn giản)

NextSeqNum = InitialSeqNum SendBase = InitialSeqNum

loop (forever) switch(event)

event data received from application above create TCP segment with sequence number NextSeqNum if (timer currently not running) start timer pass segment to IP NextSeqNum = NextSeqNum + length(data)

event timer timeout retransmit not-yet-acknowledged segment with smallest sequence number start timer

event ACK received with ACK field value of y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer

end of loop forever

Chuacute thiacutechbull SendBase-1 byte vừa được ACK tiacutech lũy Viacute dụbull SendBase-1 = 71y= 73 vigrave thế becircn nhận muốn 73+ y gt SendBase vigrave thế dữ liệu mới được chấp nhận

Transport Layer 3-65

TCP caacutec tigravenh huống truyền lại

Host A

Seq=100 20 bytes data

ACK=100

timetimeout sớm

Host B

Seq=92 8 bytes data

ACK=120

Seq=92 8 bytes data

Seq=

92

tim

eout

ACK=120

Host A

Seq=92 8 bytes data

ACK=100

loss

tim

eout

tigravenh huống mất ACK

Host B

X

Seq=92 8 bytes data

ACK=100

time

Seq=

92

tim

eout

SendBase= 100

SendBase= 120

SendBase= 120

Sendbase= 100

Transport Layer 3-66

TCP caacutec tigravenh huống truyền lại (tt)Host A

Seq=92 8 bytes data

ACK=100

loss

tim

eout

Cumulative ACK scenario

Host B

X

Seq=100 20 bytes data

ACK=120

time

SendBase= 120

Transport Layer 3-67

TCP sinh ra ACK [RFC 1122 RFC 2581]

Sự kiện tại becircn nhận

Đoạn đến với đuacuteng số thứ tự mong muốn Tất cả dữ liệu đếnđatilde được ACK

Đoạn đến với đuacuteng số thứ tự mong muốn Một đoạn khaacutec đangchờ ACK

Caacutec đoạn đến khocircng thứ tựlớn hơn số thứ tự đoạn mong muốnCoacute khoảng trống

Đoạn đếnlấp đầy từng phần hoặc toagraven bộkhoảng trống

TCP becircn nhận hagravenh động

ACK trễ Chờ đến 500mscho đoạn kế tiếp Nếu khocircng coacute đoạnkế tiếp gửi ACK

Gửi ngay một ACK tiacutech lũy chấp nhậncho cả caacutec đoạn theo thứ tự

Gửi ngay ACK trugraveng lặp chỉ thị số thứ tựđoạn của byte kế tiếp đang mong chờ

Gửi ngay ACK với điều kiện lagrave đoạnbắt đầu ngay điểm coacute khoảng trống

Transport Layer 3-68

Truyền lại nhanh

Chu kỳ Time-out thường tương đối dagravei độ trễ dagravei trước khi gửi

lại goacutei đatilde mất

Xaacutec nhận caacutec đoạn đatilde mất bằng caacutec ACK trugraveng lặp becircn gửi thường gửi

nhiều đoạn song song Nếu đoạn bị mất sẽ

xảy ra tigravenh trạng giống như nhiều ACK trugraveng nhau

Nếu becircn gửi nhận 3 ACK của cugraveng một dữ liệu noacute cho lagrave đoạn sau dữ liệu đatilde ACK bị mất Truyền lại nhanh gửi

lại đoạn trước khi bộ định thigrave hết hạn

Transport Layer 3-69

sự kiện ACK đatilde nhận với trường lagrave y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer else increment count of dup ACKs received for y if (count of dup ACKs received for y = 3) resend segment with sequence number y

Giải thuật truyền lại nhanh

một ACK trugraveng lặp cho đoạn đatilde được ACK

Truyền lại nhanh

Transport Layer 3-70

Chương 3 Nội dung trigravenh bagravey

31 Caacutec dịch vụ lớp Transport

32 Multiplexing vagrave demultiplexing

33 Vận chuyển khocircng kết nối UDP

34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy

35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối

36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn

37 Điều khiển tắc nghẽn TCP

Transport Layer 3-71

TCP điều khiển luồng

becircn nhận của kết nối TCP coacute một bộ đệm nhận

dịch vụ so trugraveng tốc độ so trugraveng tốc độ gửi với tốc độ nhận của ứng dụng

tiến trigravenh ứng dụng coacute thể chậm tại luacutec đọc bộ đệm

becircn gửi sẽ khocircng lagravem tragraven bộ đệm vigrave truyền quaacute nhiều vagrave

quaacute nhanh

điều khiển luồng

Transport Layer 3-72

TCP điều khiển luồng caacutech lagravem

(Giả sử becircn nhận TCP loại bỏ caacutec đoạn khocircng coacute thứ tự)

dự phograveng trong bộ đệm= RcvWindow

= RcvBuffer-[LastByteRcvd - LastByteRead]

Becircn nhận thocircng baacuteo khoảng dự trữ nhờ giaacute trị RcvWindow trong caacutec đoạn

Becircn gửi hạn chế dữ liệu khocircng được ACK vagraveo RcvWindow bảo đảm bộ đệm nhận

khocircng tragraven

Transport Layer 3-73

Chương 3 Nội dung trigravenh bagravey

31 Caacutec dịch vụ lớp Transport

32 Multiplexing vagrave demultiplexing

33 Vận chuyển khocircng kết nối UDP

34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy

35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối

36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn

37 Điều khiển tắc nghẽn TCP

Transport Layer 3-74

TCP quản lyacute kết nối

Chuacute yacute Becircn gửi vagrave becircn nhận TCP thiết lập ldquokết nốirdquo trước khi trao đổi dữ liệu

khởi tạo caacutec biến TCP caacutec số thứ tự đoạn thocircng tin caacutec bộ đệm điều

khiển luồng (như RcvWindow)

client người khởi xướng kết nối

Socket clientSocket = new Socket(hostnameport

number) server được tiếp xuacutec bởi

client Socket connectionSocket =

welcomeSocketaccept()

3 phương phaacutep bắt tay

Bước 1 client host gửi đoạnTCP SYN đến server xaacutec định số thứ tự khởi đầu khocircng phải dữ liệu

Bước 2 server host nhận SYN trả lời với đoạn SYNACK

server cấp phaacutet caacutec bộ đệm

xaacutec định số thứ tự khởi đầuBước 3 client nhận SYNACK trả

lời với đoạn ACK (coacute thể chứa dữ liệu)

Transport Layer 3-75

TCP quản lyacute kết nối (tt)

Đoacuteng một kết nối

client đoacuteng socket clientSocketclose()

Bước 1 client gửi đoạn điều khiển TCP FIN đến server

Bước 2 server nhận FIN trả lời với ACK Đoacuteng kết nối gửi FIN

client

FIN

server

ACK

ACK

FIN

đoacuteng

đoacuteng

đatilde đoacutengthời g

ian c

hờ

Transport Layer 3-76

TCP quản lyacute kết nối (tt)

Bước 3 client nhận FIN trả lời với ACK

Trong khoảng ldquothời gian chờrdquo ndash sẽ phản hồi với ACK để nhận caacutec FIN

Bước 4 server nhận ACK Kết nối đatilde đoacuteng

Chuacute yacute với một sửa đổi nhỏ coacute thể quản lyacute nhiều FIN đồng thời

client

FIN

server

ACK

ACK

FIN

đang đoacuteng

đang đoacuteng

đatilde đoacuteng

thời g

ian c

hờ

đatilde đoacuteng

Transport Layer 3-77

TCP quản lyacute kết nối (tt)

chu kỳ sống củaTCP client

chu kỳ sống củaTCP server

Transport Layer 3-78

Chương 3 Nội dung trigravenh bagravey

31 Caacutec dịch vụ lớp Transport

32 Multiplexing vagrave demultiplexing

33 Vận chuyển khocircng kết nối UDP

34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy

35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối

36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn

37 Điều khiển tắc nghẽn TCP

Transport Layer 3-79

Caacutec nguyecircn lyacute điều khiển tắc nghẽn

Tắc nghẽn ldquoquaacute nhiều nguồn gửi quaacute nhanh vagrave quaacute nhiều

dữ liệu đến mạngrdquo khaacutec với điều khiển luồng caacutec biểu hiện

caacutec goacutei bị mất (tragraven bộ đệm tại caacutec router) caacutec độ trễ quaacute dagravei (xếp hagraveng trong bộ đệm

của router) lagrave 1 trong 10 vấn đề nan giải nhất

Transport Layer 3-80

Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 1

2 gửi 2 nhận 1 router caacutec bộ

đệm khocircng giới hạn

khocircng coacute truyền lại

caacutec độ trễ lớn hơn khi tắc nghẽn

năng suất coacute thể đạt tối đa

unlimited shared output link buffers

Host Ain original data

Host B

out

Transport Layer 3-81

Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 2

1 router caacutec bộ đệm coacute giới hạn becircn gửi truyền lại caacutec goacutei đatilde mất

chia sẻ vocirc hạncaacutec bộ đệm ouput

Host A in dữ liệu gốc

Host B

out

in dữ liệu gốc cugraveng với dữ liệu truyền lại

Transport Layer 3-82

Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 2 luocircn luocircn

truyền lại ldquohoagraven toagravenrdquo chỉ khi mất maacutet

truyền lại vigrave trễ (khocircng mất) lagravem cho lớn hơn với cugraveng

in

out

=

in

out

gt

in

out

ldquocaacutec chi phiacuterdquo của tắc nghẽn nhiều việc (truyền lại) caacutec truyền lại khocircng cần thiết liecircn kết nhiều bản sao của

goacutei

R2

R2in

ou

t

b

R2

R2in

ou

t

a

R2

R2in

ou

t

c

R4

R3

Transport Layer 3-83

Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 3 4 người gửi caacutec đường qua nhiều hop timeouttruyền lại

in

Hỏi điều gigrave xảy ra nếu vagrave tăng lecircn

in

chia sẻ vocirc hạncaacutec bộ đệm ouput

Host Ain dữ liệu gốc

Host B

out

in dữ liệu gốc cugraveng với dữ liệu truyền lại

Transport Layer 3-84

Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 3

ldquochi phiacuterdquo khaacutec của tắc nghẽn khi caacutec goacutei bị bỏ bất kỳ ldquokhả năng truyền

upstream dugraveng cho goacutei đoacute sẽ bị latildeng phiacuterdquo

Host A

Host B

o

u

t

Transport Layer 3-85

Caacutec caacutech tiếp cận đối với điều khiển tắc nghẽn

điều khiển tắc nghẽn end-end

khocircng coacute phản hồi rotilde ragraveng từ mạng

tắc nghẽn được suy ra từ việc quan saacutet caacutec hệ thống đầu cuối coacute mất maacutet trễ

tiếp cận được quản lyacute bởi TCP

điều khiển tắc nghẽn coacute sự hỗ trợ của mạng

caacutec router cung cấp phản hồi về caacutec hệ thống đầu cuối 1 bit duy nhất chỉ thị

tắc nghẽn (SNA DECbit TCPIP ECN ATM)

tốc độ sẽ gửi được xaacutec định rotilde ragraveng

2 caacutech

Transport Layer 3-86

Viacute dụ điều khiển tắc nghẽn ATM ABR

ABR tốc độ bit sẵn sagraveng

ldquodịch vụ mềm dẻordquo nếu đường gửi ldquochưa

hếtrdquo becircn gửi sẽ dugraveng

băng thocircng sẵn sagraveng nếu đường gửi tắc

nghẽn becircn gửi điều tiết với

tốc độ tối thiểu

RM (resource management)

gửi bởi becircn gửi rải raacutec với caacutec ocirc dữ liệu

caacutec bit trong ocirc thiết lập bởi caacutec switch bit NI khocircng tăng tốc độ

(tắc nghẽn nhẹ) bit CI tắc nghẽn rotilde rệt

Caacutec ocirc RM được trả về becircn gửi từ becircn nhận với nguyecircn vẹn caacutec bit

Transport Layer 3-87

Viacute dụ điều khiển tắc nghẽn ATM ABR

trường 2-byte ER trong ocirc RM switch đatilde tắc nghẽn coacute thể coacute giaacute trị ER thấp hơn trong ocirc tốc độ gửi do đoacute coacute thể được hỗ trợ tối đa trecircn đường

EFCI bit trong caacutec ocirc dữ liệu được cagravei giaacute trị 1 trong switch đatilde tắc nghẽn nếu ocirc dữ liệu đứng trước ocirc RM coacute cagravei EFCI becircn gửi sẽ cagravei

bit CI trong ocirc RM trả về

Transport Layer 3-88

Chương 3 Nội dung trigravenh bagravey

31 Caacutec dịch vụ lớp Transport

32 Multiplexing vagrave demultiplexing

33 Vận chuyển khocircng kết nối UDP

34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy

35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối

36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn

37 Điều khiển tắc nghẽn TCP

Transport Layer 3-89

TCP điều khiển tắc nghẽn additive tăng lecircn multiplicative giảm xuống

8 Kbytes

16 Kbytes

24 Kbytes

time

congestionwindow

Caacutech tiếp cận tăng tốc độ truyền (kiacutech thước cửa sổ) tigravem khả năng băng thocircng coacute thể cho đến khi coacute mất maacutet xảy ra additive tăng lecircn tăng CongWin bởi 1 MSS

mỗi RTT cho đến khi coacute mất maacutet xảy ra multiplicative giảm xuống bỏ CongWin trong

nửa giai đoạn sau khi mất maacutet

timekiacutech

thư

ớc

cửa

sổ

tắc

nghẽ

n

Tigravem kiếm băng thocircng

Transport Layer 3-90

TCP điều khiển tắc nghẽn chi tiết

becircn gửi hạn chế việc truyền LastByteSent-LastByteAcked

CongWin Cocircng thức

CongWin thay đổi chức năng lagrave nhận biết tắc nghẽn trecircn mạng

Lagravem thế nagraveo becircn gửi nhận biết tắc nghẽn

mất maacutet xảy ra = timeout hoặc 3 ack trugraveng lặp

becircn gửi giảm tốc độ (CongWin) sau khi mất maacutet xảy ra

3 cơ chế AIMD khởi động chậm thận trọng sau khi coacute

caacutec sự kiện timeout

tốc độ = CongWin

RTT Bytess

Transport Layer 3-91

TCP khởi động chậm

Khi kết nối bắt đầu CongWin = 1 MSS Viacute dụ MSS = 500 bytes

amp RTT = 200 ms tốc độ khởi tạo = 20

kbps

băng thocircng sẵn sagraveng coacute thể gtgt MSSRTT mong muốn nhanh

choacuteng tăng tốc lecircn tốc độ coacute thể đaacutep ứng

Khi kết nối bắt đầu tăng tốc lecircn rất nhanh cho đến khi sự cố mất maacutet xảy ra đầu tiecircn

Transport Layer 3-92

TCP khởi động chậm (tt)

Khi kết nối bắt đầu tăng tốc lecircn rất nhanh cho đến khi sự cố mất maacutet xảy ra đầu tiecircn nhacircn đocirci CongWin mỗi

RTT hoagraven thagravenh nhờ tăng CongWin ứng với mỗi ACK đatilde nhận

Tổng kết tốc độ khởi đầu lagrave chậm nhưng sau đoacute tăng tốc rất nhanh

Host A

1 đoạn

RTT

Host B

thời gian

2 đoạn

4 đoạn

Transport Layer 3-93

Tinh chếHỏi Khi nagraveo việc tăng

tốc trở thagravenh tuyến tiacutenh

Trả lời Khi CongWin đạt đến 12 giaacute trị của noacute trước khi timeout

Hiện thực Ngưỡng thay đổi Tại thời điểm coacute sự cố

mất maacutet ngưỡng được cagravei giaacute trị bằng frac12 của CongWin ngay trước đoacute

Transport Layer 3-94

Tinh chế nhận biết mất maacutet

Sau 3 ACK trugraveng lặp CongWin sẽ giảm 12 kiacutech thước cửa sổ

tăng tuyến tiacutenh nhưng sau sự cố

timeout CongWin thay giaacute trị

bằng 1 MSS kiacutech thước cửa sổ

tăng cấp lũy thừa khi đến một ngưỡng

thigrave tăng tuyến tiacutenh

3 ACK trugraveng nhau chỉ ra khả năng truyền của mạng timeout chỉ thị ldquonhiều cảnh baacuteordquo về tigravenh huống tắc nghẽn

Nguyecircn lyacute

Transport Layer 3-95

Tổng kết TCP điều khiển tắc nghẽn

Khi CongWin dưới Threshold becircn gửi đang trong giai đoạn khởi động chậm kiacutech thước cửa sổ tăng nhanh theo cấp lũy thừa

Khi CongWin trecircn Threshold becircn gửi đang trong giai đoạn traacutenh tắc nghẽn kiacutech thước cửa sổ tăng nhanh theo cấp tuyến tiacutenh

Khi coacute 3 ACK trugraveng lặp xảy ra Threshold = CongWin2 vagrave CongWin = Threshold

Khi timeout xảy ra Threshold = CongWin2 vagrave CongWin = 1 MSS

Transport Layer 3-96

TCP điều khiển tắc nghẽn becircn gửi

Trạng thaacutei Sự kiện TCP becircn gửi hagravenh động Diễn giải

Slow Start (SS)-Khởi động chậm

ACK baacuteo nhận cho dữ liệu chưa ACK trước đoacute

CongWin = CongWin + MSS If (CongWin gt Threshold) cagravei đặt trạng thaacutei ldquoTraacutenh tắc nghẽnrdquo

Hậu quả lagravem tăng gấp đocirci CongWin mỗi RTT

CongestionAvoidance (CA) ndashTraacutenh tắc nghẽn

ACK baacuteo nhận cho dữ liệu chưa ACK trước đoacute

CongWin = CongWin+MSS (MSSCongWin)

Additive tăng lecircn lagravem tăng CongWin lecircn 1 MSS mỗi RTT

SS hoặc CA Sự cố mất maacutet xảy ra khi thấy coacute 3 ACK trugraveng lặp

Threshold = CongWin2 CongWin = Thresholdcagravei đặt trạng thaacutei ldquoTraacutenh tắc nghẽnrdquo

Khocirci phục nhanh hiện thực giảm xuống multiplicative CongWin sẽ khocircng giảm xuống dưới 1 MSS

SS hoặc CA Timeout Threshold = CongWin2 CongWin = 1 MSScagravei đặt trạng thaacutei ldquoKhởi động chậmrdquo

Vagraveo chế độ ldquoKhởi động chậmrdquo

SS hoặc CA ACK trugraveng lặp

Đếm ACK tăng lecircn cho đoạn vừa được ACK

CongWin vagrave Threshold khocircng thay đổi

Transport Layer 3-97

TCP throughput

Throughout trung bigravenh của TCP biểu diễn qua kiacutech thước của sổ vagrave RTT Bỏ qua trạng thaacutei ldquoKhởi động chậmrdquo

Cho W lagrave kiacutech thước cửa sổ khi coacute mất maacutet xảy ra

Khi kiacutech thước cửa sổ = W lưu lượng = WRTT

Chỉ ngay sau khi mất maacutet cửa sổ giảm xuống = W2 lưu lượng = W2RTT

throughout trung bigravenh 075 WRTT

Transport Layer 3-98

TCP tương lai

Viacute dụ caacutec đoạn dagravei 1500 byte RTT 100ms lưu lượng 10 Gbps

Kiacutech thước cửa sổ yecircu cầu W = 83333 đoạn trecircn đường truyền

Lưu lượng trong caacutec trường hợp mất maacutet

L = 210-10

Phiecircn bản mới của TCP dagravenh cho nhu cầu tốc độ cao

LRTT

MSS221

Transport Layer 3-99

Mục tiecircu nếu K phiecircn lagravem việc TCP chia sẻ kết nối cổ chai của băng thocircng lagrave R mỗi phiecircn coacute tốc độ trung bigravenh lagrave RK

TCP kết nối 1

router cổ chaikhả năng R

TCP kết nối 2

TCP tiacutenh cocircng bằng

Transport Layer 3-100

Tại sao phải TCP cocircng bằng

2 phiecircn lagravem việc cạnh tranh nhau Additive tăng lưu lượng tăng multiplicative giảm lưu lượng tương xứng

R

R

chia sẻ băng thocircng bằng nhau

Connection 1 throughputConnect

ion 2

th

roughput

traacutenh tắc nghẽn additive tăng lecircnmất maacutet giảm cửa sổ bằng 12

traacutenh tắc nghẽn additive tăng lecircnmất maacutet giảm cửa sổ bằng 12

Transport Layer 3-101

TCP tiacutenh cocircng bằng (tt)

Tiacutenh cocircng bằng amp UDP nhiều ứng dụng

thường khocircng dugraveng TCP khocircng muốn tốc độ bị

điều tiết do điều khiển tắc nghẽn

Thay bằng dugraveng UDP truyền audiovideo với

tốc độ ổn định chịu được mất maacutet

Nghiecircn cứu giao thức thacircn thiện với TCP

Tiacutenh cocircng bằng amp caacutec kết nối TCP song song

khocircng coacute gigrave ngăn cản việc ứng dụng mở caacutec kết nối song song giữa 2 host

Trigravenh duyệt Web lagravem giống như thế

Viacute dụ tốc độ R hỗ trợ 9 kết nối ứng dụng mới yecircu cầu 1

TCP coacute tốc độ R10 ứng dụng mới yecircu cầu 11

TCP coacute tốc độ R2

Transport Layer 3-102

Mocirc higravenh trễ

Hỏi Mất bao lacircu để nhận 1 đối tượng từ Web server sau khi gửi yecircu cầu

Bỏ qua tắc nghẽn trễ bị ảnh hưởng bởi

thiết lập kết nối TCP trễ truyền dữ liệu khởi động chậm

Notation caacutec giả định Giả sử một kết nối giữa

client vagrave server coacute tốc độ R

S MSS (bits) O kiacutech thước đối tượng

(bits) khocircng truyền lại (khocircng

mất maacutet khocircng hỏng)

Kiacutech thước cửa sổ Giả định 1 cửa sổ tắc

nghẽn cố định coacute W đoạn Sau đoacute cửa sổ thay đổi

mocirc higravenh khởi động chậm

Transport Layer 3-103

Cửa sổ tắc nghẽn cố định (1)

Trường hợp đầu tiecircnWSR gt RTT + SR cho

đoạn đầu tiecircn trong cửa sổ trả về trước khi cửa sổ dữ liệu gửi ACK

trễ = 2RTT + OR

Transport Layer 3-104

Cửa sổ tắc nghẽn cố định (2)

Trường hợp thứ hai WSR lt RTT + SR sent

chờ cho ACK sau khi gửi dữ liệu

trễ = 2RTT + OR+ (K-1)[SR + RTT - WSR]

Transport Layer 3-105

TCP Mocirc higravenh trễ Khởi động chậm (1)

Bacircy giờ giả sử kiacutech thước cửa sổ tăng lecircn tugravey theo quaacute trigravenh khởi động chậm

Độ trễ của một đối tượng sẽ lagrave

R

S

R

SRTTP

R

ORTTLatency P )12(2

trong đoacute P lagrave số lần TCP rảnh ở tại server

1min KQP

- trong đoacute Q lagrave số lần server rảnh nếu đối tượng đatilde khởi tạo kiacutech thước

- vagrave K lagrave số lượng cửa sổ bao trugravem đối tượng

Transport Layer 3-106

TCP Mocirc higravenh trễ Khởi động chậm (2)

RTT

initia te TCPconnection

requestobject

first w indow= S R

second w indow= 2S R

third w indow= 4S R

fourth w indow= 8S R

com pletetransm issionobject

delivered

tim e atc lient

tim e atserver

Viacute dụbull OS = 15 đoạnbull K = 4 cửa sổbull Q = 2bull P = minK-1Q = 2

Server rảnh P=2 lần

Caacutec thagravenh phần trễbull 2 RTT dagravenh cho thiết lập kết nối vagrave yecircu cầubull OR để truyền đối tượngbullthời gian server rảnh bởi vigrave khởi động chậm

Server rảnh P = minK-1Q lần

Transport Layer 3-107

TCP Mocirc higravenh trễ(3)

R

S

R

SRTTPRTT

R

O

R

SRTT

R

SRTT

R

O

idleTimeRTTR

O

P

kP

k

P

pp

)12(][2

]2[2

2delay

1

1

1

th window after the timeidle 2 1 kR

SRTT

R

S k

ementacknowledg receivesserver until

segment send tostartsserver when from time RTTR

S

window kth the transmit totime2 1

R

Sk

RTT

initia te TCPconnection

requestobject

first w indow= S R

second w indow= 2S R

third w indow= 4S R

fourth w indow= 8S R

com pletetransm issionobject

delivered

tim e atc lient

tim e atserver

Transport Layer 3-108

TCP Mocirc higravenh trễ (4)

)1(log

)1(logmin

12min

222min

222min

2

2

110

110

S

OS

Okk

S

Ok

SOk

OSSSkK

k

k

k

caacutech tiacutenh toaacuten Q tương tự (xem HW)

K = số lượng cửa sổ bao trugravem đối tượngLagravem thế nagraveo tiacutenh được K

Transport Layer 3-109

HTTP Mocirc higravenh Giả sử trang Web chứa

1 trang HTML (kiacutech thước O bits) M higravenh ảnh (mỗi caacutei kiacutech thướcO bits)

HTTP khocircng bền vững M+1 TCP kết nối Thời gian đaacutep ứng = (M+1)OR + (M+1)2RTT + tổng số thời

gian rảnh HTTP bền vững

2 RTT để yecircu cầu vagrave nhận file HTML 1 RTT để yecircu cầu vagrave nhận M higravenh ảnh Thời gian đaacutep ứng = (M+1)OR + 3RTT + tổng số thời gian

rảnh HTTP khocircng bền vững với X kết nối song song

Giả sử MX lagrave số nguyecircn 1 TCP kết nối cho file MX thiết lập caacutec kết nối song song cho caacutec higravenh ảnh Thời gian đaacutep ứng = (M+1)OR + (MX + 1)2RTT + tổng số

thời gian rảnh

Transport Layer 3-110

02468

101214161820

28Kbps

100Kbps

1Mbps

10Mbps

non-persistent

persistent

parallel non-persistent

HTTP thời gian đaacutep ứng (giacircy)RTT = 100 msec O = 5 Kbytes M=10 vagrave X=5

Với băng thocircng thấp thời gian kết nối amp đaacutep ứng trội hơn thời gian truyền

Caacutec kết nối bền vững chỉ cho sự cải thiện khocircng đaacuteng kể trecircn caacutec kết nối song song

Transport Layer 3-111

0

10

20

30

40

50

60

70

28Kbps

100Kbps

1Mbps

10Mbps

non-persistent

persistent

parallel non-persistent

HTTP thời gian đaacutep ứng (giacircy)

RTT =1 sec O = 5 Kbytes M=10 and X=5

Với RTT lớn hơn thời gian đaacutep ứng trội hơn thời gian trễ chờ thiết lập kết nốiTCP amp khởi động chậm Caacutec kết nối bền vững bacircy giờ cho thấy cải thiện rotilde rệt đặc biệtvới caacutec mạng băng thocircng cao

Transport Layer 3-112

Chương 3 Tổng kết caacutec nguyecircn lyacute của caacutec

dịch vụ lớp transport multiplexing

demultiplexing truyền dữ liệu tin cậy điều khiển luồng điều khiển tắc nghẽn

khởi tạo vagrave hiện thực trong Internet UDP TCP

Tiếp theo nghiecircn cứu xong

caacutec vấn đề ldquongoagravei biecircnrdquo (caacutec lớp application transport)

chuẩn bị vagraveo phần ldquolotildeirdquo của mạng

  • Slide 1
  • Chương 3 Lớp Transport
  • Chương 3 Nội dung trigravenh bagravey
  • Caacutec dịch vụ vagrave giao thức Transport
  • Lớp Transport với lớp network
  • Caacutec giao thức lớp transport trecircn Internet
  • Slide 7
  • Multiplexingdemultiplexing
  • Demultiplexing lagravem việc như thế nagraveo
  • Demultiplexing khocircng kết nối
  • Demultiplexing khocircng kết nối (tiếp)
  • Demultiplexing hướng kết nối
  • Demultiplexing hướng kết nối (tiếp)
  • Demultiplexing hướng kết nối Threaded Web Server
  • Slide 15
  • UDP User Datagram Protocol [RFC 768]
  • UDP (tt)
  • UDP checksum
  • Viacute dụ Checksum
  • Slide 20
  • Caacutec nguyecircn lyacute truyền dữ liệu tin cậy
  • Slide 22
  • Slide 23
  • Truyền dữ liệu tin cậy
  • Slide 25
  • Rdt10 truyền dữ liệu tin cậy trecircn 1 kecircnh truyền tin cậy
  • Rdt20 kecircnh với caacutec lỗi
  • rdt20 đặc tả FSM
  • rdt20 hoạt động khi khocircng lỗi
  • rdt20 hoạt động khi coacute lỗi
  • rdt20 coacute lỗ hổng nghiecircm trọng
  • rdt21 người gửi quản lyacute caacutec ACKNAK bị hỏng
  • Slide 33
  • rdt21 thảo luận
  • rdt22 một giao thức khocircng cần NAK
  • rdt22 gửi nhận caacutec mảnh
  • rdt30 caacutec kecircnh với lỗi vagrave mất maacutet
  • rdt30 gửi
  • hagravenh động của rdt30
  • Slide 40
  • Hiệu suất của rdt30
  • rdt30 hoạt động dừng-vagrave-chờ
  • Caacutec giao thức Pipelined
  • Pipelining độ khả dụng tăng
  • Go-Back-N
  • GBN becircn gửi mở rộng FSM
  • GBN becircn nhận mở rộng FSM
  • GBN hoạt động
  • Lặp coacute lựa chọn
  • Lặp coacute lựa chọn caacutec cửa sổ gửi nhận
  • Slide 51
  • Hoạt động của lặp coacute lựa chọn
  • Lặp coacute lựa chọn tigravenh trạng khoacute giải quyết
  • Slide 54
  • TCP Tổng quan RFCs 793 1122 1323 2018 2581
  • TCP cấu truacutec đoạn
  • Caacutec số thứ tự TCP vagrave ACK
  • TCP Round Trip Time vagraveTimeout
  • TCP Round Trip Time vagrave Timeout
  • Viacute dụ đaacutenh giaacute RTT
  • Slide 61
  • TCP truyền dữ liệu tin cậy
  • TCP caacutec sự kiện
  • TCP becircn gửi (đơn giản)
  • TCP caacutec tigravenh huống truyền lại
  • TCP caacutec tigravenh huống truyền lại (tt)
  • TCP sinh ra ACK [RFC 1122 RFC 2581]
  • Truyền lại nhanh
  • Giải thuật truyền lại nhanh
  • Slide 70
  • TCP điều khiển luồng
  • TCP điều khiển luồng caacutech lagravem
  • Slide 73
  • TCP quản lyacute kết nối
  • TCP quản lyacute kết nối (tt)
  • Slide 76
  • Slide 77
  • Slide 78
  • Caacutec nguyecircn lyacute điều khiển tắc nghẽn
  • Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 1
  • Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 2
  • Slide 82
  • Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 3
  • Slide 84
  • Caacutec caacutech tiếp cận đối với điều khiển tắc nghẽn
  • Viacute dụ điều khiển tắc nghẽn ATM ABR
  • Slide 87
  • Slide 88
  • TCP điều khiển tắc nghẽn additive tăng lecircn multiplicative giảm xuống
  • TCP điều khiển tắc nghẽn chi tiết
  • TCP khởi động chậm
  • TCP khởi động chậm (tt)
  • Tinh chế
  • Tinh chế nhận biết mất maacutet
  • Tổng kết TCP điều khiển tắc nghẽn
  • TCP điều khiển tắc nghẽn becircn gửi
  • TCP throughput
  • TCP tương lai
  • TCP tiacutenh cocircng bằng
  • Tại sao phải TCP cocircng bằng
  • TCP tiacutenh cocircng bằng (tt)
  • Mocirc higravenh trễ
  • Cửa sổ tắc nghẽn cố định (1)
  • Cửa sổ tắc nghẽn cố định (2)
  • TCP Mocirc higravenh trễ Khởi động chậm (1)
  • TCP Mocirc higravenh trễ Khởi động chậm (2)
  • TCP Mocirc higravenh trễ(3)
  • TCP Mocirc higravenh trễ (4)
  • HTTP Mocirc higravenh
  • Slide 110
  • Slide 111
  • Chương 3 Tổng kết

Transport Layer 3-41

Hiệu suất của rdt30

rdt30 lagravem việc được nhưng đaacutenh giaacute hiệu suất hơi rắc rối viacute dụ liecircn kết 1 Gbps trễ lan truyền giữa hai đầu cuối lagrave 15

ms goacutei 1KB

T truyền = 8kbpkt109 bsec

= 8 microsec

U sender độ khả dụng ndash

U sender

= 008

30008 = 000027

microseconds

L R

RTT + L R =

L (độ dagravei goacutei tiacutenh bằng bits)R (tốc độ truyền bps)

=

goacutei 1KB mỗi 30 msec -gt 33kBs trecircn đường truyền 1 Gbps giao thức network hạn chế việc dugraveng caacutec tagravei nguyecircn vật

lyacute

Transport Layer 3-42

rdt30 hoạt động dừng-vagrave-chờ

goacutei đầu tiecircn đatilde truyền t = 0

gửi nhận

RTT

goacutei cuối cugraveng đatilde truyền t = L R

goacutei đầu tiecircn đatilde đếngoacutei cuối cugraveng đatilde đến gửi ACK

ACK đến gửi goacutei kế tiếp t = RTT + L R

U sender

= 008

30008 = 000027

microseconds

L R

RTT + L R =

Transport Layer 3-43

Caacutec giao thức Pipelined

Pipelining người gửi cho pheacutep gửi nhiều goacutei đồng thời khocircng cần chờ baacuteo nhận được nhoacutem caacutec số thứ tự phải tăng dần phải coacute bộ nhớ đệm tại nơi gửi vagravehoặc nơi nhận

hai dạng phổ biến của caacutec giao thức pipelined go-Back-N Lặp coacute lựa chọn

Transport Layer 3-44

Pipelining độ khả dụng tăng

goacutei đầu tiecircn đatilde truyền t = 0

sender receiver

RTT

goacutei cuối cugraveng đatilde truyền t = L R

goacutei đầu tiecircn đatilde đếngoacutei cuối cugraveng đatilde đến gửi ACK

ACK đến gửi goacuteikế tiếp t = RTT + L R

bit cuối của goacutei thứ 2 đến gửi ACKbit cuối của goacutei thứ 3 đến gửi ACK

U sender

= 024

30008 = 00008

microseconds

3 L R

RTT + L R =

Độ khả dụng tăng lecircngấp 3 lần

Transport Layer 3-45

Go-Back-NBecircn gửi k-bit số thứ tự trong header của goacutei ldquocửa sổrdquo tăng lecircn đến N cho pheacutep gửi caacutec goacutei liecircn tục khocircng cần ACK

ACK(n) ACKs tất cả caacutec goacutei đến chứa số thứ tự n ndash ldquoACK tiacutech lũyrdquo coacute thể nhận caacutec ACK trugraveng lặp (xem becircn nhận)

định thigrave cho mỗi goacutei trecircn đường truyền timeout(n) gửi lại goacutei n vagrave tất cả caacutec goacutei coacute số thứ tự cao

hơn trong cửa sổ

Transport Layer 3-46

GBN becircn gửi mở rộng FSM

chờ start_timerudt_send(sndpkt[base])udt_send(sndpkt[base+1])hellipudt_send(sndpkt[nextseqnum-1])

timeout

rdt_send(data)

if (nextseqnum lt base+N) sndpkt[nextseqnum] = make_pkt(nextseqnumdatachksum) udt_send(sndpkt[nextseqnum]) if (base == nextseqnum) start_timer nextseqnum++ else refuse_data(data)

base = getacknum(rcvpkt)+1If (base == nextseqnum) stop_timer else start_timer

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)

base=1nextseqnum=1

rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)

Transport Layer 3-47

GBN becircn nhận mở rộng FSM

ACK-duy nhất luocircn luocircn gửi ACK cho goacutei đatilde nhận đuacuteng với số thứ tự xếp hạng cao nhất coacute thể sinh ra caacutec ACK trugraveng nhau chỉ cần nhớ expectedseqnum

goacutei khocircng theo thứ tự hủy -gt khocircng nhận vagraveo bộ đệm gửi lại ACK với số thứ tự xếp hạng cao nhất

chờ

udt_send(sndpkt)

default

rdt_rcv(rcvpkt) ampamp notcurrupt(rcvpkt) ampamp hasseqnum(rcvpktexpectedseqnum)

extract(rcvpktdata)deliver_data(data)sndpkt = make_pkt(expectedseqnumACKchksum)udt_send(sndpkt)expectedseqnum++

expectedseqnum=1sndpkt = make_pkt(expectedseqnumACKchksum)

Transport Layer 3-48

GBN hoạt động

Transport Layer 3-49

Lặp coacute lựa chọn

becircn nhận thocircng baacuteo đatilde nhận đuacuteng tất cả từng goacutei một đệm (buffer) caacutec goacutei nếu cần thiết

becircn gửi chỉ gửi lại caacutec goacutei nagraveo khocircng nhận được ACK becircn gửi định thigrave đối với mỗi goacutei khocircng gửi ACK

cửa sổ becircn gửi N số thứ tự liecircn tục hạn chế số thứ tự caacutec goacutei khocircng gửi ACK

Transport Layer 3-50

Lặp coacute lựa chọn caacutec cửa sổ gửi nhận

Transport Layer 3-51

Lặp coacute lựa chọn

dữ liệu từ lớp trecircn nếu số thứ tự kế tiếp sẵn

sagraveng trong cửa sổ gửi goacutei

timeout(n) gửi lại goacutei n taacutei khởi tạo

bộ định thigrave

ACK(n) trong [sendbasesendbase+N]

đaacutenh dấu goacutei n lagrave đatilde nhận nếu goacutei khocircng ACK coacute n

nhỏ nhất dịch chuyển cửa sổ base đến số thứ tự khocircng ACK kế tiếp

Gửigoacutei n trong [rcvbase

rcvbase+N-1]

gửi ACK(n) khocircng thứ tự đệm

(buffer) coacute thứ tự truyền (cũng

truyền caacutec goacutei đatilde đệm coacute thứ tự) dịch chuyển cửa sổ đến goacutei chưa nhận kế tiếp

goacutei n trong [rcvbase-Nrcvbase-1]

ACK(n)

ngược lại lờ đi

Nhận

Transport Layer 3-52

Hoạt động của lặp coacute lựa chọn

Transport Layer 3-53

Lặp coacute lựa chọntigravenh trạng khoacute giải quyếtViacute dụ Số thứ tự 0 1 2 3 Kiacutech thước cửa sổ = 3

becircn nhận khocircng thấy sự khaacutec nhau trong 2 tigravenh huống

chuyển khocircng chiacutenh xaacutec dữ liệu trugraveng lặp như dữ liệu mới trong (a)

Hỏi quan hệ giữa datildey số thứ tự vagrave kiacutech thước cửa sổ

Transport Layer 3-54

Chương 3 Nội dung trigravenh bagravey

31 Caacutec dịch vụ lớp Transport

32 Multiplexing vagrave demultiplexing

33 Vận chuyển khocircng kết nối UDP

34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy

35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối

36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn

37 Điều khiển tắc nghẽn TCP

Transport Layer 3-55

TCP Tổng quan RFCs 793 1122 1323 2018 2581

dữ liệu full duplex luồng dữ liệu đi 2 chiều

trong cugraveng một kết nối MSS maximum

segment size ndash kiacutech thước đoạn tối đa

hướng kết nối bắt tay (trao đổi caacutec

thocircng điệp điều khiển) trạng thaacutei becircn gửi becircn nhận trước khi trao đổi dữ liệu

điều khiển luồng becircn gửi sẽ khocircng lấn aacutet

becircn nhận

point-to-point một becircn gửi một becircn

nhận tin cậy dograveng byte coacute

thứ tự khocircng ldquoranh giới thocircng

điệprdquo kecircnh liecircn lạc

TCP điều khiển luồng vagrave tắc nghẽn thiết lập kiacutech thước cửa sổ

caacutec bộ đệm gửi amp nhận

socketdoor

T C Psend buffer

T C Preceive buffer

socketdoor

segm ent

applicationwrites data

applicationreads data

Transport Layer 3-56

TCP cấu truacutec đoạn

port nguồn port điacutech

32 bits

dữ liệu ứng dụng(độ dagravei thay đổi)

số thứ tự

số ACKcửa sổ nhận

con trỏ URGchecksum

FSRPAUheadlen

notused

Tugravey chọn (độ dagravei thay đổi)

URG dữ liệu khẩn cấp(thường khocircng dugraveng)

ACK ACK hợp lệ

PSH push data now(thường khocircng dugraveng)

RST SYN FINthiết lập kết nối

(caacutec lệnh thiết lậpchia nhỏ)

số byte becircn nhận sẵn sagraveng chấp nhận

đếm bởi số bytecủa dữ liệu

Internetchecksum

(giống UDP)

Transport Layer 3-57

Caacutec số thứ tự TCP vagrave ACKCaacutec số thứ tự

dograveng byte ldquođaacutenh sốrdquo byte đầu tiecircn trong dữ liệu của đoạn

caacutec ACK số thứ tự của byte

kế tiếp được chờ đợi từ phiacutea becircn kia

ACK tiacutech lũyHỏi lagravem thế nagraveo becircn

nhận quản lyacute caacutec đoạn khocircng thứ tự Trả lời TCP khocircng

đề cập tugravey thuộc người hiện thực

Host A Host B

Seq=42 ACK=79 data = lsquoCrsquo

Seq=79 ACK=43 data = lsquoCrsquo

Seq=43 ACK=80

UsernhậplsquoCrsquo

host ACKsnhận phản hồi

lsquoCrsquo

host ACKsbaacuteo nhận

lsquoCrsquo phản hồingược lại lsquoCrsquo

timetigravenh huống telnet đơn giản

Transport Layer 3-58

TCP Round Trip Time vagraveTimeout

Hỏi Lagravem thế nagraveo để thiết lập giaacute trị TCP timeout

dagravei hơn RTT khaacutec với RTT

quaacute ngắn timeout sớm truyền lại khocircng

cần thiết quaacute dagravei phản ứng

chậm đối với việc mất maacutet goacutei

Hỏi Lagravem thế nagraveo để thiết lập RTT

SampleRTT thời gian được đo từ khi truyền đoạn đến khi baacuteo nhận ACK lờ đi việc truyền lại

SampleRTT sẽ thay đổi muốn ước lượng RTT ldquomượt hơnrdquo tiacutenh trung bigravenh một số giaacute

trị đo được gần đoacute khocircng chỉ SampleRTT hiện tại

Transport Layer 3-59

TCP Round Trip Time vagrave Timeout

EstimatedRTT = (1- )EstimatedRTT + SampleRTT

giaacute trị đặc trưng = 0125

Transport Layer 3-60

Viacute dụ đaacutenh giaacute RTTRTT gaiacsumassedu to fantasiaeurecomfr

100

150

200

250

300

350

1 8 15 22 29 36 43 50 57 64 71 78 85 92 99 106

time (seconnds)

RTT

(mill

isec

onds

)

SampleRTT Estimated RTT

Transport Layer 3-61

TCP Round Trip Time vagrave Timeout

Thiết lập timeout EstimtedRTT cộng ldquohệ số dự trữ an toagravenrdquo

sự biến thiecircn lớn trong EstimatedRTT -gt hệ số dự trữ an toagraven lớn hơn ước lượng đầu tiecircn về sự biến thiecircn của SampleRTT từ EstimatedRTT

TimeoutInterval = EstimatedRTT + 4DevRTT

DevRTT = (1-)DevRTT + |SampleRTT-EstimatedRTT|

(tiecircu biểu = 025)

Sau đoacute thiết lập timeout interval

Transport Layer 3-62

TCP truyền dữ liệu tin cậy

TCP tạo dịch vụ rdt trecircn dịch vụ khocircng tin cậy IP

caacutec đoạn Pipelined caacutec ACK tiacutech lũy TCP dugraveng bộ định thigrave

truyền lại đơn

Truyền lại được kiacutech hoạt bởi caacutec sự kiện timeout caacutec ack trugraveng lặp

luacutec đầu khảo saacutet caacutec becircn gửi TCP đơn giản lờ đi caacutec ack trugraveng lặp lờ đi điều khiển luồng

điều khiển tắc nghẽn

Transport Layer 3-63

TCP caacutec sự kiệndữ liệu đatilde nhận từ ứng

dụng tạo đoạn với số thứ

tự của noacute số thứ tự lagrave số theo

byte dữ liệu đầu tiecircn khởi động bộ định thigrave

nếu chưa chạy khoảng thời gian hết

hạn TimeOutInterval

timeout gửi lại đoạn nagraveo gacircy

ra timeout khởi động lại bộ định

thigrave Ack đatilde nhận

cập nhật caacutei gigrave sẽ được ACK

khởi động bộ định thigrave nếu coacute caacutec đoạn cograven chờ

Transport Layer 3-64

TCP becircn gửi(đơn giản)

NextSeqNum = InitialSeqNum SendBase = InitialSeqNum

loop (forever) switch(event)

event data received from application above create TCP segment with sequence number NextSeqNum if (timer currently not running) start timer pass segment to IP NextSeqNum = NextSeqNum + length(data)

event timer timeout retransmit not-yet-acknowledged segment with smallest sequence number start timer

event ACK received with ACK field value of y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer

end of loop forever

Chuacute thiacutechbull SendBase-1 byte vừa được ACK tiacutech lũy Viacute dụbull SendBase-1 = 71y= 73 vigrave thế becircn nhận muốn 73+ y gt SendBase vigrave thế dữ liệu mới được chấp nhận

Transport Layer 3-65

TCP caacutec tigravenh huống truyền lại

Host A

Seq=100 20 bytes data

ACK=100

timetimeout sớm

Host B

Seq=92 8 bytes data

ACK=120

Seq=92 8 bytes data

Seq=

92

tim

eout

ACK=120

Host A

Seq=92 8 bytes data

ACK=100

loss

tim

eout

tigravenh huống mất ACK

Host B

X

Seq=92 8 bytes data

ACK=100

time

Seq=

92

tim

eout

SendBase= 100

SendBase= 120

SendBase= 120

Sendbase= 100

Transport Layer 3-66

TCP caacutec tigravenh huống truyền lại (tt)Host A

Seq=92 8 bytes data

ACK=100

loss

tim

eout

Cumulative ACK scenario

Host B

X

Seq=100 20 bytes data

ACK=120

time

SendBase= 120

Transport Layer 3-67

TCP sinh ra ACK [RFC 1122 RFC 2581]

Sự kiện tại becircn nhận

Đoạn đến với đuacuteng số thứ tự mong muốn Tất cả dữ liệu đếnđatilde được ACK

Đoạn đến với đuacuteng số thứ tự mong muốn Một đoạn khaacutec đangchờ ACK

Caacutec đoạn đến khocircng thứ tựlớn hơn số thứ tự đoạn mong muốnCoacute khoảng trống

Đoạn đếnlấp đầy từng phần hoặc toagraven bộkhoảng trống

TCP becircn nhận hagravenh động

ACK trễ Chờ đến 500mscho đoạn kế tiếp Nếu khocircng coacute đoạnkế tiếp gửi ACK

Gửi ngay một ACK tiacutech lũy chấp nhậncho cả caacutec đoạn theo thứ tự

Gửi ngay ACK trugraveng lặp chỉ thị số thứ tựđoạn của byte kế tiếp đang mong chờ

Gửi ngay ACK với điều kiện lagrave đoạnbắt đầu ngay điểm coacute khoảng trống

Transport Layer 3-68

Truyền lại nhanh

Chu kỳ Time-out thường tương đối dagravei độ trễ dagravei trước khi gửi

lại goacutei đatilde mất

Xaacutec nhận caacutec đoạn đatilde mất bằng caacutec ACK trugraveng lặp becircn gửi thường gửi

nhiều đoạn song song Nếu đoạn bị mất sẽ

xảy ra tigravenh trạng giống như nhiều ACK trugraveng nhau

Nếu becircn gửi nhận 3 ACK của cugraveng một dữ liệu noacute cho lagrave đoạn sau dữ liệu đatilde ACK bị mất Truyền lại nhanh gửi

lại đoạn trước khi bộ định thigrave hết hạn

Transport Layer 3-69

sự kiện ACK đatilde nhận với trường lagrave y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer else increment count of dup ACKs received for y if (count of dup ACKs received for y = 3) resend segment with sequence number y

Giải thuật truyền lại nhanh

một ACK trugraveng lặp cho đoạn đatilde được ACK

Truyền lại nhanh

Transport Layer 3-70

Chương 3 Nội dung trigravenh bagravey

31 Caacutec dịch vụ lớp Transport

32 Multiplexing vagrave demultiplexing

33 Vận chuyển khocircng kết nối UDP

34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy

35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối

36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn

37 Điều khiển tắc nghẽn TCP

Transport Layer 3-71

TCP điều khiển luồng

becircn nhận của kết nối TCP coacute một bộ đệm nhận

dịch vụ so trugraveng tốc độ so trugraveng tốc độ gửi với tốc độ nhận của ứng dụng

tiến trigravenh ứng dụng coacute thể chậm tại luacutec đọc bộ đệm

becircn gửi sẽ khocircng lagravem tragraven bộ đệm vigrave truyền quaacute nhiều vagrave

quaacute nhanh

điều khiển luồng

Transport Layer 3-72

TCP điều khiển luồng caacutech lagravem

(Giả sử becircn nhận TCP loại bỏ caacutec đoạn khocircng coacute thứ tự)

dự phograveng trong bộ đệm= RcvWindow

= RcvBuffer-[LastByteRcvd - LastByteRead]

Becircn nhận thocircng baacuteo khoảng dự trữ nhờ giaacute trị RcvWindow trong caacutec đoạn

Becircn gửi hạn chế dữ liệu khocircng được ACK vagraveo RcvWindow bảo đảm bộ đệm nhận

khocircng tragraven

Transport Layer 3-73

Chương 3 Nội dung trigravenh bagravey

31 Caacutec dịch vụ lớp Transport

32 Multiplexing vagrave demultiplexing

33 Vận chuyển khocircng kết nối UDP

34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy

35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối

36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn

37 Điều khiển tắc nghẽn TCP

Transport Layer 3-74

TCP quản lyacute kết nối

Chuacute yacute Becircn gửi vagrave becircn nhận TCP thiết lập ldquokết nốirdquo trước khi trao đổi dữ liệu

khởi tạo caacutec biến TCP caacutec số thứ tự đoạn thocircng tin caacutec bộ đệm điều

khiển luồng (như RcvWindow)

client người khởi xướng kết nối

Socket clientSocket = new Socket(hostnameport

number) server được tiếp xuacutec bởi

client Socket connectionSocket =

welcomeSocketaccept()

3 phương phaacutep bắt tay

Bước 1 client host gửi đoạnTCP SYN đến server xaacutec định số thứ tự khởi đầu khocircng phải dữ liệu

Bước 2 server host nhận SYN trả lời với đoạn SYNACK

server cấp phaacutet caacutec bộ đệm

xaacutec định số thứ tự khởi đầuBước 3 client nhận SYNACK trả

lời với đoạn ACK (coacute thể chứa dữ liệu)

Transport Layer 3-75

TCP quản lyacute kết nối (tt)

Đoacuteng một kết nối

client đoacuteng socket clientSocketclose()

Bước 1 client gửi đoạn điều khiển TCP FIN đến server

Bước 2 server nhận FIN trả lời với ACK Đoacuteng kết nối gửi FIN

client

FIN

server

ACK

ACK

FIN

đoacuteng

đoacuteng

đatilde đoacutengthời g

ian c

hờ

Transport Layer 3-76

TCP quản lyacute kết nối (tt)

Bước 3 client nhận FIN trả lời với ACK

Trong khoảng ldquothời gian chờrdquo ndash sẽ phản hồi với ACK để nhận caacutec FIN

Bước 4 server nhận ACK Kết nối đatilde đoacuteng

Chuacute yacute với một sửa đổi nhỏ coacute thể quản lyacute nhiều FIN đồng thời

client

FIN

server

ACK

ACK

FIN

đang đoacuteng

đang đoacuteng

đatilde đoacuteng

thời g

ian c

hờ

đatilde đoacuteng

Transport Layer 3-77

TCP quản lyacute kết nối (tt)

chu kỳ sống củaTCP client

chu kỳ sống củaTCP server

Transport Layer 3-78

Chương 3 Nội dung trigravenh bagravey

31 Caacutec dịch vụ lớp Transport

32 Multiplexing vagrave demultiplexing

33 Vận chuyển khocircng kết nối UDP

34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy

35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối

36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn

37 Điều khiển tắc nghẽn TCP

Transport Layer 3-79

Caacutec nguyecircn lyacute điều khiển tắc nghẽn

Tắc nghẽn ldquoquaacute nhiều nguồn gửi quaacute nhanh vagrave quaacute nhiều

dữ liệu đến mạngrdquo khaacutec với điều khiển luồng caacutec biểu hiện

caacutec goacutei bị mất (tragraven bộ đệm tại caacutec router) caacutec độ trễ quaacute dagravei (xếp hagraveng trong bộ đệm

của router) lagrave 1 trong 10 vấn đề nan giải nhất

Transport Layer 3-80

Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 1

2 gửi 2 nhận 1 router caacutec bộ

đệm khocircng giới hạn

khocircng coacute truyền lại

caacutec độ trễ lớn hơn khi tắc nghẽn

năng suất coacute thể đạt tối đa

unlimited shared output link buffers

Host Ain original data

Host B

out

Transport Layer 3-81

Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 2

1 router caacutec bộ đệm coacute giới hạn becircn gửi truyền lại caacutec goacutei đatilde mất

chia sẻ vocirc hạncaacutec bộ đệm ouput

Host A in dữ liệu gốc

Host B

out

in dữ liệu gốc cugraveng với dữ liệu truyền lại

Transport Layer 3-82

Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 2 luocircn luocircn

truyền lại ldquohoagraven toagravenrdquo chỉ khi mất maacutet

truyền lại vigrave trễ (khocircng mất) lagravem cho lớn hơn với cugraveng

in

out

=

in

out

gt

in

out

ldquocaacutec chi phiacuterdquo của tắc nghẽn nhiều việc (truyền lại) caacutec truyền lại khocircng cần thiết liecircn kết nhiều bản sao của

goacutei

R2

R2in

ou

t

b

R2

R2in

ou

t

a

R2

R2in

ou

t

c

R4

R3

Transport Layer 3-83

Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 3 4 người gửi caacutec đường qua nhiều hop timeouttruyền lại

in

Hỏi điều gigrave xảy ra nếu vagrave tăng lecircn

in

chia sẻ vocirc hạncaacutec bộ đệm ouput

Host Ain dữ liệu gốc

Host B

out

in dữ liệu gốc cugraveng với dữ liệu truyền lại

Transport Layer 3-84

Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 3

ldquochi phiacuterdquo khaacutec của tắc nghẽn khi caacutec goacutei bị bỏ bất kỳ ldquokhả năng truyền

upstream dugraveng cho goacutei đoacute sẽ bị latildeng phiacuterdquo

Host A

Host B

o

u

t

Transport Layer 3-85

Caacutec caacutech tiếp cận đối với điều khiển tắc nghẽn

điều khiển tắc nghẽn end-end

khocircng coacute phản hồi rotilde ragraveng từ mạng

tắc nghẽn được suy ra từ việc quan saacutet caacutec hệ thống đầu cuối coacute mất maacutet trễ

tiếp cận được quản lyacute bởi TCP

điều khiển tắc nghẽn coacute sự hỗ trợ của mạng

caacutec router cung cấp phản hồi về caacutec hệ thống đầu cuối 1 bit duy nhất chỉ thị

tắc nghẽn (SNA DECbit TCPIP ECN ATM)

tốc độ sẽ gửi được xaacutec định rotilde ragraveng

2 caacutech

Transport Layer 3-86

Viacute dụ điều khiển tắc nghẽn ATM ABR

ABR tốc độ bit sẵn sagraveng

ldquodịch vụ mềm dẻordquo nếu đường gửi ldquochưa

hếtrdquo becircn gửi sẽ dugraveng

băng thocircng sẵn sagraveng nếu đường gửi tắc

nghẽn becircn gửi điều tiết với

tốc độ tối thiểu

RM (resource management)

gửi bởi becircn gửi rải raacutec với caacutec ocirc dữ liệu

caacutec bit trong ocirc thiết lập bởi caacutec switch bit NI khocircng tăng tốc độ

(tắc nghẽn nhẹ) bit CI tắc nghẽn rotilde rệt

Caacutec ocirc RM được trả về becircn gửi từ becircn nhận với nguyecircn vẹn caacutec bit

Transport Layer 3-87

Viacute dụ điều khiển tắc nghẽn ATM ABR

trường 2-byte ER trong ocirc RM switch đatilde tắc nghẽn coacute thể coacute giaacute trị ER thấp hơn trong ocirc tốc độ gửi do đoacute coacute thể được hỗ trợ tối đa trecircn đường

EFCI bit trong caacutec ocirc dữ liệu được cagravei giaacute trị 1 trong switch đatilde tắc nghẽn nếu ocirc dữ liệu đứng trước ocirc RM coacute cagravei EFCI becircn gửi sẽ cagravei

bit CI trong ocirc RM trả về

Transport Layer 3-88

Chương 3 Nội dung trigravenh bagravey

31 Caacutec dịch vụ lớp Transport

32 Multiplexing vagrave demultiplexing

33 Vận chuyển khocircng kết nối UDP

34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy

35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối

36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn

37 Điều khiển tắc nghẽn TCP

Transport Layer 3-89

TCP điều khiển tắc nghẽn additive tăng lecircn multiplicative giảm xuống

8 Kbytes

16 Kbytes

24 Kbytes

time

congestionwindow

Caacutech tiếp cận tăng tốc độ truyền (kiacutech thước cửa sổ) tigravem khả năng băng thocircng coacute thể cho đến khi coacute mất maacutet xảy ra additive tăng lecircn tăng CongWin bởi 1 MSS

mỗi RTT cho đến khi coacute mất maacutet xảy ra multiplicative giảm xuống bỏ CongWin trong

nửa giai đoạn sau khi mất maacutet

timekiacutech

thư

ớc

cửa

sổ

tắc

nghẽ

n

Tigravem kiếm băng thocircng

Transport Layer 3-90

TCP điều khiển tắc nghẽn chi tiết

becircn gửi hạn chế việc truyền LastByteSent-LastByteAcked

CongWin Cocircng thức

CongWin thay đổi chức năng lagrave nhận biết tắc nghẽn trecircn mạng

Lagravem thế nagraveo becircn gửi nhận biết tắc nghẽn

mất maacutet xảy ra = timeout hoặc 3 ack trugraveng lặp

becircn gửi giảm tốc độ (CongWin) sau khi mất maacutet xảy ra

3 cơ chế AIMD khởi động chậm thận trọng sau khi coacute

caacutec sự kiện timeout

tốc độ = CongWin

RTT Bytess

Transport Layer 3-91

TCP khởi động chậm

Khi kết nối bắt đầu CongWin = 1 MSS Viacute dụ MSS = 500 bytes

amp RTT = 200 ms tốc độ khởi tạo = 20

kbps

băng thocircng sẵn sagraveng coacute thể gtgt MSSRTT mong muốn nhanh

choacuteng tăng tốc lecircn tốc độ coacute thể đaacutep ứng

Khi kết nối bắt đầu tăng tốc lecircn rất nhanh cho đến khi sự cố mất maacutet xảy ra đầu tiecircn

Transport Layer 3-92

TCP khởi động chậm (tt)

Khi kết nối bắt đầu tăng tốc lecircn rất nhanh cho đến khi sự cố mất maacutet xảy ra đầu tiecircn nhacircn đocirci CongWin mỗi

RTT hoagraven thagravenh nhờ tăng CongWin ứng với mỗi ACK đatilde nhận

Tổng kết tốc độ khởi đầu lagrave chậm nhưng sau đoacute tăng tốc rất nhanh

Host A

1 đoạn

RTT

Host B

thời gian

2 đoạn

4 đoạn

Transport Layer 3-93

Tinh chếHỏi Khi nagraveo việc tăng

tốc trở thagravenh tuyến tiacutenh

Trả lời Khi CongWin đạt đến 12 giaacute trị của noacute trước khi timeout

Hiện thực Ngưỡng thay đổi Tại thời điểm coacute sự cố

mất maacutet ngưỡng được cagravei giaacute trị bằng frac12 của CongWin ngay trước đoacute

Transport Layer 3-94

Tinh chế nhận biết mất maacutet

Sau 3 ACK trugraveng lặp CongWin sẽ giảm 12 kiacutech thước cửa sổ

tăng tuyến tiacutenh nhưng sau sự cố

timeout CongWin thay giaacute trị

bằng 1 MSS kiacutech thước cửa sổ

tăng cấp lũy thừa khi đến một ngưỡng

thigrave tăng tuyến tiacutenh

3 ACK trugraveng nhau chỉ ra khả năng truyền của mạng timeout chỉ thị ldquonhiều cảnh baacuteordquo về tigravenh huống tắc nghẽn

Nguyecircn lyacute

Transport Layer 3-95

Tổng kết TCP điều khiển tắc nghẽn

Khi CongWin dưới Threshold becircn gửi đang trong giai đoạn khởi động chậm kiacutech thước cửa sổ tăng nhanh theo cấp lũy thừa

Khi CongWin trecircn Threshold becircn gửi đang trong giai đoạn traacutenh tắc nghẽn kiacutech thước cửa sổ tăng nhanh theo cấp tuyến tiacutenh

Khi coacute 3 ACK trugraveng lặp xảy ra Threshold = CongWin2 vagrave CongWin = Threshold

Khi timeout xảy ra Threshold = CongWin2 vagrave CongWin = 1 MSS

Transport Layer 3-96

TCP điều khiển tắc nghẽn becircn gửi

Trạng thaacutei Sự kiện TCP becircn gửi hagravenh động Diễn giải

Slow Start (SS)-Khởi động chậm

ACK baacuteo nhận cho dữ liệu chưa ACK trước đoacute

CongWin = CongWin + MSS If (CongWin gt Threshold) cagravei đặt trạng thaacutei ldquoTraacutenh tắc nghẽnrdquo

Hậu quả lagravem tăng gấp đocirci CongWin mỗi RTT

CongestionAvoidance (CA) ndashTraacutenh tắc nghẽn

ACK baacuteo nhận cho dữ liệu chưa ACK trước đoacute

CongWin = CongWin+MSS (MSSCongWin)

Additive tăng lecircn lagravem tăng CongWin lecircn 1 MSS mỗi RTT

SS hoặc CA Sự cố mất maacutet xảy ra khi thấy coacute 3 ACK trugraveng lặp

Threshold = CongWin2 CongWin = Thresholdcagravei đặt trạng thaacutei ldquoTraacutenh tắc nghẽnrdquo

Khocirci phục nhanh hiện thực giảm xuống multiplicative CongWin sẽ khocircng giảm xuống dưới 1 MSS

SS hoặc CA Timeout Threshold = CongWin2 CongWin = 1 MSScagravei đặt trạng thaacutei ldquoKhởi động chậmrdquo

Vagraveo chế độ ldquoKhởi động chậmrdquo

SS hoặc CA ACK trugraveng lặp

Đếm ACK tăng lecircn cho đoạn vừa được ACK

CongWin vagrave Threshold khocircng thay đổi

Transport Layer 3-97

TCP throughput

Throughout trung bigravenh của TCP biểu diễn qua kiacutech thước của sổ vagrave RTT Bỏ qua trạng thaacutei ldquoKhởi động chậmrdquo

Cho W lagrave kiacutech thước cửa sổ khi coacute mất maacutet xảy ra

Khi kiacutech thước cửa sổ = W lưu lượng = WRTT

Chỉ ngay sau khi mất maacutet cửa sổ giảm xuống = W2 lưu lượng = W2RTT

throughout trung bigravenh 075 WRTT

Transport Layer 3-98

TCP tương lai

Viacute dụ caacutec đoạn dagravei 1500 byte RTT 100ms lưu lượng 10 Gbps

Kiacutech thước cửa sổ yecircu cầu W = 83333 đoạn trecircn đường truyền

Lưu lượng trong caacutec trường hợp mất maacutet

L = 210-10

Phiecircn bản mới của TCP dagravenh cho nhu cầu tốc độ cao

LRTT

MSS221

Transport Layer 3-99

Mục tiecircu nếu K phiecircn lagravem việc TCP chia sẻ kết nối cổ chai của băng thocircng lagrave R mỗi phiecircn coacute tốc độ trung bigravenh lagrave RK

TCP kết nối 1

router cổ chaikhả năng R

TCP kết nối 2

TCP tiacutenh cocircng bằng

Transport Layer 3-100

Tại sao phải TCP cocircng bằng

2 phiecircn lagravem việc cạnh tranh nhau Additive tăng lưu lượng tăng multiplicative giảm lưu lượng tương xứng

R

R

chia sẻ băng thocircng bằng nhau

Connection 1 throughputConnect

ion 2

th

roughput

traacutenh tắc nghẽn additive tăng lecircnmất maacutet giảm cửa sổ bằng 12

traacutenh tắc nghẽn additive tăng lecircnmất maacutet giảm cửa sổ bằng 12

Transport Layer 3-101

TCP tiacutenh cocircng bằng (tt)

Tiacutenh cocircng bằng amp UDP nhiều ứng dụng

thường khocircng dugraveng TCP khocircng muốn tốc độ bị

điều tiết do điều khiển tắc nghẽn

Thay bằng dugraveng UDP truyền audiovideo với

tốc độ ổn định chịu được mất maacutet

Nghiecircn cứu giao thức thacircn thiện với TCP

Tiacutenh cocircng bằng amp caacutec kết nối TCP song song

khocircng coacute gigrave ngăn cản việc ứng dụng mở caacutec kết nối song song giữa 2 host

Trigravenh duyệt Web lagravem giống như thế

Viacute dụ tốc độ R hỗ trợ 9 kết nối ứng dụng mới yecircu cầu 1

TCP coacute tốc độ R10 ứng dụng mới yecircu cầu 11

TCP coacute tốc độ R2

Transport Layer 3-102

Mocirc higravenh trễ

Hỏi Mất bao lacircu để nhận 1 đối tượng từ Web server sau khi gửi yecircu cầu

Bỏ qua tắc nghẽn trễ bị ảnh hưởng bởi

thiết lập kết nối TCP trễ truyền dữ liệu khởi động chậm

Notation caacutec giả định Giả sử một kết nối giữa

client vagrave server coacute tốc độ R

S MSS (bits) O kiacutech thước đối tượng

(bits) khocircng truyền lại (khocircng

mất maacutet khocircng hỏng)

Kiacutech thước cửa sổ Giả định 1 cửa sổ tắc

nghẽn cố định coacute W đoạn Sau đoacute cửa sổ thay đổi

mocirc higravenh khởi động chậm

Transport Layer 3-103

Cửa sổ tắc nghẽn cố định (1)

Trường hợp đầu tiecircnWSR gt RTT + SR cho

đoạn đầu tiecircn trong cửa sổ trả về trước khi cửa sổ dữ liệu gửi ACK

trễ = 2RTT + OR

Transport Layer 3-104

Cửa sổ tắc nghẽn cố định (2)

Trường hợp thứ hai WSR lt RTT + SR sent

chờ cho ACK sau khi gửi dữ liệu

trễ = 2RTT + OR+ (K-1)[SR + RTT - WSR]

Transport Layer 3-105

TCP Mocirc higravenh trễ Khởi động chậm (1)

Bacircy giờ giả sử kiacutech thước cửa sổ tăng lecircn tugravey theo quaacute trigravenh khởi động chậm

Độ trễ của một đối tượng sẽ lagrave

R

S

R

SRTTP

R

ORTTLatency P )12(2

trong đoacute P lagrave số lần TCP rảnh ở tại server

1min KQP

- trong đoacute Q lagrave số lần server rảnh nếu đối tượng đatilde khởi tạo kiacutech thước

- vagrave K lagrave số lượng cửa sổ bao trugravem đối tượng

Transport Layer 3-106

TCP Mocirc higravenh trễ Khởi động chậm (2)

RTT

initia te TCPconnection

requestobject

first w indow= S R

second w indow= 2S R

third w indow= 4S R

fourth w indow= 8S R

com pletetransm issionobject

delivered

tim e atc lient

tim e atserver

Viacute dụbull OS = 15 đoạnbull K = 4 cửa sổbull Q = 2bull P = minK-1Q = 2

Server rảnh P=2 lần

Caacutec thagravenh phần trễbull 2 RTT dagravenh cho thiết lập kết nối vagrave yecircu cầubull OR để truyền đối tượngbullthời gian server rảnh bởi vigrave khởi động chậm

Server rảnh P = minK-1Q lần

Transport Layer 3-107

TCP Mocirc higravenh trễ(3)

R

S

R

SRTTPRTT

R

O

R

SRTT

R

SRTT

R

O

idleTimeRTTR

O

P

kP

k

P

pp

)12(][2

]2[2

2delay

1

1

1

th window after the timeidle 2 1 kR

SRTT

R

S k

ementacknowledg receivesserver until

segment send tostartsserver when from time RTTR

S

window kth the transmit totime2 1

R

Sk

RTT

initia te TCPconnection

requestobject

first w indow= S R

second w indow= 2S R

third w indow= 4S R

fourth w indow= 8S R

com pletetransm issionobject

delivered

tim e atc lient

tim e atserver

Transport Layer 3-108

TCP Mocirc higravenh trễ (4)

)1(log

)1(logmin

12min

222min

222min

2

2

110

110

S

OS

Okk

S

Ok

SOk

OSSSkK

k

k

k

caacutech tiacutenh toaacuten Q tương tự (xem HW)

K = số lượng cửa sổ bao trugravem đối tượngLagravem thế nagraveo tiacutenh được K

Transport Layer 3-109

HTTP Mocirc higravenh Giả sử trang Web chứa

1 trang HTML (kiacutech thước O bits) M higravenh ảnh (mỗi caacutei kiacutech thướcO bits)

HTTP khocircng bền vững M+1 TCP kết nối Thời gian đaacutep ứng = (M+1)OR + (M+1)2RTT + tổng số thời

gian rảnh HTTP bền vững

2 RTT để yecircu cầu vagrave nhận file HTML 1 RTT để yecircu cầu vagrave nhận M higravenh ảnh Thời gian đaacutep ứng = (M+1)OR + 3RTT + tổng số thời gian

rảnh HTTP khocircng bền vững với X kết nối song song

Giả sử MX lagrave số nguyecircn 1 TCP kết nối cho file MX thiết lập caacutec kết nối song song cho caacutec higravenh ảnh Thời gian đaacutep ứng = (M+1)OR + (MX + 1)2RTT + tổng số

thời gian rảnh

Transport Layer 3-110

02468

101214161820

28Kbps

100Kbps

1Mbps

10Mbps

non-persistent

persistent

parallel non-persistent

HTTP thời gian đaacutep ứng (giacircy)RTT = 100 msec O = 5 Kbytes M=10 vagrave X=5

Với băng thocircng thấp thời gian kết nối amp đaacutep ứng trội hơn thời gian truyền

Caacutec kết nối bền vững chỉ cho sự cải thiện khocircng đaacuteng kể trecircn caacutec kết nối song song

Transport Layer 3-111

0

10

20

30

40

50

60

70

28Kbps

100Kbps

1Mbps

10Mbps

non-persistent

persistent

parallel non-persistent

HTTP thời gian đaacutep ứng (giacircy)

RTT =1 sec O = 5 Kbytes M=10 and X=5

Với RTT lớn hơn thời gian đaacutep ứng trội hơn thời gian trễ chờ thiết lập kết nốiTCP amp khởi động chậm Caacutec kết nối bền vững bacircy giờ cho thấy cải thiện rotilde rệt đặc biệtvới caacutec mạng băng thocircng cao

Transport Layer 3-112

Chương 3 Tổng kết caacutec nguyecircn lyacute của caacutec

dịch vụ lớp transport multiplexing

demultiplexing truyền dữ liệu tin cậy điều khiển luồng điều khiển tắc nghẽn

khởi tạo vagrave hiện thực trong Internet UDP TCP

Tiếp theo nghiecircn cứu xong

caacutec vấn đề ldquongoagravei biecircnrdquo (caacutec lớp application transport)

chuẩn bị vagraveo phần ldquolotildeirdquo của mạng

  • Slide 1
  • Chương 3 Lớp Transport
  • Chương 3 Nội dung trigravenh bagravey
  • Caacutec dịch vụ vagrave giao thức Transport
  • Lớp Transport với lớp network
  • Caacutec giao thức lớp transport trecircn Internet
  • Slide 7
  • Multiplexingdemultiplexing
  • Demultiplexing lagravem việc như thế nagraveo
  • Demultiplexing khocircng kết nối
  • Demultiplexing khocircng kết nối (tiếp)
  • Demultiplexing hướng kết nối
  • Demultiplexing hướng kết nối (tiếp)
  • Demultiplexing hướng kết nối Threaded Web Server
  • Slide 15
  • UDP User Datagram Protocol [RFC 768]
  • UDP (tt)
  • UDP checksum
  • Viacute dụ Checksum
  • Slide 20
  • Caacutec nguyecircn lyacute truyền dữ liệu tin cậy
  • Slide 22
  • Slide 23
  • Truyền dữ liệu tin cậy
  • Slide 25
  • Rdt10 truyền dữ liệu tin cậy trecircn 1 kecircnh truyền tin cậy
  • Rdt20 kecircnh với caacutec lỗi
  • rdt20 đặc tả FSM
  • rdt20 hoạt động khi khocircng lỗi
  • rdt20 hoạt động khi coacute lỗi
  • rdt20 coacute lỗ hổng nghiecircm trọng
  • rdt21 người gửi quản lyacute caacutec ACKNAK bị hỏng
  • Slide 33
  • rdt21 thảo luận
  • rdt22 một giao thức khocircng cần NAK
  • rdt22 gửi nhận caacutec mảnh
  • rdt30 caacutec kecircnh với lỗi vagrave mất maacutet
  • rdt30 gửi
  • hagravenh động của rdt30
  • Slide 40
  • Hiệu suất của rdt30
  • rdt30 hoạt động dừng-vagrave-chờ
  • Caacutec giao thức Pipelined
  • Pipelining độ khả dụng tăng
  • Go-Back-N
  • GBN becircn gửi mở rộng FSM
  • GBN becircn nhận mở rộng FSM
  • GBN hoạt động
  • Lặp coacute lựa chọn
  • Lặp coacute lựa chọn caacutec cửa sổ gửi nhận
  • Slide 51
  • Hoạt động của lặp coacute lựa chọn
  • Lặp coacute lựa chọn tigravenh trạng khoacute giải quyết
  • Slide 54
  • TCP Tổng quan RFCs 793 1122 1323 2018 2581
  • TCP cấu truacutec đoạn
  • Caacutec số thứ tự TCP vagrave ACK
  • TCP Round Trip Time vagraveTimeout
  • TCP Round Trip Time vagrave Timeout
  • Viacute dụ đaacutenh giaacute RTT
  • Slide 61
  • TCP truyền dữ liệu tin cậy
  • TCP caacutec sự kiện
  • TCP becircn gửi (đơn giản)
  • TCP caacutec tigravenh huống truyền lại
  • TCP caacutec tigravenh huống truyền lại (tt)
  • TCP sinh ra ACK [RFC 1122 RFC 2581]
  • Truyền lại nhanh
  • Giải thuật truyền lại nhanh
  • Slide 70
  • TCP điều khiển luồng
  • TCP điều khiển luồng caacutech lagravem
  • Slide 73
  • TCP quản lyacute kết nối
  • TCP quản lyacute kết nối (tt)
  • Slide 76
  • Slide 77
  • Slide 78
  • Caacutec nguyecircn lyacute điều khiển tắc nghẽn
  • Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 1
  • Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 2
  • Slide 82
  • Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 3
  • Slide 84
  • Caacutec caacutech tiếp cận đối với điều khiển tắc nghẽn
  • Viacute dụ điều khiển tắc nghẽn ATM ABR
  • Slide 87
  • Slide 88
  • TCP điều khiển tắc nghẽn additive tăng lecircn multiplicative giảm xuống
  • TCP điều khiển tắc nghẽn chi tiết
  • TCP khởi động chậm
  • TCP khởi động chậm (tt)
  • Tinh chế
  • Tinh chế nhận biết mất maacutet
  • Tổng kết TCP điều khiển tắc nghẽn
  • TCP điều khiển tắc nghẽn becircn gửi
  • TCP throughput
  • TCP tương lai
  • TCP tiacutenh cocircng bằng
  • Tại sao phải TCP cocircng bằng
  • TCP tiacutenh cocircng bằng (tt)
  • Mocirc higravenh trễ
  • Cửa sổ tắc nghẽn cố định (1)
  • Cửa sổ tắc nghẽn cố định (2)
  • TCP Mocirc higravenh trễ Khởi động chậm (1)
  • TCP Mocirc higravenh trễ Khởi động chậm (2)
  • TCP Mocirc higravenh trễ(3)
  • TCP Mocirc higravenh trễ (4)
  • HTTP Mocirc higravenh
  • Slide 110
  • Slide 111
  • Chương 3 Tổng kết

Transport Layer 3-42

rdt30 hoạt động dừng-vagrave-chờ

goacutei đầu tiecircn đatilde truyền t = 0

gửi nhận

RTT

goacutei cuối cugraveng đatilde truyền t = L R

goacutei đầu tiecircn đatilde đếngoacutei cuối cugraveng đatilde đến gửi ACK

ACK đến gửi goacutei kế tiếp t = RTT + L R

U sender

= 008

30008 = 000027

microseconds

L R

RTT + L R =

Transport Layer 3-43

Caacutec giao thức Pipelined

Pipelining người gửi cho pheacutep gửi nhiều goacutei đồng thời khocircng cần chờ baacuteo nhận được nhoacutem caacutec số thứ tự phải tăng dần phải coacute bộ nhớ đệm tại nơi gửi vagravehoặc nơi nhận

hai dạng phổ biến của caacutec giao thức pipelined go-Back-N Lặp coacute lựa chọn

Transport Layer 3-44

Pipelining độ khả dụng tăng

goacutei đầu tiecircn đatilde truyền t = 0

sender receiver

RTT

goacutei cuối cugraveng đatilde truyền t = L R

goacutei đầu tiecircn đatilde đếngoacutei cuối cugraveng đatilde đến gửi ACK

ACK đến gửi goacuteikế tiếp t = RTT + L R

bit cuối của goacutei thứ 2 đến gửi ACKbit cuối của goacutei thứ 3 đến gửi ACK

U sender

= 024

30008 = 00008

microseconds

3 L R

RTT + L R =

Độ khả dụng tăng lecircngấp 3 lần

Transport Layer 3-45

Go-Back-NBecircn gửi k-bit số thứ tự trong header của goacutei ldquocửa sổrdquo tăng lecircn đến N cho pheacutep gửi caacutec goacutei liecircn tục khocircng cần ACK

ACK(n) ACKs tất cả caacutec goacutei đến chứa số thứ tự n ndash ldquoACK tiacutech lũyrdquo coacute thể nhận caacutec ACK trugraveng lặp (xem becircn nhận)

định thigrave cho mỗi goacutei trecircn đường truyền timeout(n) gửi lại goacutei n vagrave tất cả caacutec goacutei coacute số thứ tự cao

hơn trong cửa sổ

Transport Layer 3-46

GBN becircn gửi mở rộng FSM

chờ start_timerudt_send(sndpkt[base])udt_send(sndpkt[base+1])hellipudt_send(sndpkt[nextseqnum-1])

timeout

rdt_send(data)

if (nextseqnum lt base+N) sndpkt[nextseqnum] = make_pkt(nextseqnumdatachksum) udt_send(sndpkt[nextseqnum]) if (base == nextseqnum) start_timer nextseqnum++ else refuse_data(data)

base = getacknum(rcvpkt)+1If (base == nextseqnum) stop_timer else start_timer

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)

base=1nextseqnum=1

rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)

Transport Layer 3-47

GBN becircn nhận mở rộng FSM

ACK-duy nhất luocircn luocircn gửi ACK cho goacutei đatilde nhận đuacuteng với số thứ tự xếp hạng cao nhất coacute thể sinh ra caacutec ACK trugraveng nhau chỉ cần nhớ expectedseqnum

goacutei khocircng theo thứ tự hủy -gt khocircng nhận vagraveo bộ đệm gửi lại ACK với số thứ tự xếp hạng cao nhất

chờ

udt_send(sndpkt)

default

rdt_rcv(rcvpkt) ampamp notcurrupt(rcvpkt) ampamp hasseqnum(rcvpktexpectedseqnum)

extract(rcvpktdata)deliver_data(data)sndpkt = make_pkt(expectedseqnumACKchksum)udt_send(sndpkt)expectedseqnum++

expectedseqnum=1sndpkt = make_pkt(expectedseqnumACKchksum)

Transport Layer 3-48

GBN hoạt động

Transport Layer 3-49

Lặp coacute lựa chọn

becircn nhận thocircng baacuteo đatilde nhận đuacuteng tất cả từng goacutei một đệm (buffer) caacutec goacutei nếu cần thiết

becircn gửi chỉ gửi lại caacutec goacutei nagraveo khocircng nhận được ACK becircn gửi định thigrave đối với mỗi goacutei khocircng gửi ACK

cửa sổ becircn gửi N số thứ tự liecircn tục hạn chế số thứ tự caacutec goacutei khocircng gửi ACK

Transport Layer 3-50

Lặp coacute lựa chọn caacutec cửa sổ gửi nhận

Transport Layer 3-51

Lặp coacute lựa chọn

dữ liệu từ lớp trecircn nếu số thứ tự kế tiếp sẵn

sagraveng trong cửa sổ gửi goacutei

timeout(n) gửi lại goacutei n taacutei khởi tạo

bộ định thigrave

ACK(n) trong [sendbasesendbase+N]

đaacutenh dấu goacutei n lagrave đatilde nhận nếu goacutei khocircng ACK coacute n

nhỏ nhất dịch chuyển cửa sổ base đến số thứ tự khocircng ACK kế tiếp

Gửigoacutei n trong [rcvbase

rcvbase+N-1]

gửi ACK(n) khocircng thứ tự đệm

(buffer) coacute thứ tự truyền (cũng

truyền caacutec goacutei đatilde đệm coacute thứ tự) dịch chuyển cửa sổ đến goacutei chưa nhận kế tiếp

goacutei n trong [rcvbase-Nrcvbase-1]

ACK(n)

ngược lại lờ đi

Nhận

Transport Layer 3-52

Hoạt động của lặp coacute lựa chọn

Transport Layer 3-53

Lặp coacute lựa chọntigravenh trạng khoacute giải quyếtViacute dụ Số thứ tự 0 1 2 3 Kiacutech thước cửa sổ = 3

becircn nhận khocircng thấy sự khaacutec nhau trong 2 tigravenh huống

chuyển khocircng chiacutenh xaacutec dữ liệu trugraveng lặp như dữ liệu mới trong (a)

Hỏi quan hệ giữa datildey số thứ tự vagrave kiacutech thước cửa sổ

Transport Layer 3-54

Chương 3 Nội dung trigravenh bagravey

31 Caacutec dịch vụ lớp Transport

32 Multiplexing vagrave demultiplexing

33 Vận chuyển khocircng kết nối UDP

34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy

35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối

36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn

37 Điều khiển tắc nghẽn TCP

Transport Layer 3-55

TCP Tổng quan RFCs 793 1122 1323 2018 2581

dữ liệu full duplex luồng dữ liệu đi 2 chiều

trong cugraveng một kết nối MSS maximum

segment size ndash kiacutech thước đoạn tối đa

hướng kết nối bắt tay (trao đổi caacutec

thocircng điệp điều khiển) trạng thaacutei becircn gửi becircn nhận trước khi trao đổi dữ liệu

điều khiển luồng becircn gửi sẽ khocircng lấn aacutet

becircn nhận

point-to-point một becircn gửi một becircn

nhận tin cậy dograveng byte coacute

thứ tự khocircng ldquoranh giới thocircng

điệprdquo kecircnh liecircn lạc

TCP điều khiển luồng vagrave tắc nghẽn thiết lập kiacutech thước cửa sổ

caacutec bộ đệm gửi amp nhận

socketdoor

T C Psend buffer

T C Preceive buffer

socketdoor

segm ent

applicationwrites data

applicationreads data

Transport Layer 3-56

TCP cấu truacutec đoạn

port nguồn port điacutech

32 bits

dữ liệu ứng dụng(độ dagravei thay đổi)

số thứ tự

số ACKcửa sổ nhận

con trỏ URGchecksum

FSRPAUheadlen

notused

Tugravey chọn (độ dagravei thay đổi)

URG dữ liệu khẩn cấp(thường khocircng dugraveng)

ACK ACK hợp lệ

PSH push data now(thường khocircng dugraveng)

RST SYN FINthiết lập kết nối

(caacutec lệnh thiết lậpchia nhỏ)

số byte becircn nhận sẵn sagraveng chấp nhận

đếm bởi số bytecủa dữ liệu

Internetchecksum

(giống UDP)

Transport Layer 3-57

Caacutec số thứ tự TCP vagrave ACKCaacutec số thứ tự

dograveng byte ldquođaacutenh sốrdquo byte đầu tiecircn trong dữ liệu của đoạn

caacutec ACK số thứ tự của byte

kế tiếp được chờ đợi từ phiacutea becircn kia

ACK tiacutech lũyHỏi lagravem thế nagraveo becircn

nhận quản lyacute caacutec đoạn khocircng thứ tự Trả lời TCP khocircng

đề cập tugravey thuộc người hiện thực

Host A Host B

Seq=42 ACK=79 data = lsquoCrsquo

Seq=79 ACK=43 data = lsquoCrsquo

Seq=43 ACK=80

UsernhậplsquoCrsquo

host ACKsnhận phản hồi

lsquoCrsquo

host ACKsbaacuteo nhận

lsquoCrsquo phản hồingược lại lsquoCrsquo

timetigravenh huống telnet đơn giản

Transport Layer 3-58

TCP Round Trip Time vagraveTimeout

Hỏi Lagravem thế nagraveo để thiết lập giaacute trị TCP timeout

dagravei hơn RTT khaacutec với RTT

quaacute ngắn timeout sớm truyền lại khocircng

cần thiết quaacute dagravei phản ứng

chậm đối với việc mất maacutet goacutei

Hỏi Lagravem thế nagraveo để thiết lập RTT

SampleRTT thời gian được đo từ khi truyền đoạn đến khi baacuteo nhận ACK lờ đi việc truyền lại

SampleRTT sẽ thay đổi muốn ước lượng RTT ldquomượt hơnrdquo tiacutenh trung bigravenh một số giaacute

trị đo được gần đoacute khocircng chỉ SampleRTT hiện tại

Transport Layer 3-59

TCP Round Trip Time vagrave Timeout

EstimatedRTT = (1- )EstimatedRTT + SampleRTT

giaacute trị đặc trưng = 0125

Transport Layer 3-60

Viacute dụ đaacutenh giaacute RTTRTT gaiacsumassedu to fantasiaeurecomfr

100

150

200

250

300

350

1 8 15 22 29 36 43 50 57 64 71 78 85 92 99 106

time (seconnds)

RTT

(mill

isec

onds

)

SampleRTT Estimated RTT

Transport Layer 3-61

TCP Round Trip Time vagrave Timeout

Thiết lập timeout EstimtedRTT cộng ldquohệ số dự trữ an toagravenrdquo

sự biến thiecircn lớn trong EstimatedRTT -gt hệ số dự trữ an toagraven lớn hơn ước lượng đầu tiecircn về sự biến thiecircn của SampleRTT từ EstimatedRTT

TimeoutInterval = EstimatedRTT + 4DevRTT

DevRTT = (1-)DevRTT + |SampleRTT-EstimatedRTT|

(tiecircu biểu = 025)

Sau đoacute thiết lập timeout interval

Transport Layer 3-62

TCP truyền dữ liệu tin cậy

TCP tạo dịch vụ rdt trecircn dịch vụ khocircng tin cậy IP

caacutec đoạn Pipelined caacutec ACK tiacutech lũy TCP dugraveng bộ định thigrave

truyền lại đơn

Truyền lại được kiacutech hoạt bởi caacutec sự kiện timeout caacutec ack trugraveng lặp

luacutec đầu khảo saacutet caacutec becircn gửi TCP đơn giản lờ đi caacutec ack trugraveng lặp lờ đi điều khiển luồng

điều khiển tắc nghẽn

Transport Layer 3-63

TCP caacutec sự kiệndữ liệu đatilde nhận từ ứng

dụng tạo đoạn với số thứ

tự của noacute số thứ tự lagrave số theo

byte dữ liệu đầu tiecircn khởi động bộ định thigrave

nếu chưa chạy khoảng thời gian hết

hạn TimeOutInterval

timeout gửi lại đoạn nagraveo gacircy

ra timeout khởi động lại bộ định

thigrave Ack đatilde nhận

cập nhật caacutei gigrave sẽ được ACK

khởi động bộ định thigrave nếu coacute caacutec đoạn cograven chờ

Transport Layer 3-64

TCP becircn gửi(đơn giản)

NextSeqNum = InitialSeqNum SendBase = InitialSeqNum

loop (forever) switch(event)

event data received from application above create TCP segment with sequence number NextSeqNum if (timer currently not running) start timer pass segment to IP NextSeqNum = NextSeqNum + length(data)

event timer timeout retransmit not-yet-acknowledged segment with smallest sequence number start timer

event ACK received with ACK field value of y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer

end of loop forever

Chuacute thiacutechbull SendBase-1 byte vừa được ACK tiacutech lũy Viacute dụbull SendBase-1 = 71y= 73 vigrave thế becircn nhận muốn 73+ y gt SendBase vigrave thế dữ liệu mới được chấp nhận

Transport Layer 3-65

TCP caacutec tigravenh huống truyền lại

Host A

Seq=100 20 bytes data

ACK=100

timetimeout sớm

Host B

Seq=92 8 bytes data

ACK=120

Seq=92 8 bytes data

Seq=

92

tim

eout

ACK=120

Host A

Seq=92 8 bytes data

ACK=100

loss

tim

eout

tigravenh huống mất ACK

Host B

X

Seq=92 8 bytes data

ACK=100

time

Seq=

92

tim

eout

SendBase= 100

SendBase= 120

SendBase= 120

Sendbase= 100

Transport Layer 3-66

TCP caacutec tigravenh huống truyền lại (tt)Host A

Seq=92 8 bytes data

ACK=100

loss

tim

eout

Cumulative ACK scenario

Host B

X

Seq=100 20 bytes data

ACK=120

time

SendBase= 120

Transport Layer 3-67

TCP sinh ra ACK [RFC 1122 RFC 2581]

Sự kiện tại becircn nhận

Đoạn đến với đuacuteng số thứ tự mong muốn Tất cả dữ liệu đếnđatilde được ACK

Đoạn đến với đuacuteng số thứ tự mong muốn Một đoạn khaacutec đangchờ ACK

Caacutec đoạn đến khocircng thứ tựlớn hơn số thứ tự đoạn mong muốnCoacute khoảng trống

Đoạn đếnlấp đầy từng phần hoặc toagraven bộkhoảng trống

TCP becircn nhận hagravenh động

ACK trễ Chờ đến 500mscho đoạn kế tiếp Nếu khocircng coacute đoạnkế tiếp gửi ACK

Gửi ngay một ACK tiacutech lũy chấp nhậncho cả caacutec đoạn theo thứ tự

Gửi ngay ACK trugraveng lặp chỉ thị số thứ tựđoạn của byte kế tiếp đang mong chờ

Gửi ngay ACK với điều kiện lagrave đoạnbắt đầu ngay điểm coacute khoảng trống

Transport Layer 3-68

Truyền lại nhanh

Chu kỳ Time-out thường tương đối dagravei độ trễ dagravei trước khi gửi

lại goacutei đatilde mất

Xaacutec nhận caacutec đoạn đatilde mất bằng caacutec ACK trugraveng lặp becircn gửi thường gửi

nhiều đoạn song song Nếu đoạn bị mất sẽ

xảy ra tigravenh trạng giống như nhiều ACK trugraveng nhau

Nếu becircn gửi nhận 3 ACK của cugraveng một dữ liệu noacute cho lagrave đoạn sau dữ liệu đatilde ACK bị mất Truyền lại nhanh gửi

lại đoạn trước khi bộ định thigrave hết hạn

Transport Layer 3-69

sự kiện ACK đatilde nhận với trường lagrave y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer else increment count of dup ACKs received for y if (count of dup ACKs received for y = 3) resend segment with sequence number y

Giải thuật truyền lại nhanh

một ACK trugraveng lặp cho đoạn đatilde được ACK

Truyền lại nhanh

Transport Layer 3-70

Chương 3 Nội dung trigravenh bagravey

31 Caacutec dịch vụ lớp Transport

32 Multiplexing vagrave demultiplexing

33 Vận chuyển khocircng kết nối UDP

34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy

35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối

36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn

37 Điều khiển tắc nghẽn TCP

Transport Layer 3-71

TCP điều khiển luồng

becircn nhận của kết nối TCP coacute một bộ đệm nhận

dịch vụ so trugraveng tốc độ so trugraveng tốc độ gửi với tốc độ nhận của ứng dụng

tiến trigravenh ứng dụng coacute thể chậm tại luacutec đọc bộ đệm

becircn gửi sẽ khocircng lagravem tragraven bộ đệm vigrave truyền quaacute nhiều vagrave

quaacute nhanh

điều khiển luồng

Transport Layer 3-72

TCP điều khiển luồng caacutech lagravem

(Giả sử becircn nhận TCP loại bỏ caacutec đoạn khocircng coacute thứ tự)

dự phograveng trong bộ đệm= RcvWindow

= RcvBuffer-[LastByteRcvd - LastByteRead]

Becircn nhận thocircng baacuteo khoảng dự trữ nhờ giaacute trị RcvWindow trong caacutec đoạn

Becircn gửi hạn chế dữ liệu khocircng được ACK vagraveo RcvWindow bảo đảm bộ đệm nhận

khocircng tragraven

Transport Layer 3-73

Chương 3 Nội dung trigravenh bagravey

31 Caacutec dịch vụ lớp Transport

32 Multiplexing vagrave demultiplexing

33 Vận chuyển khocircng kết nối UDP

34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy

35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối

36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn

37 Điều khiển tắc nghẽn TCP

Transport Layer 3-74

TCP quản lyacute kết nối

Chuacute yacute Becircn gửi vagrave becircn nhận TCP thiết lập ldquokết nốirdquo trước khi trao đổi dữ liệu

khởi tạo caacutec biến TCP caacutec số thứ tự đoạn thocircng tin caacutec bộ đệm điều

khiển luồng (như RcvWindow)

client người khởi xướng kết nối

Socket clientSocket = new Socket(hostnameport

number) server được tiếp xuacutec bởi

client Socket connectionSocket =

welcomeSocketaccept()

3 phương phaacutep bắt tay

Bước 1 client host gửi đoạnTCP SYN đến server xaacutec định số thứ tự khởi đầu khocircng phải dữ liệu

Bước 2 server host nhận SYN trả lời với đoạn SYNACK

server cấp phaacutet caacutec bộ đệm

xaacutec định số thứ tự khởi đầuBước 3 client nhận SYNACK trả

lời với đoạn ACK (coacute thể chứa dữ liệu)

Transport Layer 3-75

TCP quản lyacute kết nối (tt)

Đoacuteng một kết nối

client đoacuteng socket clientSocketclose()

Bước 1 client gửi đoạn điều khiển TCP FIN đến server

Bước 2 server nhận FIN trả lời với ACK Đoacuteng kết nối gửi FIN

client

FIN

server

ACK

ACK

FIN

đoacuteng

đoacuteng

đatilde đoacutengthời g

ian c

hờ

Transport Layer 3-76

TCP quản lyacute kết nối (tt)

Bước 3 client nhận FIN trả lời với ACK

Trong khoảng ldquothời gian chờrdquo ndash sẽ phản hồi với ACK để nhận caacutec FIN

Bước 4 server nhận ACK Kết nối đatilde đoacuteng

Chuacute yacute với một sửa đổi nhỏ coacute thể quản lyacute nhiều FIN đồng thời

client

FIN

server

ACK

ACK

FIN

đang đoacuteng

đang đoacuteng

đatilde đoacuteng

thời g

ian c

hờ

đatilde đoacuteng

Transport Layer 3-77

TCP quản lyacute kết nối (tt)

chu kỳ sống củaTCP client

chu kỳ sống củaTCP server

Transport Layer 3-78

Chương 3 Nội dung trigravenh bagravey

31 Caacutec dịch vụ lớp Transport

32 Multiplexing vagrave demultiplexing

33 Vận chuyển khocircng kết nối UDP

34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy

35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối

36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn

37 Điều khiển tắc nghẽn TCP

Transport Layer 3-79

Caacutec nguyecircn lyacute điều khiển tắc nghẽn

Tắc nghẽn ldquoquaacute nhiều nguồn gửi quaacute nhanh vagrave quaacute nhiều

dữ liệu đến mạngrdquo khaacutec với điều khiển luồng caacutec biểu hiện

caacutec goacutei bị mất (tragraven bộ đệm tại caacutec router) caacutec độ trễ quaacute dagravei (xếp hagraveng trong bộ đệm

của router) lagrave 1 trong 10 vấn đề nan giải nhất

Transport Layer 3-80

Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 1

2 gửi 2 nhận 1 router caacutec bộ

đệm khocircng giới hạn

khocircng coacute truyền lại

caacutec độ trễ lớn hơn khi tắc nghẽn

năng suất coacute thể đạt tối đa

unlimited shared output link buffers

Host Ain original data

Host B

out

Transport Layer 3-81

Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 2

1 router caacutec bộ đệm coacute giới hạn becircn gửi truyền lại caacutec goacutei đatilde mất

chia sẻ vocirc hạncaacutec bộ đệm ouput

Host A in dữ liệu gốc

Host B

out

in dữ liệu gốc cugraveng với dữ liệu truyền lại

Transport Layer 3-82

Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 2 luocircn luocircn

truyền lại ldquohoagraven toagravenrdquo chỉ khi mất maacutet

truyền lại vigrave trễ (khocircng mất) lagravem cho lớn hơn với cugraveng

in

out

=

in

out

gt

in

out

ldquocaacutec chi phiacuterdquo của tắc nghẽn nhiều việc (truyền lại) caacutec truyền lại khocircng cần thiết liecircn kết nhiều bản sao của

goacutei

R2

R2in

ou

t

b

R2

R2in

ou

t

a

R2

R2in

ou

t

c

R4

R3

Transport Layer 3-83

Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 3 4 người gửi caacutec đường qua nhiều hop timeouttruyền lại

in

Hỏi điều gigrave xảy ra nếu vagrave tăng lecircn

in

chia sẻ vocirc hạncaacutec bộ đệm ouput

Host Ain dữ liệu gốc

Host B

out

in dữ liệu gốc cugraveng với dữ liệu truyền lại

Transport Layer 3-84

Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 3

ldquochi phiacuterdquo khaacutec của tắc nghẽn khi caacutec goacutei bị bỏ bất kỳ ldquokhả năng truyền

upstream dugraveng cho goacutei đoacute sẽ bị latildeng phiacuterdquo

Host A

Host B

o

u

t

Transport Layer 3-85

Caacutec caacutech tiếp cận đối với điều khiển tắc nghẽn

điều khiển tắc nghẽn end-end

khocircng coacute phản hồi rotilde ragraveng từ mạng

tắc nghẽn được suy ra từ việc quan saacutet caacutec hệ thống đầu cuối coacute mất maacutet trễ

tiếp cận được quản lyacute bởi TCP

điều khiển tắc nghẽn coacute sự hỗ trợ của mạng

caacutec router cung cấp phản hồi về caacutec hệ thống đầu cuối 1 bit duy nhất chỉ thị

tắc nghẽn (SNA DECbit TCPIP ECN ATM)

tốc độ sẽ gửi được xaacutec định rotilde ragraveng

2 caacutech

Transport Layer 3-86

Viacute dụ điều khiển tắc nghẽn ATM ABR

ABR tốc độ bit sẵn sagraveng

ldquodịch vụ mềm dẻordquo nếu đường gửi ldquochưa

hếtrdquo becircn gửi sẽ dugraveng

băng thocircng sẵn sagraveng nếu đường gửi tắc

nghẽn becircn gửi điều tiết với

tốc độ tối thiểu

RM (resource management)

gửi bởi becircn gửi rải raacutec với caacutec ocirc dữ liệu

caacutec bit trong ocirc thiết lập bởi caacutec switch bit NI khocircng tăng tốc độ

(tắc nghẽn nhẹ) bit CI tắc nghẽn rotilde rệt

Caacutec ocirc RM được trả về becircn gửi từ becircn nhận với nguyecircn vẹn caacutec bit

Transport Layer 3-87

Viacute dụ điều khiển tắc nghẽn ATM ABR

trường 2-byte ER trong ocirc RM switch đatilde tắc nghẽn coacute thể coacute giaacute trị ER thấp hơn trong ocirc tốc độ gửi do đoacute coacute thể được hỗ trợ tối đa trecircn đường

EFCI bit trong caacutec ocirc dữ liệu được cagravei giaacute trị 1 trong switch đatilde tắc nghẽn nếu ocirc dữ liệu đứng trước ocirc RM coacute cagravei EFCI becircn gửi sẽ cagravei

bit CI trong ocirc RM trả về

Transport Layer 3-88

Chương 3 Nội dung trigravenh bagravey

31 Caacutec dịch vụ lớp Transport

32 Multiplexing vagrave demultiplexing

33 Vận chuyển khocircng kết nối UDP

34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy

35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối

36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn

37 Điều khiển tắc nghẽn TCP

Transport Layer 3-89

TCP điều khiển tắc nghẽn additive tăng lecircn multiplicative giảm xuống

8 Kbytes

16 Kbytes

24 Kbytes

time

congestionwindow

Caacutech tiếp cận tăng tốc độ truyền (kiacutech thước cửa sổ) tigravem khả năng băng thocircng coacute thể cho đến khi coacute mất maacutet xảy ra additive tăng lecircn tăng CongWin bởi 1 MSS

mỗi RTT cho đến khi coacute mất maacutet xảy ra multiplicative giảm xuống bỏ CongWin trong

nửa giai đoạn sau khi mất maacutet

timekiacutech

thư

ớc

cửa

sổ

tắc

nghẽ

n

Tigravem kiếm băng thocircng

Transport Layer 3-90

TCP điều khiển tắc nghẽn chi tiết

becircn gửi hạn chế việc truyền LastByteSent-LastByteAcked

CongWin Cocircng thức

CongWin thay đổi chức năng lagrave nhận biết tắc nghẽn trecircn mạng

Lagravem thế nagraveo becircn gửi nhận biết tắc nghẽn

mất maacutet xảy ra = timeout hoặc 3 ack trugraveng lặp

becircn gửi giảm tốc độ (CongWin) sau khi mất maacutet xảy ra

3 cơ chế AIMD khởi động chậm thận trọng sau khi coacute

caacutec sự kiện timeout

tốc độ = CongWin

RTT Bytess

Transport Layer 3-91

TCP khởi động chậm

Khi kết nối bắt đầu CongWin = 1 MSS Viacute dụ MSS = 500 bytes

amp RTT = 200 ms tốc độ khởi tạo = 20

kbps

băng thocircng sẵn sagraveng coacute thể gtgt MSSRTT mong muốn nhanh

choacuteng tăng tốc lecircn tốc độ coacute thể đaacutep ứng

Khi kết nối bắt đầu tăng tốc lecircn rất nhanh cho đến khi sự cố mất maacutet xảy ra đầu tiecircn

Transport Layer 3-92

TCP khởi động chậm (tt)

Khi kết nối bắt đầu tăng tốc lecircn rất nhanh cho đến khi sự cố mất maacutet xảy ra đầu tiecircn nhacircn đocirci CongWin mỗi

RTT hoagraven thagravenh nhờ tăng CongWin ứng với mỗi ACK đatilde nhận

Tổng kết tốc độ khởi đầu lagrave chậm nhưng sau đoacute tăng tốc rất nhanh

Host A

1 đoạn

RTT

Host B

thời gian

2 đoạn

4 đoạn

Transport Layer 3-93

Tinh chếHỏi Khi nagraveo việc tăng

tốc trở thagravenh tuyến tiacutenh

Trả lời Khi CongWin đạt đến 12 giaacute trị của noacute trước khi timeout

Hiện thực Ngưỡng thay đổi Tại thời điểm coacute sự cố

mất maacutet ngưỡng được cagravei giaacute trị bằng frac12 của CongWin ngay trước đoacute

Transport Layer 3-94

Tinh chế nhận biết mất maacutet

Sau 3 ACK trugraveng lặp CongWin sẽ giảm 12 kiacutech thước cửa sổ

tăng tuyến tiacutenh nhưng sau sự cố

timeout CongWin thay giaacute trị

bằng 1 MSS kiacutech thước cửa sổ

tăng cấp lũy thừa khi đến một ngưỡng

thigrave tăng tuyến tiacutenh

3 ACK trugraveng nhau chỉ ra khả năng truyền của mạng timeout chỉ thị ldquonhiều cảnh baacuteordquo về tigravenh huống tắc nghẽn

Nguyecircn lyacute

Transport Layer 3-95

Tổng kết TCP điều khiển tắc nghẽn

Khi CongWin dưới Threshold becircn gửi đang trong giai đoạn khởi động chậm kiacutech thước cửa sổ tăng nhanh theo cấp lũy thừa

Khi CongWin trecircn Threshold becircn gửi đang trong giai đoạn traacutenh tắc nghẽn kiacutech thước cửa sổ tăng nhanh theo cấp tuyến tiacutenh

Khi coacute 3 ACK trugraveng lặp xảy ra Threshold = CongWin2 vagrave CongWin = Threshold

Khi timeout xảy ra Threshold = CongWin2 vagrave CongWin = 1 MSS

Transport Layer 3-96

TCP điều khiển tắc nghẽn becircn gửi

Trạng thaacutei Sự kiện TCP becircn gửi hagravenh động Diễn giải

Slow Start (SS)-Khởi động chậm

ACK baacuteo nhận cho dữ liệu chưa ACK trước đoacute

CongWin = CongWin + MSS If (CongWin gt Threshold) cagravei đặt trạng thaacutei ldquoTraacutenh tắc nghẽnrdquo

Hậu quả lagravem tăng gấp đocirci CongWin mỗi RTT

CongestionAvoidance (CA) ndashTraacutenh tắc nghẽn

ACK baacuteo nhận cho dữ liệu chưa ACK trước đoacute

CongWin = CongWin+MSS (MSSCongWin)

Additive tăng lecircn lagravem tăng CongWin lecircn 1 MSS mỗi RTT

SS hoặc CA Sự cố mất maacutet xảy ra khi thấy coacute 3 ACK trugraveng lặp

Threshold = CongWin2 CongWin = Thresholdcagravei đặt trạng thaacutei ldquoTraacutenh tắc nghẽnrdquo

Khocirci phục nhanh hiện thực giảm xuống multiplicative CongWin sẽ khocircng giảm xuống dưới 1 MSS

SS hoặc CA Timeout Threshold = CongWin2 CongWin = 1 MSScagravei đặt trạng thaacutei ldquoKhởi động chậmrdquo

Vagraveo chế độ ldquoKhởi động chậmrdquo

SS hoặc CA ACK trugraveng lặp

Đếm ACK tăng lecircn cho đoạn vừa được ACK

CongWin vagrave Threshold khocircng thay đổi

Transport Layer 3-97

TCP throughput

Throughout trung bigravenh của TCP biểu diễn qua kiacutech thước của sổ vagrave RTT Bỏ qua trạng thaacutei ldquoKhởi động chậmrdquo

Cho W lagrave kiacutech thước cửa sổ khi coacute mất maacutet xảy ra

Khi kiacutech thước cửa sổ = W lưu lượng = WRTT

Chỉ ngay sau khi mất maacutet cửa sổ giảm xuống = W2 lưu lượng = W2RTT

throughout trung bigravenh 075 WRTT

Transport Layer 3-98

TCP tương lai

Viacute dụ caacutec đoạn dagravei 1500 byte RTT 100ms lưu lượng 10 Gbps

Kiacutech thước cửa sổ yecircu cầu W = 83333 đoạn trecircn đường truyền

Lưu lượng trong caacutec trường hợp mất maacutet

L = 210-10

Phiecircn bản mới của TCP dagravenh cho nhu cầu tốc độ cao

LRTT

MSS221

Transport Layer 3-99

Mục tiecircu nếu K phiecircn lagravem việc TCP chia sẻ kết nối cổ chai của băng thocircng lagrave R mỗi phiecircn coacute tốc độ trung bigravenh lagrave RK

TCP kết nối 1

router cổ chaikhả năng R

TCP kết nối 2

TCP tiacutenh cocircng bằng

Transport Layer 3-100

Tại sao phải TCP cocircng bằng

2 phiecircn lagravem việc cạnh tranh nhau Additive tăng lưu lượng tăng multiplicative giảm lưu lượng tương xứng

R

R

chia sẻ băng thocircng bằng nhau

Connection 1 throughputConnect

ion 2

th

roughput

traacutenh tắc nghẽn additive tăng lecircnmất maacutet giảm cửa sổ bằng 12

traacutenh tắc nghẽn additive tăng lecircnmất maacutet giảm cửa sổ bằng 12

Transport Layer 3-101

TCP tiacutenh cocircng bằng (tt)

Tiacutenh cocircng bằng amp UDP nhiều ứng dụng

thường khocircng dugraveng TCP khocircng muốn tốc độ bị

điều tiết do điều khiển tắc nghẽn

Thay bằng dugraveng UDP truyền audiovideo với

tốc độ ổn định chịu được mất maacutet

Nghiecircn cứu giao thức thacircn thiện với TCP

Tiacutenh cocircng bằng amp caacutec kết nối TCP song song

khocircng coacute gigrave ngăn cản việc ứng dụng mở caacutec kết nối song song giữa 2 host

Trigravenh duyệt Web lagravem giống như thế

Viacute dụ tốc độ R hỗ trợ 9 kết nối ứng dụng mới yecircu cầu 1

TCP coacute tốc độ R10 ứng dụng mới yecircu cầu 11

TCP coacute tốc độ R2

Transport Layer 3-102

Mocirc higravenh trễ

Hỏi Mất bao lacircu để nhận 1 đối tượng từ Web server sau khi gửi yecircu cầu

Bỏ qua tắc nghẽn trễ bị ảnh hưởng bởi

thiết lập kết nối TCP trễ truyền dữ liệu khởi động chậm

Notation caacutec giả định Giả sử một kết nối giữa

client vagrave server coacute tốc độ R

S MSS (bits) O kiacutech thước đối tượng

(bits) khocircng truyền lại (khocircng

mất maacutet khocircng hỏng)

Kiacutech thước cửa sổ Giả định 1 cửa sổ tắc

nghẽn cố định coacute W đoạn Sau đoacute cửa sổ thay đổi

mocirc higravenh khởi động chậm

Transport Layer 3-103

Cửa sổ tắc nghẽn cố định (1)

Trường hợp đầu tiecircnWSR gt RTT + SR cho

đoạn đầu tiecircn trong cửa sổ trả về trước khi cửa sổ dữ liệu gửi ACK

trễ = 2RTT + OR

Transport Layer 3-104

Cửa sổ tắc nghẽn cố định (2)

Trường hợp thứ hai WSR lt RTT + SR sent

chờ cho ACK sau khi gửi dữ liệu

trễ = 2RTT + OR+ (K-1)[SR + RTT - WSR]

Transport Layer 3-105

TCP Mocirc higravenh trễ Khởi động chậm (1)

Bacircy giờ giả sử kiacutech thước cửa sổ tăng lecircn tugravey theo quaacute trigravenh khởi động chậm

Độ trễ của một đối tượng sẽ lagrave

R

S

R

SRTTP

R

ORTTLatency P )12(2

trong đoacute P lagrave số lần TCP rảnh ở tại server

1min KQP

- trong đoacute Q lagrave số lần server rảnh nếu đối tượng đatilde khởi tạo kiacutech thước

- vagrave K lagrave số lượng cửa sổ bao trugravem đối tượng

Transport Layer 3-106

TCP Mocirc higravenh trễ Khởi động chậm (2)

RTT

initia te TCPconnection

requestobject

first w indow= S R

second w indow= 2S R

third w indow= 4S R

fourth w indow= 8S R

com pletetransm issionobject

delivered

tim e atc lient

tim e atserver

Viacute dụbull OS = 15 đoạnbull K = 4 cửa sổbull Q = 2bull P = minK-1Q = 2

Server rảnh P=2 lần

Caacutec thagravenh phần trễbull 2 RTT dagravenh cho thiết lập kết nối vagrave yecircu cầubull OR để truyền đối tượngbullthời gian server rảnh bởi vigrave khởi động chậm

Server rảnh P = minK-1Q lần

Transport Layer 3-107

TCP Mocirc higravenh trễ(3)

R

S

R

SRTTPRTT

R

O

R

SRTT

R

SRTT

R

O

idleTimeRTTR

O

P

kP

k

P

pp

)12(][2

]2[2

2delay

1

1

1

th window after the timeidle 2 1 kR

SRTT

R

S k

ementacknowledg receivesserver until

segment send tostartsserver when from time RTTR

S

window kth the transmit totime2 1

R

Sk

RTT

initia te TCPconnection

requestobject

first w indow= S R

second w indow= 2S R

third w indow= 4S R

fourth w indow= 8S R

com pletetransm issionobject

delivered

tim e atc lient

tim e atserver

Transport Layer 3-108

TCP Mocirc higravenh trễ (4)

)1(log

)1(logmin

12min

222min

222min

2

2

110

110

S

OS

Okk

S

Ok

SOk

OSSSkK

k

k

k

caacutech tiacutenh toaacuten Q tương tự (xem HW)

K = số lượng cửa sổ bao trugravem đối tượngLagravem thế nagraveo tiacutenh được K

Transport Layer 3-109

HTTP Mocirc higravenh Giả sử trang Web chứa

1 trang HTML (kiacutech thước O bits) M higravenh ảnh (mỗi caacutei kiacutech thướcO bits)

HTTP khocircng bền vững M+1 TCP kết nối Thời gian đaacutep ứng = (M+1)OR + (M+1)2RTT + tổng số thời

gian rảnh HTTP bền vững

2 RTT để yecircu cầu vagrave nhận file HTML 1 RTT để yecircu cầu vagrave nhận M higravenh ảnh Thời gian đaacutep ứng = (M+1)OR + 3RTT + tổng số thời gian

rảnh HTTP khocircng bền vững với X kết nối song song

Giả sử MX lagrave số nguyecircn 1 TCP kết nối cho file MX thiết lập caacutec kết nối song song cho caacutec higravenh ảnh Thời gian đaacutep ứng = (M+1)OR + (MX + 1)2RTT + tổng số

thời gian rảnh

Transport Layer 3-110

02468

101214161820

28Kbps

100Kbps

1Mbps

10Mbps

non-persistent

persistent

parallel non-persistent

HTTP thời gian đaacutep ứng (giacircy)RTT = 100 msec O = 5 Kbytes M=10 vagrave X=5

Với băng thocircng thấp thời gian kết nối amp đaacutep ứng trội hơn thời gian truyền

Caacutec kết nối bền vững chỉ cho sự cải thiện khocircng đaacuteng kể trecircn caacutec kết nối song song

Transport Layer 3-111

0

10

20

30

40

50

60

70

28Kbps

100Kbps

1Mbps

10Mbps

non-persistent

persistent

parallel non-persistent

HTTP thời gian đaacutep ứng (giacircy)

RTT =1 sec O = 5 Kbytes M=10 and X=5

Với RTT lớn hơn thời gian đaacutep ứng trội hơn thời gian trễ chờ thiết lập kết nốiTCP amp khởi động chậm Caacutec kết nối bền vững bacircy giờ cho thấy cải thiện rotilde rệt đặc biệtvới caacutec mạng băng thocircng cao

Transport Layer 3-112

Chương 3 Tổng kết caacutec nguyecircn lyacute của caacutec

dịch vụ lớp transport multiplexing

demultiplexing truyền dữ liệu tin cậy điều khiển luồng điều khiển tắc nghẽn

khởi tạo vagrave hiện thực trong Internet UDP TCP

Tiếp theo nghiecircn cứu xong

caacutec vấn đề ldquongoagravei biecircnrdquo (caacutec lớp application transport)

chuẩn bị vagraveo phần ldquolotildeirdquo của mạng

  • Slide 1
  • Chương 3 Lớp Transport
  • Chương 3 Nội dung trigravenh bagravey
  • Caacutec dịch vụ vagrave giao thức Transport
  • Lớp Transport với lớp network
  • Caacutec giao thức lớp transport trecircn Internet
  • Slide 7
  • Multiplexingdemultiplexing
  • Demultiplexing lagravem việc như thế nagraveo
  • Demultiplexing khocircng kết nối
  • Demultiplexing khocircng kết nối (tiếp)
  • Demultiplexing hướng kết nối
  • Demultiplexing hướng kết nối (tiếp)
  • Demultiplexing hướng kết nối Threaded Web Server
  • Slide 15
  • UDP User Datagram Protocol [RFC 768]
  • UDP (tt)
  • UDP checksum
  • Viacute dụ Checksum
  • Slide 20
  • Caacutec nguyecircn lyacute truyền dữ liệu tin cậy
  • Slide 22
  • Slide 23
  • Truyền dữ liệu tin cậy
  • Slide 25
  • Rdt10 truyền dữ liệu tin cậy trecircn 1 kecircnh truyền tin cậy
  • Rdt20 kecircnh với caacutec lỗi
  • rdt20 đặc tả FSM
  • rdt20 hoạt động khi khocircng lỗi
  • rdt20 hoạt động khi coacute lỗi
  • rdt20 coacute lỗ hổng nghiecircm trọng
  • rdt21 người gửi quản lyacute caacutec ACKNAK bị hỏng
  • Slide 33
  • rdt21 thảo luận
  • rdt22 một giao thức khocircng cần NAK
  • rdt22 gửi nhận caacutec mảnh
  • rdt30 caacutec kecircnh với lỗi vagrave mất maacutet
  • rdt30 gửi
  • hagravenh động của rdt30
  • Slide 40
  • Hiệu suất của rdt30
  • rdt30 hoạt động dừng-vagrave-chờ
  • Caacutec giao thức Pipelined
  • Pipelining độ khả dụng tăng
  • Go-Back-N
  • GBN becircn gửi mở rộng FSM
  • GBN becircn nhận mở rộng FSM
  • GBN hoạt động
  • Lặp coacute lựa chọn
  • Lặp coacute lựa chọn caacutec cửa sổ gửi nhận
  • Slide 51
  • Hoạt động của lặp coacute lựa chọn
  • Lặp coacute lựa chọn tigravenh trạng khoacute giải quyết
  • Slide 54
  • TCP Tổng quan RFCs 793 1122 1323 2018 2581
  • TCP cấu truacutec đoạn
  • Caacutec số thứ tự TCP vagrave ACK
  • TCP Round Trip Time vagraveTimeout
  • TCP Round Trip Time vagrave Timeout
  • Viacute dụ đaacutenh giaacute RTT
  • Slide 61
  • TCP truyền dữ liệu tin cậy
  • TCP caacutec sự kiện
  • TCP becircn gửi (đơn giản)
  • TCP caacutec tigravenh huống truyền lại
  • TCP caacutec tigravenh huống truyền lại (tt)
  • TCP sinh ra ACK [RFC 1122 RFC 2581]
  • Truyền lại nhanh
  • Giải thuật truyền lại nhanh
  • Slide 70
  • TCP điều khiển luồng
  • TCP điều khiển luồng caacutech lagravem
  • Slide 73
  • TCP quản lyacute kết nối
  • TCP quản lyacute kết nối (tt)
  • Slide 76
  • Slide 77
  • Slide 78
  • Caacutec nguyecircn lyacute điều khiển tắc nghẽn
  • Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 1
  • Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 2
  • Slide 82
  • Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 3
  • Slide 84
  • Caacutec caacutech tiếp cận đối với điều khiển tắc nghẽn
  • Viacute dụ điều khiển tắc nghẽn ATM ABR
  • Slide 87
  • Slide 88
  • TCP điều khiển tắc nghẽn additive tăng lecircn multiplicative giảm xuống
  • TCP điều khiển tắc nghẽn chi tiết
  • TCP khởi động chậm
  • TCP khởi động chậm (tt)
  • Tinh chế
  • Tinh chế nhận biết mất maacutet
  • Tổng kết TCP điều khiển tắc nghẽn
  • TCP điều khiển tắc nghẽn becircn gửi
  • TCP throughput
  • TCP tương lai
  • TCP tiacutenh cocircng bằng
  • Tại sao phải TCP cocircng bằng
  • TCP tiacutenh cocircng bằng (tt)
  • Mocirc higravenh trễ
  • Cửa sổ tắc nghẽn cố định (1)
  • Cửa sổ tắc nghẽn cố định (2)
  • TCP Mocirc higravenh trễ Khởi động chậm (1)
  • TCP Mocirc higravenh trễ Khởi động chậm (2)
  • TCP Mocirc higravenh trễ(3)
  • TCP Mocirc higravenh trễ (4)
  • HTTP Mocirc higravenh
  • Slide 110
  • Slide 111
  • Chương 3 Tổng kết

Transport Layer 3-43

Caacutec giao thức Pipelined

Pipelining người gửi cho pheacutep gửi nhiều goacutei đồng thời khocircng cần chờ baacuteo nhận được nhoacutem caacutec số thứ tự phải tăng dần phải coacute bộ nhớ đệm tại nơi gửi vagravehoặc nơi nhận

hai dạng phổ biến của caacutec giao thức pipelined go-Back-N Lặp coacute lựa chọn

Transport Layer 3-44

Pipelining độ khả dụng tăng

goacutei đầu tiecircn đatilde truyền t = 0

sender receiver

RTT

goacutei cuối cugraveng đatilde truyền t = L R

goacutei đầu tiecircn đatilde đếngoacutei cuối cugraveng đatilde đến gửi ACK

ACK đến gửi goacuteikế tiếp t = RTT + L R

bit cuối của goacutei thứ 2 đến gửi ACKbit cuối của goacutei thứ 3 đến gửi ACK

U sender

= 024

30008 = 00008

microseconds

3 L R

RTT + L R =

Độ khả dụng tăng lecircngấp 3 lần

Transport Layer 3-45

Go-Back-NBecircn gửi k-bit số thứ tự trong header của goacutei ldquocửa sổrdquo tăng lecircn đến N cho pheacutep gửi caacutec goacutei liecircn tục khocircng cần ACK

ACK(n) ACKs tất cả caacutec goacutei đến chứa số thứ tự n ndash ldquoACK tiacutech lũyrdquo coacute thể nhận caacutec ACK trugraveng lặp (xem becircn nhận)

định thigrave cho mỗi goacutei trecircn đường truyền timeout(n) gửi lại goacutei n vagrave tất cả caacutec goacutei coacute số thứ tự cao

hơn trong cửa sổ

Transport Layer 3-46

GBN becircn gửi mở rộng FSM

chờ start_timerudt_send(sndpkt[base])udt_send(sndpkt[base+1])hellipudt_send(sndpkt[nextseqnum-1])

timeout

rdt_send(data)

if (nextseqnum lt base+N) sndpkt[nextseqnum] = make_pkt(nextseqnumdatachksum) udt_send(sndpkt[nextseqnum]) if (base == nextseqnum) start_timer nextseqnum++ else refuse_data(data)

base = getacknum(rcvpkt)+1If (base == nextseqnum) stop_timer else start_timer

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)

base=1nextseqnum=1

rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)

Transport Layer 3-47

GBN becircn nhận mở rộng FSM

ACK-duy nhất luocircn luocircn gửi ACK cho goacutei đatilde nhận đuacuteng với số thứ tự xếp hạng cao nhất coacute thể sinh ra caacutec ACK trugraveng nhau chỉ cần nhớ expectedseqnum

goacutei khocircng theo thứ tự hủy -gt khocircng nhận vagraveo bộ đệm gửi lại ACK với số thứ tự xếp hạng cao nhất

chờ

udt_send(sndpkt)

default

rdt_rcv(rcvpkt) ampamp notcurrupt(rcvpkt) ampamp hasseqnum(rcvpktexpectedseqnum)

extract(rcvpktdata)deliver_data(data)sndpkt = make_pkt(expectedseqnumACKchksum)udt_send(sndpkt)expectedseqnum++

expectedseqnum=1sndpkt = make_pkt(expectedseqnumACKchksum)

Transport Layer 3-48

GBN hoạt động

Transport Layer 3-49

Lặp coacute lựa chọn

becircn nhận thocircng baacuteo đatilde nhận đuacuteng tất cả từng goacutei một đệm (buffer) caacutec goacutei nếu cần thiết

becircn gửi chỉ gửi lại caacutec goacutei nagraveo khocircng nhận được ACK becircn gửi định thigrave đối với mỗi goacutei khocircng gửi ACK

cửa sổ becircn gửi N số thứ tự liecircn tục hạn chế số thứ tự caacutec goacutei khocircng gửi ACK

Transport Layer 3-50

Lặp coacute lựa chọn caacutec cửa sổ gửi nhận

Transport Layer 3-51

Lặp coacute lựa chọn

dữ liệu từ lớp trecircn nếu số thứ tự kế tiếp sẵn

sagraveng trong cửa sổ gửi goacutei

timeout(n) gửi lại goacutei n taacutei khởi tạo

bộ định thigrave

ACK(n) trong [sendbasesendbase+N]

đaacutenh dấu goacutei n lagrave đatilde nhận nếu goacutei khocircng ACK coacute n

nhỏ nhất dịch chuyển cửa sổ base đến số thứ tự khocircng ACK kế tiếp

Gửigoacutei n trong [rcvbase

rcvbase+N-1]

gửi ACK(n) khocircng thứ tự đệm

(buffer) coacute thứ tự truyền (cũng

truyền caacutec goacutei đatilde đệm coacute thứ tự) dịch chuyển cửa sổ đến goacutei chưa nhận kế tiếp

goacutei n trong [rcvbase-Nrcvbase-1]

ACK(n)

ngược lại lờ đi

Nhận

Transport Layer 3-52

Hoạt động của lặp coacute lựa chọn

Transport Layer 3-53

Lặp coacute lựa chọntigravenh trạng khoacute giải quyếtViacute dụ Số thứ tự 0 1 2 3 Kiacutech thước cửa sổ = 3

becircn nhận khocircng thấy sự khaacutec nhau trong 2 tigravenh huống

chuyển khocircng chiacutenh xaacutec dữ liệu trugraveng lặp như dữ liệu mới trong (a)

Hỏi quan hệ giữa datildey số thứ tự vagrave kiacutech thước cửa sổ

Transport Layer 3-54

Chương 3 Nội dung trigravenh bagravey

31 Caacutec dịch vụ lớp Transport

32 Multiplexing vagrave demultiplexing

33 Vận chuyển khocircng kết nối UDP

34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy

35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối

36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn

37 Điều khiển tắc nghẽn TCP

Transport Layer 3-55

TCP Tổng quan RFCs 793 1122 1323 2018 2581

dữ liệu full duplex luồng dữ liệu đi 2 chiều

trong cugraveng một kết nối MSS maximum

segment size ndash kiacutech thước đoạn tối đa

hướng kết nối bắt tay (trao đổi caacutec

thocircng điệp điều khiển) trạng thaacutei becircn gửi becircn nhận trước khi trao đổi dữ liệu

điều khiển luồng becircn gửi sẽ khocircng lấn aacutet

becircn nhận

point-to-point một becircn gửi một becircn

nhận tin cậy dograveng byte coacute

thứ tự khocircng ldquoranh giới thocircng

điệprdquo kecircnh liecircn lạc

TCP điều khiển luồng vagrave tắc nghẽn thiết lập kiacutech thước cửa sổ

caacutec bộ đệm gửi amp nhận

socketdoor

T C Psend buffer

T C Preceive buffer

socketdoor

segm ent

applicationwrites data

applicationreads data

Transport Layer 3-56

TCP cấu truacutec đoạn

port nguồn port điacutech

32 bits

dữ liệu ứng dụng(độ dagravei thay đổi)

số thứ tự

số ACKcửa sổ nhận

con trỏ URGchecksum

FSRPAUheadlen

notused

Tugravey chọn (độ dagravei thay đổi)

URG dữ liệu khẩn cấp(thường khocircng dugraveng)

ACK ACK hợp lệ

PSH push data now(thường khocircng dugraveng)

RST SYN FINthiết lập kết nối

(caacutec lệnh thiết lậpchia nhỏ)

số byte becircn nhận sẵn sagraveng chấp nhận

đếm bởi số bytecủa dữ liệu

Internetchecksum

(giống UDP)

Transport Layer 3-57

Caacutec số thứ tự TCP vagrave ACKCaacutec số thứ tự

dograveng byte ldquođaacutenh sốrdquo byte đầu tiecircn trong dữ liệu của đoạn

caacutec ACK số thứ tự của byte

kế tiếp được chờ đợi từ phiacutea becircn kia

ACK tiacutech lũyHỏi lagravem thế nagraveo becircn

nhận quản lyacute caacutec đoạn khocircng thứ tự Trả lời TCP khocircng

đề cập tugravey thuộc người hiện thực

Host A Host B

Seq=42 ACK=79 data = lsquoCrsquo

Seq=79 ACK=43 data = lsquoCrsquo

Seq=43 ACK=80

UsernhậplsquoCrsquo

host ACKsnhận phản hồi

lsquoCrsquo

host ACKsbaacuteo nhận

lsquoCrsquo phản hồingược lại lsquoCrsquo

timetigravenh huống telnet đơn giản

Transport Layer 3-58

TCP Round Trip Time vagraveTimeout

Hỏi Lagravem thế nagraveo để thiết lập giaacute trị TCP timeout

dagravei hơn RTT khaacutec với RTT

quaacute ngắn timeout sớm truyền lại khocircng

cần thiết quaacute dagravei phản ứng

chậm đối với việc mất maacutet goacutei

Hỏi Lagravem thế nagraveo để thiết lập RTT

SampleRTT thời gian được đo từ khi truyền đoạn đến khi baacuteo nhận ACK lờ đi việc truyền lại

SampleRTT sẽ thay đổi muốn ước lượng RTT ldquomượt hơnrdquo tiacutenh trung bigravenh một số giaacute

trị đo được gần đoacute khocircng chỉ SampleRTT hiện tại

Transport Layer 3-59

TCP Round Trip Time vagrave Timeout

EstimatedRTT = (1- )EstimatedRTT + SampleRTT

giaacute trị đặc trưng = 0125

Transport Layer 3-60

Viacute dụ đaacutenh giaacute RTTRTT gaiacsumassedu to fantasiaeurecomfr

100

150

200

250

300

350

1 8 15 22 29 36 43 50 57 64 71 78 85 92 99 106

time (seconnds)

RTT

(mill

isec

onds

)

SampleRTT Estimated RTT

Transport Layer 3-61

TCP Round Trip Time vagrave Timeout

Thiết lập timeout EstimtedRTT cộng ldquohệ số dự trữ an toagravenrdquo

sự biến thiecircn lớn trong EstimatedRTT -gt hệ số dự trữ an toagraven lớn hơn ước lượng đầu tiecircn về sự biến thiecircn của SampleRTT từ EstimatedRTT

TimeoutInterval = EstimatedRTT + 4DevRTT

DevRTT = (1-)DevRTT + |SampleRTT-EstimatedRTT|

(tiecircu biểu = 025)

Sau đoacute thiết lập timeout interval

Transport Layer 3-62

TCP truyền dữ liệu tin cậy

TCP tạo dịch vụ rdt trecircn dịch vụ khocircng tin cậy IP

caacutec đoạn Pipelined caacutec ACK tiacutech lũy TCP dugraveng bộ định thigrave

truyền lại đơn

Truyền lại được kiacutech hoạt bởi caacutec sự kiện timeout caacutec ack trugraveng lặp

luacutec đầu khảo saacutet caacutec becircn gửi TCP đơn giản lờ đi caacutec ack trugraveng lặp lờ đi điều khiển luồng

điều khiển tắc nghẽn

Transport Layer 3-63

TCP caacutec sự kiệndữ liệu đatilde nhận từ ứng

dụng tạo đoạn với số thứ

tự của noacute số thứ tự lagrave số theo

byte dữ liệu đầu tiecircn khởi động bộ định thigrave

nếu chưa chạy khoảng thời gian hết

hạn TimeOutInterval

timeout gửi lại đoạn nagraveo gacircy

ra timeout khởi động lại bộ định

thigrave Ack đatilde nhận

cập nhật caacutei gigrave sẽ được ACK

khởi động bộ định thigrave nếu coacute caacutec đoạn cograven chờ

Transport Layer 3-64

TCP becircn gửi(đơn giản)

NextSeqNum = InitialSeqNum SendBase = InitialSeqNum

loop (forever) switch(event)

event data received from application above create TCP segment with sequence number NextSeqNum if (timer currently not running) start timer pass segment to IP NextSeqNum = NextSeqNum + length(data)

event timer timeout retransmit not-yet-acknowledged segment with smallest sequence number start timer

event ACK received with ACK field value of y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer

end of loop forever

Chuacute thiacutechbull SendBase-1 byte vừa được ACK tiacutech lũy Viacute dụbull SendBase-1 = 71y= 73 vigrave thế becircn nhận muốn 73+ y gt SendBase vigrave thế dữ liệu mới được chấp nhận

Transport Layer 3-65

TCP caacutec tigravenh huống truyền lại

Host A

Seq=100 20 bytes data

ACK=100

timetimeout sớm

Host B

Seq=92 8 bytes data

ACK=120

Seq=92 8 bytes data

Seq=

92

tim

eout

ACK=120

Host A

Seq=92 8 bytes data

ACK=100

loss

tim

eout

tigravenh huống mất ACK

Host B

X

Seq=92 8 bytes data

ACK=100

time

Seq=

92

tim

eout

SendBase= 100

SendBase= 120

SendBase= 120

Sendbase= 100

Transport Layer 3-66

TCP caacutec tigravenh huống truyền lại (tt)Host A

Seq=92 8 bytes data

ACK=100

loss

tim

eout

Cumulative ACK scenario

Host B

X

Seq=100 20 bytes data

ACK=120

time

SendBase= 120

Transport Layer 3-67

TCP sinh ra ACK [RFC 1122 RFC 2581]

Sự kiện tại becircn nhận

Đoạn đến với đuacuteng số thứ tự mong muốn Tất cả dữ liệu đếnđatilde được ACK

Đoạn đến với đuacuteng số thứ tự mong muốn Một đoạn khaacutec đangchờ ACK

Caacutec đoạn đến khocircng thứ tựlớn hơn số thứ tự đoạn mong muốnCoacute khoảng trống

Đoạn đếnlấp đầy từng phần hoặc toagraven bộkhoảng trống

TCP becircn nhận hagravenh động

ACK trễ Chờ đến 500mscho đoạn kế tiếp Nếu khocircng coacute đoạnkế tiếp gửi ACK

Gửi ngay một ACK tiacutech lũy chấp nhậncho cả caacutec đoạn theo thứ tự

Gửi ngay ACK trugraveng lặp chỉ thị số thứ tựđoạn của byte kế tiếp đang mong chờ

Gửi ngay ACK với điều kiện lagrave đoạnbắt đầu ngay điểm coacute khoảng trống

Transport Layer 3-68

Truyền lại nhanh

Chu kỳ Time-out thường tương đối dagravei độ trễ dagravei trước khi gửi

lại goacutei đatilde mất

Xaacutec nhận caacutec đoạn đatilde mất bằng caacutec ACK trugraveng lặp becircn gửi thường gửi

nhiều đoạn song song Nếu đoạn bị mất sẽ

xảy ra tigravenh trạng giống như nhiều ACK trugraveng nhau

Nếu becircn gửi nhận 3 ACK của cugraveng một dữ liệu noacute cho lagrave đoạn sau dữ liệu đatilde ACK bị mất Truyền lại nhanh gửi

lại đoạn trước khi bộ định thigrave hết hạn

Transport Layer 3-69

sự kiện ACK đatilde nhận với trường lagrave y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer else increment count of dup ACKs received for y if (count of dup ACKs received for y = 3) resend segment with sequence number y

Giải thuật truyền lại nhanh

một ACK trugraveng lặp cho đoạn đatilde được ACK

Truyền lại nhanh

Transport Layer 3-70

Chương 3 Nội dung trigravenh bagravey

31 Caacutec dịch vụ lớp Transport

32 Multiplexing vagrave demultiplexing

33 Vận chuyển khocircng kết nối UDP

34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy

35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối

36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn

37 Điều khiển tắc nghẽn TCP

Transport Layer 3-71

TCP điều khiển luồng

becircn nhận của kết nối TCP coacute một bộ đệm nhận

dịch vụ so trugraveng tốc độ so trugraveng tốc độ gửi với tốc độ nhận của ứng dụng

tiến trigravenh ứng dụng coacute thể chậm tại luacutec đọc bộ đệm

becircn gửi sẽ khocircng lagravem tragraven bộ đệm vigrave truyền quaacute nhiều vagrave

quaacute nhanh

điều khiển luồng

Transport Layer 3-72

TCP điều khiển luồng caacutech lagravem

(Giả sử becircn nhận TCP loại bỏ caacutec đoạn khocircng coacute thứ tự)

dự phograveng trong bộ đệm= RcvWindow

= RcvBuffer-[LastByteRcvd - LastByteRead]

Becircn nhận thocircng baacuteo khoảng dự trữ nhờ giaacute trị RcvWindow trong caacutec đoạn

Becircn gửi hạn chế dữ liệu khocircng được ACK vagraveo RcvWindow bảo đảm bộ đệm nhận

khocircng tragraven

Transport Layer 3-73

Chương 3 Nội dung trigravenh bagravey

31 Caacutec dịch vụ lớp Transport

32 Multiplexing vagrave demultiplexing

33 Vận chuyển khocircng kết nối UDP

34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy

35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối

36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn

37 Điều khiển tắc nghẽn TCP

Transport Layer 3-74

TCP quản lyacute kết nối

Chuacute yacute Becircn gửi vagrave becircn nhận TCP thiết lập ldquokết nốirdquo trước khi trao đổi dữ liệu

khởi tạo caacutec biến TCP caacutec số thứ tự đoạn thocircng tin caacutec bộ đệm điều

khiển luồng (như RcvWindow)

client người khởi xướng kết nối

Socket clientSocket = new Socket(hostnameport

number) server được tiếp xuacutec bởi

client Socket connectionSocket =

welcomeSocketaccept()

3 phương phaacutep bắt tay

Bước 1 client host gửi đoạnTCP SYN đến server xaacutec định số thứ tự khởi đầu khocircng phải dữ liệu

Bước 2 server host nhận SYN trả lời với đoạn SYNACK

server cấp phaacutet caacutec bộ đệm

xaacutec định số thứ tự khởi đầuBước 3 client nhận SYNACK trả

lời với đoạn ACK (coacute thể chứa dữ liệu)

Transport Layer 3-75

TCP quản lyacute kết nối (tt)

Đoacuteng một kết nối

client đoacuteng socket clientSocketclose()

Bước 1 client gửi đoạn điều khiển TCP FIN đến server

Bước 2 server nhận FIN trả lời với ACK Đoacuteng kết nối gửi FIN

client

FIN

server

ACK

ACK

FIN

đoacuteng

đoacuteng

đatilde đoacutengthời g

ian c

hờ

Transport Layer 3-76

TCP quản lyacute kết nối (tt)

Bước 3 client nhận FIN trả lời với ACK

Trong khoảng ldquothời gian chờrdquo ndash sẽ phản hồi với ACK để nhận caacutec FIN

Bước 4 server nhận ACK Kết nối đatilde đoacuteng

Chuacute yacute với một sửa đổi nhỏ coacute thể quản lyacute nhiều FIN đồng thời

client

FIN

server

ACK

ACK

FIN

đang đoacuteng

đang đoacuteng

đatilde đoacuteng

thời g

ian c

hờ

đatilde đoacuteng

Transport Layer 3-77

TCP quản lyacute kết nối (tt)

chu kỳ sống củaTCP client

chu kỳ sống củaTCP server

Transport Layer 3-78

Chương 3 Nội dung trigravenh bagravey

31 Caacutec dịch vụ lớp Transport

32 Multiplexing vagrave demultiplexing

33 Vận chuyển khocircng kết nối UDP

34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy

35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối

36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn

37 Điều khiển tắc nghẽn TCP

Transport Layer 3-79

Caacutec nguyecircn lyacute điều khiển tắc nghẽn

Tắc nghẽn ldquoquaacute nhiều nguồn gửi quaacute nhanh vagrave quaacute nhiều

dữ liệu đến mạngrdquo khaacutec với điều khiển luồng caacutec biểu hiện

caacutec goacutei bị mất (tragraven bộ đệm tại caacutec router) caacutec độ trễ quaacute dagravei (xếp hagraveng trong bộ đệm

của router) lagrave 1 trong 10 vấn đề nan giải nhất

Transport Layer 3-80

Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 1

2 gửi 2 nhận 1 router caacutec bộ

đệm khocircng giới hạn

khocircng coacute truyền lại

caacutec độ trễ lớn hơn khi tắc nghẽn

năng suất coacute thể đạt tối đa

unlimited shared output link buffers

Host Ain original data

Host B

out

Transport Layer 3-81

Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 2

1 router caacutec bộ đệm coacute giới hạn becircn gửi truyền lại caacutec goacutei đatilde mất

chia sẻ vocirc hạncaacutec bộ đệm ouput

Host A in dữ liệu gốc

Host B

out

in dữ liệu gốc cugraveng với dữ liệu truyền lại

Transport Layer 3-82

Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 2 luocircn luocircn

truyền lại ldquohoagraven toagravenrdquo chỉ khi mất maacutet

truyền lại vigrave trễ (khocircng mất) lagravem cho lớn hơn với cugraveng

in

out

=

in

out

gt

in

out

ldquocaacutec chi phiacuterdquo của tắc nghẽn nhiều việc (truyền lại) caacutec truyền lại khocircng cần thiết liecircn kết nhiều bản sao của

goacutei

R2

R2in

ou

t

b

R2

R2in

ou

t

a

R2

R2in

ou

t

c

R4

R3

Transport Layer 3-83

Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 3 4 người gửi caacutec đường qua nhiều hop timeouttruyền lại

in

Hỏi điều gigrave xảy ra nếu vagrave tăng lecircn

in

chia sẻ vocirc hạncaacutec bộ đệm ouput

Host Ain dữ liệu gốc

Host B

out

in dữ liệu gốc cugraveng với dữ liệu truyền lại

Transport Layer 3-84

Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 3

ldquochi phiacuterdquo khaacutec của tắc nghẽn khi caacutec goacutei bị bỏ bất kỳ ldquokhả năng truyền

upstream dugraveng cho goacutei đoacute sẽ bị latildeng phiacuterdquo

Host A

Host B

o

u

t

Transport Layer 3-85

Caacutec caacutech tiếp cận đối với điều khiển tắc nghẽn

điều khiển tắc nghẽn end-end

khocircng coacute phản hồi rotilde ragraveng từ mạng

tắc nghẽn được suy ra từ việc quan saacutet caacutec hệ thống đầu cuối coacute mất maacutet trễ

tiếp cận được quản lyacute bởi TCP

điều khiển tắc nghẽn coacute sự hỗ trợ của mạng

caacutec router cung cấp phản hồi về caacutec hệ thống đầu cuối 1 bit duy nhất chỉ thị

tắc nghẽn (SNA DECbit TCPIP ECN ATM)

tốc độ sẽ gửi được xaacutec định rotilde ragraveng

2 caacutech

Transport Layer 3-86

Viacute dụ điều khiển tắc nghẽn ATM ABR

ABR tốc độ bit sẵn sagraveng

ldquodịch vụ mềm dẻordquo nếu đường gửi ldquochưa

hếtrdquo becircn gửi sẽ dugraveng

băng thocircng sẵn sagraveng nếu đường gửi tắc

nghẽn becircn gửi điều tiết với

tốc độ tối thiểu

RM (resource management)

gửi bởi becircn gửi rải raacutec với caacutec ocirc dữ liệu

caacutec bit trong ocirc thiết lập bởi caacutec switch bit NI khocircng tăng tốc độ

(tắc nghẽn nhẹ) bit CI tắc nghẽn rotilde rệt

Caacutec ocirc RM được trả về becircn gửi từ becircn nhận với nguyecircn vẹn caacutec bit

Transport Layer 3-87

Viacute dụ điều khiển tắc nghẽn ATM ABR

trường 2-byte ER trong ocirc RM switch đatilde tắc nghẽn coacute thể coacute giaacute trị ER thấp hơn trong ocirc tốc độ gửi do đoacute coacute thể được hỗ trợ tối đa trecircn đường

EFCI bit trong caacutec ocirc dữ liệu được cagravei giaacute trị 1 trong switch đatilde tắc nghẽn nếu ocirc dữ liệu đứng trước ocirc RM coacute cagravei EFCI becircn gửi sẽ cagravei

bit CI trong ocirc RM trả về

Transport Layer 3-88

Chương 3 Nội dung trigravenh bagravey

31 Caacutec dịch vụ lớp Transport

32 Multiplexing vagrave demultiplexing

33 Vận chuyển khocircng kết nối UDP

34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy

35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối

36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn

37 Điều khiển tắc nghẽn TCP

Transport Layer 3-89

TCP điều khiển tắc nghẽn additive tăng lecircn multiplicative giảm xuống

8 Kbytes

16 Kbytes

24 Kbytes

time

congestionwindow

Caacutech tiếp cận tăng tốc độ truyền (kiacutech thước cửa sổ) tigravem khả năng băng thocircng coacute thể cho đến khi coacute mất maacutet xảy ra additive tăng lecircn tăng CongWin bởi 1 MSS

mỗi RTT cho đến khi coacute mất maacutet xảy ra multiplicative giảm xuống bỏ CongWin trong

nửa giai đoạn sau khi mất maacutet

timekiacutech

thư

ớc

cửa

sổ

tắc

nghẽ

n

Tigravem kiếm băng thocircng

Transport Layer 3-90

TCP điều khiển tắc nghẽn chi tiết

becircn gửi hạn chế việc truyền LastByteSent-LastByteAcked

CongWin Cocircng thức

CongWin thay đổi chức năng lagrave nhận biết tắc nghẽn trecircn mạng

Lagravem thế nagraveo becircn gửi nhận biết tắc nghẽn

mất maacutet xảy ra = timeout hoặc 3 ack trugraveng lặp

becircn gửi giảm tốc độ (CongWin) sau khi mất maacutet xảy ra

3 cơ chế AIMD khởi động chậm thận trọng sau khi coacute

caacutec sự kiện timeout

tốc độ = CongWin

RTT Bytess

Transport Layer 3-91

TCP khởi động chậm

Khi kết nối bắt đầu CongWin = 1 MSS Viacute dụ MSS = 500 bytes

amp RTT = 200 ms tốc độ khởi tạo = 20

kbps

băng thocircng sẵn sagraveng coacute thể gtgt MSSRTT mong muốn nhanh

choacuteng tăng tốc lecircn tốc độ coacute thể đaacutep ứng

Khi kết nối bắt đầu tăng tốc lecircn rất nhanh cho đến khi sự cố mất maacutet xảy ra đầu tiecircn

Transport Layer 3-92

TCP khởi động chậm (tt)

Khi kết nối bắt đầu tăng tốc lecircn rất nhanh cho đến khi sự cố mất maacutet xảy ra đầu tiecircn nhacircn đocirci CongWin mỗi

RTT hoagraven thagravenh nhờ tăng CongWin ứng với mỗi ACK đatilde nhận

Tổng kết tốc độ khởi đầu lagrave chậm nhưng sau đoacute tăng tốc rất nhanh

Host A

1 đoạn

RTT

Host B

thời gian

2 đoạn

4 đoạn

Transport Layer 3-93

Tinh chếHỏi Khi nagraveo việc tăng

tốc trở thagravenh tuyến tiacutenh

Trả lời Khi CongWin đạt đến 12 giaacute trị của noacute trước khi timeout

Hiện thực Ngưỡng thay đổi Tại thời điểm coacute sự cố

mất maacutet ngưỡng được cagravei giaacute trị bằng frac12 của CongWin ngay trước đoacute

Transport Layer 3-94

Tinh chế nhận biết mất maacutet

Sau 3 ACK trugraveng lặp CongWin sẽ giảm 12 kiacutech thước cửa sổ

tăng tuyến tiacutenh nhưng sau sự cố

timeout CongWin thay giaacute trị

bằng 1 MSS kiacutech thước cửa sổ

tăng cấp lũy thừa khi đến một ngưỡng

thigrave tăng tuyến tiacutenh

3 ACK trugraveng nhau chỉ ra khả năng truyền của mạng timeout chỉ thị ldquonhiều cảnh baacuteordquo về tigravenh huống tắc nghẽn

Nguyecircn lyacute

Transport Layer 3-95

Tổng kết TCP điều khiển tắc nghẽn

Khi CongWin dưới Threshold becircn gửi đang trong giai đoạn khởi động chậm kiacutech thước cửa sổ tăng nhanh theo cấp lũy thừa

Khi CongWin trecircn Threshold becircn gửi đang trong giai đoạn traacutenh tắc nghẽn kiacutech thước cửa sổ tăng nhanh theo cấp tuyến tiacutenh

Khi coacute 3 ACK trugraveng lặp xảy ra Threshold = CongWin2 vagrave CongWin = Threshold

Khi timeout xảy ra Threshold = CongWin2 vagrave CongWin = 1 MSS

Transport Layer 3-96

TCP điều khiển tắc nghẽn becircn gửi

Trạng thaacutei Sự kiện TCP becircn gửi hagravenh động Diễn giải

Slow Start (SS)-Khởi động chậm

ACK baacuteo nhận cho dữ liệu chưa ACK trước đoacute

CongWin = CongWin + MSS If (CongWin gt Threshold) cagravei đặt trạng thaacutei ldquoTraacutenh tắc nghẽnrdquo

Hậu quả lagravem tăng gấp đocirci CongWin mỗi RTT

CongestionAvoidance (CA) ndashTraacutenh tắc nghẽn

ACK baacuteo nhận cho dữ liệu chưa ACK trước đoacute

CongWin = CongWin+MSS (MSSCongWin)

Additive tăng lecircn lagravem tăng CongWin lecircn 1 MSS mỗi RTT

SS hoặc CA Sự cố mất maacutet xảy ra khi thấy coacute 3 ACK trugraveng lặp

Threshold = CongWin2 CongWin = Thresholdcagravei đặt trạng thaacutei ldquoTraacutenh tắc nghẽnrdquo

Khocirci phục nhanh hiện thực giảm xuống multiplicative CongWin sẽ khocircng giảm xuống dưới 1 MSS

SS hoặc CA Timeout Threshold = CongWin2 CongWin = 1 MSScagravei đặt trạng thaacutei ldquoKhởi động chậmrdquo

Vagraveo chế độ ldquoKhởi động chậmrdquo

SS hoặc CA ACK trugraveng lặp

Đếm ACK tăng lecircn cho đoạn vừa được ACK

CongWin vagrave Threshold khocircng thay đổi

Transport Layer 3-97

TCP throughput

Throughout trung bigravenh của TCP biểu diễn qua kiacutech thước của sổ vagrave RTT Bỏ qua trạng thaacutei ldquoKhởi động chậmrdquo

Cho W lagrave kiacutech thước cửa sổ khi coacute mất maacutet xảy ra

Khi kiacutech thước cửa sổ = W lưu lượng = WRTT

Chỉ ngay sau khi mất maacutet cửa sổ giảm xuống = W2 lưu lượng = W2RTT

throughout trung bigravenh 075 WRTT

Transport Layer 3-98

TCP tương lai

Viacute dụ caacutec đoạn dagravei 1500 byte RTT 100ms lưu lượng 10 Gbps

Kiacutech thước cửa sổ yecircu cầu W = 83333 đoạn trecircn đường truyền

Lưu lượng trong caacutec trường hợp mất maacutet

L = 210-10

Phiecircn bản mới của TCP dagravenh cho nhu cầu tốc độ cao

LRTT

MSS221

Transport Layer 3-99

Mục tiecircu nếu K phiecircn lagravem việc TCP chia sẻ kết nối cổ chai của băng thocircng lagrave R mỗi phiecircn coacute tốc độ trung bigravenh lagrave RK

TCP kết nối 1

router cổ chaikhả năng R

TCP kết nối 2

TCP tiacutenh cocircng bằng

Transport Layer 3-100

Tại sao phải TCP cocircng bằng

2 phiecircn lagravem việc cạnh tranh nhau Additive tăng lưu lượng tăng multiplicative giảm lưu lượng tương xứng

R

R

chia sẻ băng thocircng bằng nhau

Connection 1 throughputConnect

ion 2

th

roughput

traacutenh tắc nghẽn additive tăng lecircnmất maacutet giảm cửa sổ bằng 12

traacutenh tắc nghẽn additive tăng lecircnmất maacutet giảm cửa sổ bằng 12

Transport Layer 3-101

TCP tiacutenh cocircng bằng (tt)

Tiacutenh cocircng bằng amp UDP nhiều ứng dụng

thường khocircng dugraveng TCP khocircng muốn tốc độ bị

điều tiết do điều khiển tắc nghẽn

Thay bằng dugraveng UDP truyền audiovideo với

tốc độ ổn định chịu được mất maacutet

Nghiecircn cứu giao thức thacircn thiện với TCP

Tiacutenh cocircng bằng amp caacutec kết nối TCP song song

khocircng coacute gigrave ngăn cản việc ứng dụng mở caacutec kết nối song song giữa 2 host

Trigravenh duyệt Web lagravem giống như thế

Viacute dụ tốc độ R hỗ trợ 9 kết nối ứng dụng mới yecircu cầu 1

TCP coacute tốc độ R10 ứng dụng mới yecircu cầu 11

TCP coacute tốc độ R2

Transport Layer 3-102

Mocirc higravenh trễ

Hỏi Mất bao lacircu để nhận 1 đối tượng từ Web server sau khi gửi yecircu cầu

Bỏ qua tắc nghẽn trễ bị ảnh hưởng bởi

thiết lập kết nối TCP trễ truyền dữ liệu khởi động chậm

Notation caacutec giả định Giả sử một kết nối giữa

client vagrave server coacute tốc độ R

S MSS (bits) O kiacutech thước đối tượng

(bits) khocircng truyền lại (khocircng

mất maacutet khocircng hỏng)

Kiacutech thước cửa sổ Giả định 1 cửa sổ tắc

nghẽn cố định coacute W đoạn Sau đoacute cửa sổ thay đổi

mocirc higravenh khởi động chậm

Transport Layer 3-103

Cửa sổ tắc nghẽn cố định (1)

Trường hợp đầu tiecircnWSR gt RTT + SR cho

đoạn đầu tiecircn trong cửa sổ trả về trước khi cửa sổ dữ liệu gửi ACK

trễ = 2RTT + OR

Transport Layer 3-104

Cửa sổ tắc nghẽn cố định (2)

Trường hợp thứ hai WSR lt RTT + SR sent

chờ cho ACK sau khi gửi dữ liệu

trễ = 2RTT + OR+ (K-1)[SR + RTT - WSR]

Transport Layer 3-105

TCP Mocirc higravenh trễ Khởi động chậm (1)

Bacircy giờ giả sử kiacutech thước cửa sổ tăng lecircn tugravey theo quaacute trigravenh khởi động chậm

Độ trễ của một đối tượng sẽ lagrave

R

S

R

SRTTP

R

ORTTLatency P )12(2

trong đoacute P lagrave số lần TCP rảnh ở tại server

1min KQP

- trong đoacute Q lagrave số lần server rảnh nếu đối tượng đatilde khởi tạo kiacutech thước

- vagrave K lagrave số lượng cửa sổ bao trugravem đối tượng

Transport Layer 3-106

TCP Mocirc higravenh trễ Khởi động chậm (2)

RTT

initia te TCPconnection

requestobject

first w indow= S R

second w indow= 2S R

third w indow= 4S R

fourth w indow= 8S R

com pletetransm issionobject

delivered

tim e atc lient

tim e atserver

Viacute dụbull OS = 15 đoạnbull K = 4 cửa sổbull Q = 2bull P = minK-1Q = 2

Server rảnh P=2 lần

Caacutec thagravenh phần trễbull 2 RTT dagravenh cho thiết lập kết nối vagrave yecircu cầubull OR để truyền đối tượngbullthời gian server rảnh bởi vigrave khởi động chậm

Server rảnh P = minK-1Q lần

Transport Layer 3-107

TCP Mocirc higravenh trễ(3)

R

S

R

SRTTPRTT

R

O

R

SRTT

R

SRTT

R

O

idleTimeRTTR

O

P

kP

k

P

pp

)12(][2

]2[2

2delay

1

1

1

th window after the timeidle 2 1 kR

SRTT

R

S k

ementacknowledg receivesserver until

segment send tostartsserver when from time RTTR

S

window kth the transmit totime2 1

R

Sk

RTT

initia te TCPconnection

requestobject

first w indow= S R

second w indow= 2S R

third w indow= 4S R

fourth w indow= 8S R

com pletetransm issionobject

delivered

tim e atc lient

tim e atserver

Transport Layer 3-108

TCP Mocirc higravenh trễ (4)

)1(log

)1(logmin

12min

222min

222min

2

2

110

110

S

OS

Okk

S

Ok

SOk

OSSSkK

k

k

k

caacutech tiacutenh toaacuten Q tương tự (xem HW)

K = số lượng cửa sổ bao trugravem đối tượngLagravem thế nagraveo tiacutenh được K

Transport Layer 3-109

HTTP Mocirc higravenh Giả sử trang Web chứa

1 trang HTML (kiacutech thước O bits) M higravenh ảnh (mỗi caacutei kiacutech thướcO bits)

HTTP khocircng bền vững M+1 TCP kết nối Thời gian đaacutep ứng = (M+1)OR + (M+1)2RTT + tổng số thời

gian rảnh HTTP bền vững

2 RTT để yecircu cầu vagrave nhận file HTML 1 RTT để yecircu cầu vagrave nhận M higravenh ảnh Thời gian đaacutep ứng = (M+1)OR + 3RTT + tổng số thời gian

rảnh HTTP khocircng bền vững với X kết nối song song

Giả sử MX lagrave số nguyecircn 1 TCP kết nối cho file MX thiết lập caacutec kết nối song song cho caacutec higravenh ảnh Thời gian đaacutep ứng = (M+1)OR + (MX + 1)2RTT + tổng số

thời gian rảnh

Transport Layer 3-110

02468

101214161820

28Kbps

100Kbps

1Mbps

10Mbps

non-persistent

persistent

parallel non-persistent

HTTP thời gian đaacutep ứng (giacircy)RTT = 100 msec O = 5 Kbytes M=10 vagrave X=5

Với băng thocircng thấp thời gian kết nối amp đaacutep ứng trội hơn thời gian truyền

Caacutec kết nối bền vững chỉ cho sự cải thiện khocircng đaacuteng kể trecircn caacutec kết nối song song

Transport Layer 3-111

0

10

20

30

40

50

60

70

28Kbps

100Kbps

1Mbps

10Mbps

non-persistent

persistent

parallel non-persistent

HTTP thời gian đaacutep ứng (giacircy)

RTT =1 sec O = 5 Kbytes M=10 and X=5

Với RTT lớn hơn thời gian đaacutep ứng trội hơn thời gian trễ chờ thiết lập kết nốiTCP amp khởi động chậm Caacutec kết nối bền vững bacircy giờ cho thấy cải thiện rotilde rệt đặc biệtvới caacutec mạng băng thocircng cao

Transport Layer 3-112

Chương 3 Tổng kết caacutec nguyecircn lyacute của caacutec

dịch vụ lớp transport multiplexing

demultiplexing truyền dữ liệu tin cậy điều khiển luồng điều khiển tắc nghẽn

khởi tạo vagrave hiện thực trong Internet UDP TCP

Tiếp theo nghiecircn cứu xong

caacutec vấn đề ldquongoagravei biecircnrdquo (caacutec lớp application transport)

chuẩn bị vagraveo phần ldquolotildeirdquo của mạng

  • Slide 1
  • Chương 3 Lớp Transport
  • Chương 3 Nội dung trigravenh bagravey
  • Caacutec dịch vụ vagrave giao thức Transport
  • Lớp Transport với lớp network
  • Caacutec giao thức lớp transport trecircn Internet
  • Slide 7
  • Multiplexingdemultiplexing
  • Demultiplexing lagravem việc như thế nagraveo
  • Demultiplexing khocircng kết nối
  • Demultiplexing khocircng kết nối (tiếp)
  • Demultiplexing hướng kết nối
  • Demultiplexing hướng kết nối (tiếp)
  • Demultiplexing hướng kết nối Threaded Web Server
  • Slide 15
  • UDP User Datagram Protocol [RFC 768]
  • UDP (tt)
  • UDP checksum
  • Viacute dụ Checksum
  • Slide 20
  • Caacutec nguyecircn lyacute truyền dữ liệu tin cậy
  • Slide 22
  • Slide 23
  • Truyền dữ liệu tin cậy
  • Slide 25
  • Rdt10 truyền dữ liệu tin cậy trecircn 1 kecircnh truyền tin cậy
  • Rdt20 kecircnh với caacutec lỗi
  • rdt20 đặc tả FSM
  • rdt20 hoạt động khi khocircng lỗi
  • rdt20 hoạt động khi coacute lỗi
  • rdt20 coacute lỗ hổng nghiecircm trọng
  • rdt21 người gửi quản lyacute caacutec ACKNAK bị hỏng
  • Slide 33
  • rdt21 thảo luận
  • rdt22 một giao thức khocircng cần NAK
  • rdt22 gửi nhận caacutec mảnh
  • rdt30 caacutec kecircnh với lỗi vagrave mất maacutet
  • rdt30 gửi
  • hagravenh động của rdt30
  • Slide 40
  • Hiệu suất của rdt30
  • rdt30 hoạt động dừng-vagrave-chờ
  • Caacutec giao thức Pipelined
  • Pipelining độ khả dụng tăng
  • Go-Back-N
  • GBN becircn gửi mở rộng FSM
  • GBN becircn nhận mở rộng FSM
  • GBN hoạt động
  • Lặp coacute lựa chọn
  • Lặp coacute lựa chọn caacutec cửa sổ gửi nhận
  • Slide 51
  • Hoạt động của lặp coacute lựa chọn
  • Lặp coacute lựa chọn tigravenh trạng khoacute giải quyết
  • Slide 54
  • TCP Tổng quan RFCs 793 1122 1323 2018 2581
  • TCP cấu truacutec đoạn
  • Caacutec số thứ tự TCP vagrave ACK
  • TCP Round Trip Time vagraveTimeout
  • TCP Round Trip Time vagrave Timeout
  • Viacute dụ đaacutenh giaacute RTT
  • Slide 61
  • TCP truyền dữ liệu tin cậy
  • TCP caacutec sự kiện
  • TCP becircn gửi (đơn giản)
  • TCP caacutec tigravenh huống truyền lại
  • TCP caacutec tigravenh huống truyền lại (tt)
  • TCP sinh ra ACK [RFC 1122 RFC 2581]
  • Truyền lại nhanh
  • Giải thuật truyền lại nhanh
  • Slide 70
  • TCP điều khiển luồng
  • TCP điều khiển luồng caacutech lagravem
  • Slide 73
  • TCP quản lyacute kết nối
  • TCP quản lyacute kết nối (tt)
  • Slide 76
  • Slide 77
  • Slide 78
  • Caacutec nguyecircn lyacute điều khiển tắc nghẽn
  • Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 1
  • Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 2
  • Slide 82
  • Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 3
  • Slide 84
  • Caacutec caacutech tiếp cận đối với điều khiển tắc nghẽn
  • Viacute dụ điều khiển tắc nghẽn ATM ABR
  • Slide 87
  • Slide 88
  • TCP điều khiển tắc nghẽn additive tăng lecircn multiplicative giảm xuống
  • TCP điều khiển tắc nghẽn chi tiết
  • TCP khởi động chậm
  • TCP khởi động chậm (tt)
  • Tinh chế
  • Tinh chế nhận biết mất maacutet
  • Tổng kết TCP điều khiển tắc nghẽn
  • TCP điều khiển tắc nghẽn becircn gửi
  • TCP throughput
  • TCP tương lai
  • TCP tiacutenh cocircng bằng
  • Tại sao phải TCP cocircng bằng
  • TCP tiacutenh cocircng bằng (tt)
  • Mocirc higravenh trễ
  • Cửa sổ tắc nghẽn cố định (1)
  • Cửa sổ tắc nghẽn cố định (2)
  • TCP Mocirc higravenh trễ Khởi động chậm (1)
  • TCP Mocirc higravenh trễ Khởi động chậm (2)
  • TCP Mocirc higravenh trễ(3)
  • TCP Mocirc higravenh trễ (4)
  • HTTP Mocirc higravenh
  • Slide 110
  • Slide 111
  • Chương 3 Tổng kết

Transport Layer 3-44

Pipelining độ khả dụng tăng

goacutei đầu tiecircn đatilde truyền t = 0

sender receiver

RTT

goacutei cuối cugraveng đatilde truyền t = L R

goacutei đầu tiecircn đatilde đếngoacutei cuối cugraveng đatilde đến gửi ACK

ACK đến gửi goacuteikế tiếp t = RTT + L R

bit cuối của goacutei thứ 2 đến gửi ACKbit cuối của goacutei thứ 3 đến gửi ACK

U sender

= 024

30008 = 00008

microseconds

3 L R

RTT + L R =

Độ khả dụng tăng lecircngấp 3 lần

Transport Layer 3-45

Go-Back-NBecircn gửi k-bit số thứ tự trong header của goacutei ldquocửa sổrdquo tăng lecircn đến N cho pheacutep gửi caacutec goacutei liecircn tục khocircng cần ACK

ACK(n) ACKs tất cả caacutec goacutei đến chứa số thứ tự n ndash ldquoACK tiacutech lũyrdquo coacute thể nhận caacutec ACK trugraveng lặp (xem becircn nhận)

định thigrave cho mỗi goacutei trecircn đường truyền timeout(n) gửi lại goacutei n vagrave tất cả caacutec goacutei coacute số thứ tự cao

hơn trong cửa sổ

Transport Layer 3-46

GBN becircn gửi mở rộng FSM

chờ start_timerudt_send(sndpkt[base])udt_send(sndpkt[base+1])hellipudt_send(sndpkt[nextseqnum-1])

timeout

rdt_send(data)

if (nextseqnum lt base+N) sndpkt[nextseqnum] = make_pkt(nextseqnumdatachksum) udt_send(sndpkt[nextseqnum]) if (base == nextseqnum) start_timer nextseqnum++ else refuse_data(data)

base = getacknum(rcvpkt)+1If (base == nextseqnum) stop_timer else start_timer

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)

base=1nextseqnum=1

rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)

Transport Layer 3-47

GBN becircn nhận mở rộng FSM

ACK-duy nhất luocircn luocircn gửi ACK cho goacutei đatilde nhận đuacuteng với số thứ tự xếp hạng cao nhất coacute thể sinh ra caacutec ACK trugraveng nhau chỉ cần nhớ expectedseqnum

goacutei khocircng theo thứ tự hủy -gt khocircng nhận vagraveo bộ đệm gửi lại ACK với số thứ tự xếp hạng cao nhất

chờ

udt_send(sndpkt)

default

rdt_rcv(rcvpkt) ampamp notcurrupt(rcvpkt) ampamp hasseqnum(rcvpktexpectedseqnum)

extract(rcvpktdata)deliver_data(data)sndpkt = make_pkt(expectedseqnumACKchksum)udt_send(sndpkt)expectedseqnum++

expectedseqnum=1sndpkt = make_pkt(expectedseqnumACKchksum)

Transport Layer 3-48

GBN hoạt động

Transport Layer 3-49

Lặp coacute lựa chọn

becircn nhận thocircng baacuteo đatilde nhận đuacuteng tất cả từng goacutei một đệm (buffer) caacutec goacutei nếu cần thiết

becircn gửi chỉ gửi lại caacutec goacutei nagraveo khocircng nhận được ACK becircn gửi định thigrave đối với mỗi goacutei khocircng gửi ACK

cửa sổ becircn gửi N số thứ tự liecircn tục hạn chế số thứ tự caacutec goacutei khocircng gửi ACK

Transport Layer 3-50

Lặp coacute lựa chọn caacutec cửa sổ gửi nhận

Transport Layer 3-51

Lặp coacute lựa chọn

dữ liệu từ lớp trecircn nếu số thứ tự kế tiếp sẵn

sagraveng trong cửa sổ gửi goacutei

timeout(n) gửi lại goacutei n taacutei khởi tạo

bộ định thigrave

ACK(n) trong [sendbasesendbase+N]

đaacutenh dấu goacutei n lagrave đatilde nhận nếu goacutei khocircng ACK coacute n

nhỏ nhất dịch chuyển cửa sổ base đến số thứ tự khocircng ACK kế tiếp

Gửigoacutei n trong [rcvbase

rcvbase+N-1]

gửi ACK(n) khocircng thứ tự đệm

(buffer) coacute thứ tự truyền (cũng

truyền caacutec goacutei đatilde đệm coacute thứ tự) dịch chuyển cửa sổ đến goacutei chưa nhận kế tiếp

goacutei n trong [rcvbase-Nrcvbase-1]

ACK(n)

ngược lại lờ đi

Nhận

Transport Layer 3-52

Hoạt động của lặp coacute lựa chọn

Transport Layer 3-53

Lặp coacute lựa chọntigravenh trạng khoacute giải quyếtViacute dụ Số thứ tự 0 1 2 3 Kiacutech thước cửa sổ = 3

becircn nhận khocircng thấy sự khaacutec nhau trong 2 tigravenh huống

chuyển khocircng chiacutenh xaacutec dữ liệu trugraveng lặp như dữ liệu mới trong (a)

Hỏi quan hệ giữa datildey số thứ tự vagrave kiacutech thước cửa sổ

Transport Layer 3-54

Chương 3 Nội dung trigravenh bagravey

31 Caacutec dịch vụ lớp Transport

32 Multiplexing vagrave demultiplexing

33 Vận chuyển khocircng kết nối UDP

34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy

35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối

36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn

37 Điều khiển tắc nghẽn TCP

Transport Layer 3-55

TCP Tổng quan RFCs 793 1122 1323 2018 2581

dữ liệu full duplex luồng dữ liệu đi 2 chiều

trong cugraveng một kết nối MSS maximum

segment size ndash kiacutech thước đoạn tối đa

hướng kết nối bắt tay (trao đổi caacutec

thocircng điệp điều khiển) trạng thaacutei becircn gửi becircn nhận trước khi trao đổi dữ liệu

điều khiển luồng becircn gửi sẽ khocircng lấn aacutet

becircn nhận

point-to-point một becircn gửi một becircn

nhận tin cậy dograveng byte coacute

thứ tự khocircng ldquoranh giới thocircng

điệprdquo kecircnh liecircn lạc

TCP điều khiển luồng vagrave tắc nghẽn thiết lập kiacutech thước cửa sổ

caacutec bộ đệm gửi amp nhận

socketdoor

T C Psend buffer

T C Preceive buffer

socketdoor

segm ent

applicationwrites data

applicationreads data

Transport Layer 3-56

TCP cấu truacutec đoạn

port nguồn port điacutech

32 bits

dữ liệu ứng dụng(độ dagravei thay đổi)

số thứ tự

số ACKcửa sổ nhận

con trỏ URGchecksum

FSRPAUheadlen

notused

Tugravey chọn (độ dagravei thay đổi)

URG dữ liệu khẩn cấp(thường khocircng dugraveng)

ACK ACK hợp lệ

PSH push data now(thường khocircng dugraveng)

RST SYN FINthiết lập kết nối

(caacutec lệnh thiết lậpchia nhỏ)

số byte becircn nhận sẵn sagraveng chấp nhận

đếm bởi số bytecủa dữ liệu

Internetchecksum

(giống UDP)

Transport Layer 3-57

Caacutec số thứ tự TCP vagrave ACKCaacutec số thứ tự

dograveng byte ldquođaacutenh sốrdquo byte đầu tiecircn trong dữ liệu của đoạn

caacutec ACK số thứ tự của byte

kế tiếp được chờ đợi từ phiacutea becircn kia

ACK tiacutech lũyHỏi lagravem thế nagraveo becircn

nhận quản lyacute caacutec đoạn khocircng thứ tự Trả lời TCP khocircng

đề cập tugravey thuộc người hiện thực

Host A Host B

Seq=42 ACK=79 data = lsquoCrsquo

Seq=79 ACK=43 data = lsquoCrsquo

Seq=43 ACK=80

UsernhậplsquoCrsquo

host ACKsnhận phản hồi

lsquoCrsquo

host ACKsbaacuteo nhận

lsquoCrsquo phản hồingược lại lsquoCrsquo

timetigravenh huống telnet đơn giản

Transport Layer 3-58

TCP Round Trip Time vagraveTimeout

Hỏi Lagravem thế nagraveo để thiết lập giaacute trị TCP timeout

dagravei hơn RTT khaacutec với RTT

quaacute ngắn timeout sớm truyền lại khocircng

cần thiết quaacute dagravei phản ứng

chậm đối với việc mất maacutet goacutei

Hỏi Lagravem thế nagraveo để thiết lập RTT

SampleRTT thời gian được đo từ khi truyền đoạn đến khi baacuteo nhận ACK lờ đi việc truyền lại

SampleRTT sẽ thay đổi muốn ước lượng RTT ldquomượt hơnrdquo tiacutenh trung bigravenh một số giaacute

trị đo được gần đoacute khocircng chỉ SampleRTT hiện tại

Transport Layer 3-59

TCP Round Trip Time vagrave Timeout

EstimatedRTT = (1- )EstimatedRTT + SampleRTT

giaacute trị đặc trưng = 0125

Transport Layer 3-60

Viacute dụ đaacutenh giaacute RTTRTT gaiacsumassedu to fantasiaeurecomfr

100

150

200

250

300

350

1 8 15 22 29 36 43 50 57 64 71 78 85 92 99 106

time (seconnds)

RTT

(mill

isec

onds

)

SampleRTT Estimated RTT

Transport Layer 3-61

TCP Round Trip Time vagrave Timeout

Thiết lập timeout EstimtedRTT cộng ldquohệ số dự trữ an toagravenrdquo

sự biến thiecircn lớn trong EstimatedRTT -gt hệ số dự trữ an toagraven lớn hơn ước lượng đầu tiecircn về sự biến thiecircn của SampleRTT từ EstimatedRTT

TimeoutInterval = EstimatedRTT + 4DevRTT

DevRTT = (1-)DevRTT + |SampleRTT-EstimatedRTT|

(tiecircu biểu = 025)

Sau đoacute thiết lập timeout interval

Transport Layer 3-62

TCP truyền dữ liệu tin cậy

TCP tạo dịch vụ rdt trecircn dịch vụ khocircng tin cậy IP

caacutec đoạn Pipelined caacutec ACK tiacutech lũy TCP dugraveng bộ định thigrave

truyền lại đơn

Truyền lại được kiacutech hoạt bởi caacutec sự kiện timeout caacutec ack trugraveng lặp

luacutec đầu khảo saacutet caacutec becircn gửi TCP đơn giản lờ đi caacutec ack trugraveng lặp lờ đi điều khiển luồng

điều khiển tắc nghẽn

Transport Layer 3-63

TCP caacutec sự kiệndữ liệu đatilde nhận từ ứng

dụng tạo đoạn với số thứ

tự của noacute số thứ tự lagrave số theo

byte dữ liệu đầu tiecircn khởi động bộ định thigrave

nếu chưa chạy khoảng thời gian hết

hạn TimeOutInterval

timeout gửi lại đoạn nagraveo gacircy

ra timeout khởi động lại bộ định

thigrave Ack đatilde nhận

cập nhật caacutei gigrave sẽ được ACK

khởi động bộ định thigrave nếu coacute caacutec đoạn cograven chờ

Transport Layer 3-64

TCP becircn gửi(đơn giản)

NextSeqNum = InitialSeqNum SendBase = InitialSeqNum

loop (forever) switch(event)

event data received from application above create TCP segment with sequence number NextSeqNum if (timer currently not running) start timer pass segment to IP NextSeqNum = NextSeqNum + length(data)

event timer timeout retransmit not-yet-acknowledged segment with smallest sequence number start timer

event ACK received with ACK field value of y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer

end of loop forever

Chuacute thiacutechbull SendBase-1 byte vừa được ACK tiacutech lũy Viacute dụbull SendBase-1 = 71y= 73 vigrave thế becircn nhận muốn 73+ y gt SendBase vigrave thế dữ liệu mới được chấp nhận

Transport Layer 3-65

TCP caacutec tigravenh huống truyền lại

Host A

Seq=100 20 bytes data

ACK=100

timetimeout sớm

Host B

Seq=92 8 bytes data

ACK=120

Seq=92 8 bytes data

Seq=

92

tim

eout

ACK=120

Host A

Seq=92 8 bytes data

ACK=100

loss

tim

eout

tigravenh huống mất ACK

Host B

X

Seq=92 8 bytes data

ACK=100

time

Seq=

92

tim

eout

SendBase= 100

SendBase= 120

SendBase= 120

Sendbase= 100

Transport Layer 3-66

TCP caacutec tigravenh huống truyền lại (tt)Host A

Seq=92 8 bytes data

ACK=100

loss

tim

eout

Cumulative ACK scenario

Host B

X

Seq=100 20 bytes data

ACK=120

time

SendBase= 120

Transport Layer 3-67

TCP sinh ra ACK [RFC 1122 RFC 2581]

Sự kiện tại becircn nhận

Đoạn đến với đuacuteng số thứ tự mong muốn Tất cả dữ liệu đếnđatilde được ACK

Đoạn đến với đuacuteng số thứ tự mong muốn Một đoạn khaacutec đangchờ ACK

Caacutec đoạn đến khocircng thứ tựlớn hơn số thứ tự đoạn mong muốnCoacute khoảng trống

Đoạn đếnlấp đầy từng phần hoặc toagraven bộkhoảng trống

TCP becircn nhận hagravenh động

ACK trễ Chờ đến 500mscho đoạn kế tiếp Nếu khocircng coacute đoạnkế tiếp gửi ACK

Gửi ngay một ACK tiacutech lũy chấp nhậncho cả caacutec đoạn theo thứ tự

Gửi ngay ACK trugraveng lặp chỉ thị số thứ tựđoạn của byte kế tiếp đang mong chờ

Gửi ngay ACK với điều kiện lagrave đoạnbắt đầu ngay điểm coacute khoảng trống

Transport Layer 3-68

Truyền lại nhanh

Chu kỳ Time-out thường tương đối dagravei độ trễ dagravei trước khi gửi

lại goacutei đatilde mất

Xaacutec nhận caacutec đoạn đatilde mất bằng caacutec ACK trugraveng lặp becircn gửi thường gửi

nhiều đoạn song song Nếu đoạn bị mất sẽ

xảy ra tigravenh trạng giống như nhiều ACK trugraveng nhau

Nếu becircn gửi nhận 3 ACK của cugraveng một dữ liệu noacute cho lagrave đoạn sau dữ liệu đatilde ACK bị mất Truyền lại nhanh gửi

lại đoạn trước khi bộ định thigrave hết hạn

Transport Layer 3-69

sự kiện ACK đatilde nhận với trường lagrave y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer else increment count of dup ACKs received for y if (count of dup ACKs received for y = 3) resend segment with sequence number y

Giải thuật truyền lại nhanh

một ACK trugraveng lặp cho đoạn đatilde được ACK

Truyền lại nhanh

Transport Layer 3-70

Chương 3 Nội dung trigravenh bagravey

31 Caacutec dịch vụ lớp Transport

32 Multiplexing vagrave demultiplexing

33 Vận chuyển khocircng kết nối UDP

34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy

35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối

36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn

37 Điều khiển tắc nghẽn TCP

Transport Layer 3-71

TCP điều khiển luồng

becircn nhận của kết nối TCP coacute một bộ đệm nhận

dịch vụ so trugraveng tốc độ so trugraveng tốc độ gửi với tốc độ nhận của ứng dụng

tiến trigravenh ứng dụng coacute thể chậm tại luacutec đọc bộ đệm

becircn gửi sẽ khocircng lagravem tragraven bộ đệm vigrave truyền quaacute nhiều vagrave

quaacute nhanh

điều khiển luồng

Transport Layer 3-72

TCP điều khiển luồng caacutech lagravem

(Giả sử becircn nhận TCP loại bỏ caacutec đoạn khocircng coacute thứ tự)

dự phograveng trong bộ đệm= RcvWindow

= RcvBuffer-[LastByteRcvd - LastByteRead]

Becircn nhận thocircng baacuteo khoảng dự trữ nhờ giaacute trị RcvWindow trong caacutec đoạn

Becircn gửi hạn chế dữ liệu khocircng được ACK vagraveo RcvWindow bảo đảm bộ đệm nhận

khocircng tragraven

Transport Layer 3-73

Chương 3 Nội dung trigravenh bagravey

31 Caacutec dịch vụ lớp Transport

32 Multiplexing vagrave demultiplexing

33 Vận chuyển khocircng kết nối UDP

34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy

35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối

36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn

37 Điều khiển tắc nghẽn TCP

Transport Layer 3-74

TCP quản lyacute kết nối

Chuacute yacute Becircn gửi vagrave becircn nhận TCP thiết lập ldquokết nốirdquo trước khi trao đổi dữ liệu

khởi tạo caacutec biến TCP caacutec số thứ tự đoạn thocircng tin caacutec bộ đệm điều

khiển luồng (như RcvWindow)

client người khởi xướng kết nối

Socket clientSocket = new Socket(hostnameport

number) server được tiếp xuacutec bởi

client Socket connectionSocket =

welcomeSocketaccept()

3 phương phaacutep bắt tay

Bước 1 client host gửi đoạnTCP SYN đến server xaacutec định số thứ tự khởi đầu khocircng phải dữ liệu

Bước 2 server host nhận SYN trả lời với đoạn SYNACK

server cấp phaacutet caacutec bộ đệm

xaacutec định số thứ tự khởi đầuBước 3 client nhận SYNACK trả

lời với đoạn ACK (coacute thể chứa dữ liệu)

Transport Layer 3-75

TCP quản lyacute kết nối (tt)

Đoacuteng một kết nối

client đoacuteng socket clientSocketclose()

Bước 1 client gửi đoạn điều khiển TCP FIN đến server

Bước 2 server nhận FIN trả lời với ACK Đoacuteng kết nối gửi FIN

client

FIN

server

ACK

ACK

FIN

đoacuteng

đoacuteng

đatilde đoacutengthời g

ian c

hờ

Transport Layer 3-76

TCP quản lyacute kết nối (tt)

Bước 3 client nhận FIN trả lời với ACK

Trong khoảng ldquothời gian chờrdquo ndash sẽ phản hồi với ACK để nhận caacutec FIN

Bước 4 server nhận ACK Kết nối đatilde đoacuteng

Chuacute yacute với một sửa đổi nhỏ coacute thể quản lyacute nhiều FIN đồng thời

client

FIN

server

ACK

ACK

FIN

đang đoacuteng

đang đoacuteng

đatilde đoacuteng

thời g

ian c

hờ

đatilde đoacuteng

Transport Layer 3-77

TCP quản lyacute kết nối (tt)

chu kỳ sống củaTCP client

chu kỳ sống củaTCP server

Transport Layer 3-78

Chương 3 Nội dung trigravenh bagravey

31 Caacutec dịch vụ lớp Transport

32 Multiplexing vagrave demultiplexing

33 Vận chuyển khocircng kết nối UDP

34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy

35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối

36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn

37 Điều khiển tắc nghẽn TCP

Transport Layer 3-79

Caacutec nguyecircn lyacute điều khiển tắc nghẽn

Tắc nghẽn ldquoquaacute nhiều nguồn gửi quaacute nhanh vagrave quaacute nhiều

dữ liệu đến mạngrdquo khaacutec với điều khiển luồng caacutec biểu hiện

caacutec goacutei bị mất (tragraven bộ đệm tại caacutec router) caacutec độ trễ quaacute dagravei (xếp hagraveng trong bộ đệm

của router) lagrave 1 trong 10 vấn đề nan giải nhất

Transport Layer 3-80

Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 1

2 gửi 2 nhận 1 router caacutec bộ

đệm khocircng giới hạn

khocircng coacute truyền lại

caacutec độ trễ lớn hơn khi tắc nghẽn

năng suất coacute thể đạt tối đa

unlimited shared output link buffers

Host Ain original data

Host B

out

Transport Layer 3-81

Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 2

1 router caacutec bộ đệm coacute giới hạn becircn gửi truyền lại caacutec goacutei đatilde mất

chia sẻ vocirc hạncaacutec bộ đệm ouput

Host A in dữ liệu gốc

Host B

out

in dữ liệu gốc cugraveng với dữ liệu truyền lại

Transport Layer 3-82

Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 2 luocircn luocircn

truyền lại ldquohoagraven toagravenrdquo chỉ khi mất maacutet

truyền lại vigrave trễ (khocircng mất) lagravem cho lớn hơn với cugraveng

in

out

=

in

out

gt

in

out

ldquocaacutec chi phiacuterdquo của tắc nghẽn nhiều việc (truyền lại) caacutec truyền lại khocircng cần thiết liecircn kết nhiều bản sao của

goacutei

R2

R2in

ou

t

b

R2

R2in

ou

t

a

R2

R2in

ou

t

c

R4

R3

Transport Layer 3-83

Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 3 4 người gửi caacutec đường qua nhiều hop timeouttruyền lại

in

Hỏi điều gigrave xảy ra nếu vagrave tăng lecircn

in

chia sẻ vocirc hạncaacutec bộ đệm ouput

Host Ain dữ liệu gốc

Host B

out

in dữ liệu gốc cugraveng với dữ liệu truyền lại

Transport Layer 3-84

Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 3

ldquochi phiacuterdquo khaacutec của tắc nghẽn khi caacutec goacutei bị bỏ bất kỳ ldquokhả năng truyền

upstream dugraveng cho goacutei đoacute sẽ bị latildeng phiacuterdquo

Host A

Host B

o

u

t

Transport Layer 3-85

Caacutec caacutech tiếp cận đối với điều khiển tắc nghẽn

điều khiển tắc nghẽn end-end

khocircng coacute phản hồi rotilde ragraveng từ mạng

tắc nghẽn được suy ra từ việc quan saacutet caacutec hệ thống đầu cuối coacute mất maacutet trễ

tiếp cận được quản lyacute bởi TCP

điều khiển tắc nghẽn coacute sự hỗ trợ của mạng

caacutec router cung cấp phản hồi về caacutec hệ thống đầu cuối 1 bit duy nhất chỉ thị

tắc nghẽn (SNA DECbit TCPIP ECN ATM)

tốc độ sẽ gửi được xaacutec định rotilde ragraveng

2 caacutech

Transport Layer 3-86

Viacute dụ điều khiển tắc nghẽn ATM ABR

ABR tốc độ bit sẵn sagraveng

ldquodịch vụ mềm dẻordquo nếu đường gửi ldquochưa

hếtrdquo becircn gửi sẽ dugraveng

băng thocircng sẵn sagraveng nếu đường gửi tắc

nghẽn becircn gửi điều tiết với

tốc độ tối thiểu

RM (resource management)

gửi bởi becircn gửi rải raacutec với caacutec ocirc dữ liệu

caacutec bit trong ocirc thiết lập bởi caacutec switch bit NI khocircng tăng tốc độ

(tắc nghẽn nhẹ) bit CI tắc nghẽn rotilde rệt

Caacutec ocirc RM được trả về becircn gửi từ becircn nhận với nguyecircn vẹn caacutec bit

Transport Layer 3-87

Viacute dụ điều khiển tắc nghẽn ATM ABR

trường 2-byte ER trong ocirc RM switch đatilde tắc nghẽn coacute thể coacute giaacute trị ER thấp hơn trong ocirc tốc độ gửi do đoacute coacute thể được hỗ trợ tối đa trecircn đường

EFCI bit trong caacutec ocirc dữ liệu được cagravei giaacute trị 1 trong switch đatilde tắc nghẽn nếu ocirc dữ liệu đứng trước ocirc RM coacute cagravei EFCI becircn gửi sẽ cagravei

bit CI trong ocirc RM trả về

Transport Layer 3-88

Chương 3 Nội dung trigravenh bagravey

31 Caacutec dịch vụ lớp Transport

32 Multiplexing vagrave demultiplexing

33 Vận chuyển khocircng kết nối UDP

34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy

35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối

36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn

37 Điều khiển tắc nghẽn TCP

Transport Layer 3-89

TCP điều khiển tắc nghẽn additive tăng lecircn multiplicative giảm xuống

8 Kbytes

16 Kbytes

24 Kbytes

time

congestionwindow

Caacutech tiếp cận tăng tốc độ truyền (kiacutech thước cửa sổ) tigravem khả năng băng thocircng coacute thể cho đến khi coacute mất maacutet xảy ra additive tăng lecircn tăng CongWin bởi 1 MSS

mỗi RTT cho đến khi coacute mất maacutet xảy ra multiplicative giảm xuống bỏ CongWin trong

nửa giai đoạn sau khi mất maacutet

timekiacutech

thư

ớc

cửa

sổ

tắc

nghẽ

n

Tigravem kiếm băng thocircng

Transport Layer 3-90

TCP điều khiển tắc nghẽn chi tiết

becircn gửi hạn chế việc truyền LastByteSent-LastByteAcked

CongWin Cocircng thức

CongWin thay đổi chức năng lagrave nhận biết tắc nghẽn trecircn mạng

Lagravem thế nagraveo becircn gửi nhận biết tắc nghẽn

mất maacutet xảy ra = timeout hoặc 3 ack trugraveng lặp

becircn gửi giảm tốc độ (CongWin) sau khi mất maacutet xảy ra

3 cơ chế AIMD khởi động chậm thận trọng sau khi coacute

caacutec sự kiện timeout

tốc độ = CongWin

RTT Bytess

Transport Layer 3-91

TCP khởi động chậm

Khi kết nối bắt đầu CongWin = 1 MSS Viacute dụ MSS = 500 bytes

amp RTT = 200 ms tốc độ khởi tạo = 20

kbps

băng thocircng sẵn sagraveng coacute thể gtgt MSSRTT mong muốn nhanh

choacuteng tăng tốc lecircn tốc độ coacute thể đaacutep ứng

Khi kết nối bắt đầu tăng tốc lecircn rất nhanh cho đến khi sự cố mất maacutet xảy ra đầu tiecircn

Transport Layer 3-92

TCP khởi động chậm (tt)

Khi kết nối bắt đầu tăng tốc lecircn rất nhanh cho đến khi sự cố mất maacutet xảy ra đầu tiecircn nhacircn đocirci CongWin mỗi

RTT hoagraven thagravenh nhờ tăng CongWin ứng với mỗi ACK đatilde nhận

Tổng kết tốc độ khởi đầu lagrave chậm nhưng sau đoacute tăng tốc rất nhanh

Host A

1 đoạn

RTT

Host B

thời gian

2 đoạn

4 đoạn

Transport Layer 3-93

Tinh chếHỏi Khi nagraveo việc tăng

tốc trở thagravenh tuyến tiacutenh

Trả lời Khi CongWin đạt đến 12 giaacute trị của noacute trước khi timeout

Hiện thực Ngưỡng thay đổi Tại thời điểm coacute sự cố

mất maacutet ngưỡng được cagravei giaacute trị bằng frac12 của CongWin ngay trước đoacute

Transport Layer 3-94

Tinh chế nhận biết mất maacutet

Sau 3 ACK trugraveng lặp CongWin sẽ giảm 12 kiacutech thước cửa sổ

tăng tuyến tiacutenh nhưng sau sự cố

timeout CongWin thay giaacute trị

bằng 1 MSS kiacutech thước cửa sổ

tăng cấp lũy thừa khi đến một ngưỡng

thigrave tăng tuyến tiacutenh

3 ACK trugraveng nhau chỉ ra khả năng truyền của mạng timeout chỉ thị ldquonhiều cảnh baacuteordquo về tigravenh huống tắc nghẽn

Nguyecircn lyacute

Transport Layer 3-95

Tổng kết TCP điều khiển tắc nghẽn

Khi CongWin dưới Threshold becircn gửi đang trong giai đoạn khởi động chậm kiacutech thước cửa sổ tăng nhanh theo cấp lũy thừa

Khi CongWin trecircn Threshold becircn gửi đang trong giai đoạn traacutenh tắc nghẽn kiacutech thước cửa sổ tăng nhanh theo cấp tuyến tiacutenh

Khi coacute 3 ACK trugraveng lặp xảy ra Threshold = CongWin2 vagrave CongWin = Threshold

Khi timeout xảy ra Threshold = CongWin2 vagrave CongWin = 1 MSS

Transport Layer 3-96

TCP điều khiển tắc nghẽn becircn gửi

Trạng thaacutei Sự kiện TCP becircn gửi hagravenh động Diễn giải

Slow Start (SS)-Khởi động chậm

ACK baacuteo nhận cho dữ liệu chưa ACK trước đoacute

CongWin = CongWin + MSS If (CongWin gt Threshold) cagravei đặt trạng thaacutei ldquoTraacutenh tắc nghẽnrdquo

Hậu quả lagravem tăng gấp đocirci CongWin mỗi RTT

CongestionAvoidance (CA) ndashTraacutenh tắc nghẽn

ACK baacuteo nhận cho dữ liệu chưa ACK trước đoacute

CongWin = CongWin+MSS (MSSCongWin)

Additive tăng lecircn lagravem tăng CongWin lecircn 1 MSS mỗi RTT

SS hoặc CA Sự cố mất maacutet xảy ra khi thấy coacute 3 ACK trugraveng lặp

Threshold = CongWin2 CongWin = Thresholdcagravei đặt trạng thaacutei ldquoTraacutenh tắc nghẽnrdquo

Khocirci phục nhanh hiện thực giảm xuống multiplicative CongWin sẽ khocircng giảm xuống dưới 1 MSS

SS hoặc CA Timeout Threshold = CongWin2 CongWin = 1 MSScagravei đặt trạng thaacutei ldquoKhởi động chậmrdquo

Vagraveo chế độ ldquoKhởi động chậmrdquo

SS hoặc CA ACK trugraveng lặp

Đếm ACK tăng lecircn cho đoạn vừa được ACK

CongWin vagrave Threshold khocircng thay đổi

Transport Layer 3-97

TCP throughput

Throughout trung bigravenh của TCP biểu diễn qua kiacutech thước của sổ vagrave RTT Bỏ qua trạng thaacutei ldquoKhởi động chậmrdquo

Cho W lagrave kiacutech thước cửa sổ khi coacute mất maacutet xảy ra

Khi kiacutech thước cửa sổ = W lưu lượng = WRTT

Chỉ ngay sau khi mất maacutet cửa sổ giảm xuống = W2 lưu lượng = W2RTT

throughout trung bigravenh 075 WRTT

Transport Layer 3-98

TCP tương lai

Viacute dụ caacutec đoạn dagravei 1500 byte RTT 100ms lưu lượng 10 Gbps

Kiacutech thước cửa sổ yecircu cầu W = 83333 đoạn trecircn đường truyền

Lưu lượng trong caacutec trường hợp mất maacutet

L = 210-10

Phiecircn bản mới của TCP dagravenh cho nhu cầu tốc độ cao

LRTT

MSS221

Transport Layer 3-99

Mục tiecircu nếu K phiecircn lagravem việc TCP chia sẻ kết nối cổ chai của băng thocircng lagrave R mỗi phiecircn coacute tốc độ trung bigravenh lagrave RK

TCP kết nối 1

router cổ chaikhả năng R

TCP kết nối 2

TCP tiacutenh cocircng bằng

Transport Layer 3-100

Tại sao phải TCP cocircng bằng

2 phiecircn lagravem việc cạnh tranh nhau Additive tăng lưu lượng tăng multiplicative giảm lưu lượng tương xứng

R

R

chia sẻ băng thocircng bằng nhau

Connection 1 throughputConnect

ion 2

th

roughput

traacutenh tắc nghẽn additive tăng lecircnmất maacutet giảm cửa sổ bằng 12

traacutenh tắc nghẽn additive tăng lecircnmất maacutet giảm cửa sổ bằng 12

Transport Layer 3-101

TCP tiacutenh cocircng bằng (tt)

Tiacutenh cocircng bằng amp UDP nhiều ứng dụng

thường khocircng dugraveng TCP khocircng muốn tốc độ bị

điều tiết do điều khiển tắc nghẽn

Thay bằng dugraveng UDP truyền audiovideo với

tốc độ ổn định chịu được mất maacutet

Nghiecircn cứu giao thức thacircn thiện với TCP

Tiacutenh cocircng bằng amp caacutec kết nối TCP song song

khocircng coacute gigrave ngăn cản việc ứng dụng mở caacutec kết nối song song giữa 2 host

Trigravenh duyệt Web lagravem giống như thế

Viacute dụ tốc độ R hỗ trợ 9 kết nối ứng dụng mới yecircu cầu 1

TCP coacute tốc độ R10 ứng dụng mới yecircu cầu 11

TCP coacute tốc độ R2

Transport Layer 3-102

Mocirc higravenh trễ

Hỏi Mất bao lacircu để nhận 1 đối tượng từ Web server sau khi gửi yecircu cầu

Bỏ qua tắc nghẽn trễ bị ảnh hưởng bởi

thiết lập kết nối TCP trễ truyền dữ liệu khởi động chậm

Notation caacutec giả định Giả sử một kết nối giữa

client vagrave server coacute tốc độ R

S MSS (bits) O kiacutech thước đối tượng

(bits) khocircng truyền lại (khocircng

mất maacutet khocircng hỏng)

Kiacutech thước cửa sổ Giả định 1 cửa sổ tắc

nghẽn cố định coacute W đoạn Sau đoacute cửa sổ thay đổi

mocirc higravenh khởi động chậm

Transport Layer 3-103

Cửa sổ tắc nghẽn cố định (1)

Trường hợp đầu tiecircnWSR gt RTT + SR cho

đoạn đầu tiecircn trong cửa sổ trả về trước khi cửa sổ dữ liệu gửi ACK

trễ = 2RTT + OR

Transport Layer 3-104

Cửa sổ tắc nghẽn cố định (2)

Trường hợp thứ hai WSR lt RTT + SR sent

chờ cho ACK sau khi gửi dữ liệu

trễ = 2RTT + OR+ (K-1)[SR + RTT - WSR]

Transport Layer 3-105

TCP Mocirc higravenh trễ Khởi động chậm (1)

Bacircy giờ giả sử kiacutech thước cửa sổ tăng lecircn tugravey theo quaacute trigravenh khởi động chậm

Độ trễ của một đối tượng sẽ lagrave

R

S

R

SRTTP

R

ORTTLatency P )12(2

trong đoacute P lagrave số lần TCP rảnh ở tại server

1min KQP

- trong đoacute Q lagrave số lần server rảnh nếu đối tượng đatilde khởi tạo kiacutech thước

- vagrave K lagrave số lượng cửa sổ bao trugravem đối tượng

Transport Layer 3-106

TCP Mocirc higravenh trễ Khởi động chậm (2)

RTT

initia te TCPconnection

requestobject

first w indow= S R

second w indow= 2S R

third w indow= 4S R

fourth w indow= 8S R

com pletetransm issionobject

delivered

tim e atc lient

tim e atserver

Viacute dụbull OS = 15 đoạnbull K = 4 cửa sổbull Q = 2bull P = minK-1Q = 2

Server rảnh P=2 lần

Caacutec thagravenh phần trễbull 2 RTT dagravenh cho thiết lập kết nối vagrave yecircu cầubull OR để truyền đối tượngbullthời gian server rảnh bởi vigrave khởi động chậm

Server rảnh P = minK-1Q lần

Transport Layer 3-107

TCP Mocirc higravenh trễ(3)

R

S

R

SRTTPRTT

R

O

R

SRTT

R

SRTT

R

O

idleTimeRTTR

O

P

kP

k

P

pp

)12(][2

]2[2

2delay

1

1

1

th window after the timeidle 2 1 kR

SRTT

R

S k

ementacknowledg receivesserver until

segment send tostartsserver when from time RTTR

S

window kth the transmit totime2 1

R

Sk

RTT

initia te TCPconnection

requestobject

first w indow= S R

second w indow= 2S R

third w indow= 4S R

fourth w indow= 8S R

com pletetransm issionobject

delivered

tim e atc lient

tim e atserver

Transport Layer 3-108

TCP Mocirc higravenh trễ (4)

)1(log

)1(logmin

12min

222min

222min

2

2

110

110

S

OS

Okk

S

Ok

SOk

OSSSkK

k

k

k

caacutech tiacutenh toaacuten Q tương tự (xem HW)

K = số lượng cửa sổ bao trugravem đối tượngLagravem thế nagraveo tiacutenh được K

Transport Layer 3-109

HTTP Mocirc higravenh Giả sử trang Web chứa

1 trang HTML (kiacutech thước O bits) M higravenh ảnh (mỗi caacutei kiacutech thướcO bits)

HTTP khocircng bền vững M+1 TCP kết nối Thời gian đaacutep ứng = (M+1)OR + (M+1)2RTT + tổng số thời

gian rảnh HTTP bền vững

2 RTT để yecircu cầu vagrave nhận file HTML 1 RTT để yecircu cầu vagrave nhận M higravenh ảnh Thời gian đaacutep ứng = (M+1)OR + 3RTT + tổng số thời gian

rảnh HTTP khocircng bền vững với X kết nối song song

Giả sử MX lagrave số nguyecircn 1 TCP kết nối cho file MX thiết lập caacutec kết nối song song cho caacutec higravenh ảnh Thời gian đaacutep ứng = (M+1)OR + (MX + 1)2RTT + tổng số

thời gian rảnh

Transport Layer 3-110

02468

101214161820

28Kbps

100Kbps

1Mbps

10Mbps

non-persistent

persistent

parallel non-persistent

HTTP thời gian đaacutep ứng (giacircy)RTT = 100 msec O = 5 Kbytes M=10 vagrave X=5

Với băng thocircng thấp thời gian kết nối amp đaacutep ứng trội hơn thời gian truyền

Caacutec kết nối bền vững chỉ cho sự cải thiện khocircng đaacuteng kể trecircn caacutec kết nối song song

Transport Layer 3-111

0

10

20

30

40

50

60

70

28Kbps

100Kbps

1Mbps

10Mbps

non-persistent

persistent

parallel non-persistent

HTTP thời gian đaacutep ứng (giacircy)

RTT =1 sec O = 5 Kbytes M=10 and X=5

Với RTT lớn hơn thời gian đaacutep ứng trội hơn thời gian trễ chờ thiết lập kết nốiTCP amp khởi động chậm Caacutec kết nối bền vững bacircy giờ cho thấy cải thiện rotilde rệt đặc biệtvới caacutec mạng băng thocircng cao

Transport Layer 3-112

Chương 3 Tổng kết caacutec nguyecircn lyacute của caacutec

dịch vụ lớp transport multiplexing

demultiplexing truyền dữ liệu tin cậy điều khiển luồng điều khiển tắc nghẽn

khởi tạo vagrave hiện thực trong Internet UDP TCP

Tiếp theo nghiecircn cứu xong

caacutec vấn đề ldquongoagravei biecircnrdquo (caacutec lớp application transport)

chuẩn bị vagraveo phần ldquolotildeirdquo của mạng

  • Slide 1
  • Chương 3 Lớp Transport
  • Chương 3 Nội dung trigravenh bagravey
  • Caacutec dịch vụ vagrave giao thức Transport
  • Lớp Transport với lớp network
  • Caacutec giao thức lớp transport trecircn Internet
  • Slide 7
  • Multiplexingdemultiplexing
  • Demultiplexing lagravem việc như thế nagraveo
  • Demultiplexing khocircng kết nối
  • Demultiplexing khocircng kết nối (tiếp)
  • Demultiplexing hướng kết nối
  • Demultiplexing hướng kết nối (tiếp)
  • Demultiplexing hướng kết nối Threaded Web Server
  • Slide 15
  • UDP User Datagram Protocol [RFC 768]
  • UDP (tt)
  • UDP checksum
  • Viacute dụ Checksum
  • Slide 20
  • Caacutec nguyecircn lyacute truyền dữ liệu tin cậy
  • Slide 22
  • Slide 23
  • Truyền dữ liệu tin cậy
  • Slide 25
  • Rdt10 truyền dữ liệu tin cậy trecircn 1 kecircnh truyền tin cậy
  • Rdt20 kecircnh với caacutec lỗi
  • rdt20 đặc tả FSM
  • rdt20 hoạt động khi khocircng lỗi
  • rdt20 hoạt động khi coacute lỗi
  • rdt20 coacute lỗ hổng nghiecircm trọng
  • rdt21 người gửi quản lyacute caacutec ACKNAK bị hỏng
  • Slide 33
  • rdt21 thảo luận
  • rdt22 một giao thức khocircng cần NAK
  • rdt22 gửi nhận caacutec mảnh
  • rdt30 caacutec kecircnh với lỗi vagrave mất maacutet
  • rdt30 gửi
  • hagravenh động của rdt30
  • Slide 40
  • Hiệu suất của rdt30
  • rdt30 hoạt động dừng-vagrave-chờ
  • Caacutec giao thức Pipelined
  • Pipelining độ khả dụng tăng
  • Go-Back-N
  • GBN becircn gửi mở rộng FSM
  • GBN becircn nhận mở rộng FSM
  • GBN hoạt động
  • Lặp coacute lựa chọn
  • Lặp coacute lựa chọn caacutec cửa sổ gửi nhận
  • Slide 51
  • Hoạt động của lặp coacute lựa chọn
  • Lặp coacute lựa chọn tigravenh trạng khoacute giải quyết
  • Slide 54
  • TCP Tổng quan RFCs 793 1122 1323 2018 2581
  • TCP cấu truacutec đoạn
  • Caacutec số thứ tự TCP vagrave ACK
  • TCP Round Trip Time vagraveTimeout
  • TCP Round Trip Time vagrave Timeout
  • Viacute dụ đaacutenh giaacute RTT
  • Slide 61
  • TCP truyền dữ liệu tin cậy
  • TCP caacutec sự kiện
  • TCP becircn gửi (đơn giản)
  • TCP caacutec tigravenh huống truyền lại
  • TCP caacutec tigravenh huống truyền lại (tt)
  • TCP sinh ra ACK [RFC 1122 RFC 2581]
  • Truyền lại nhanh
  • Giải thuật truyền lại nhanh
  • Slide 70
  • TCP điều khiển luồng
  • TCP điều khiển luồng caacutech lagravem
  • Slide 73
  • TCP quản lyacute kết nối
  • TCP quản lyacute kết nối (tt)
  • Slide 76
  • Slide 77
  • Slide 78
  • Caacutec nguyecircn lyacute điều khiển tắc nghẽn
  • Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 1
  • Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 2
  • Slide 82
  • Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 3
  • Slide 84
  • Caacutec caacutech tiếp cận đối với điều khiển tắc nghẽn
  • Viacute dụ điều khiển tắc nghẽn ATM ABR
  • Slide 87
  • Slide 88
  • TCP điều khiển tắc nghẽn additive tăng lecircn multiplicative giảm xuống
  • TCP điều khiển tắc nghẽn chi tiết
  • TCP khởi động chậm
  • TCP khởi động chậm (tt)
  • Tinh chế
  • Tinh chế nhận biết mất maacutet
  • Tổng kết TCP điều khiển tắc nghẽn
  • TCP điều khiển tắc nghẽn becircn gửi
  • TCP throughput
  • TCP tương lai
  • TCP tiacutenh cocircng bằng
  • Tại sao phải TCP cocircng bằng
  • TCP tiacutenh cocircng bằng (tt)
  • Mocirc higravenh trễ
  • Cửa sổ tắc nghẽn cố định (1)
  • Cửa sổ tắc nghẽn cố định (2)
  • TCP Mocirc higravenh trễ Khởi động chậm (1)
  • TCP Mocirc higravenh trễ Khởi động chậm (2)
  • TCP Mocirc higravenh trễ(3)
  • TCP Mocirc higravenh trễ (4)
  • HTTP Mocirc higravenh
  • Slide 110
  • Slide 111
  • Chương 3 Tổng kết

Transport Layer 3-45

Go-Back-NBecircn gửi k-bit số thứ tự trong header của goacutei ldquocửa sổrdquo tăng lecircn đến N cho pheacutep gửi caacutec goacutei liecircn tục khocircng cần ACK

ACK(n) ACKs tất cả caacutec goacutei đến chứa số thứ tự n ndash ldquoACK tiacutech lũyrdquo coacute thể nhận caacutec ACK trugraveng lặp (xem becircn nhận)

định thigrave cho mỗi goacutei trecircn đường truyền timeout(n) gửi lại goacutei n vagrave tất cả caacutec goacutei coacute số thứ tự cao

hơn trong cửa sổ

Transport Layer 3-46

GBN becircn gửi mở rộng FSM

chờ start_timerudt_send(sndpkt[base])udt_send(sndpkt[base+1])hellipudt_send(sndpkt[nextseqnum-1])

timeout

rdt_send(data)

if (nextseqnum lt base+N) sndpkt[nextseqnum] = make_pkt(nextseqnumdatachksum) udt_send(sndpkt[nextseqnum]) if (base == nextseqnum) start_timer nextseqnum++ else refuse_data(data)

base = getacknum(rcvpkt)+1If (base == nextseqnum) stop_timer else start_timer

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)

base=1nextseqnum=1

rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)

Transport Layer 3-47

GBN becircn nhận mở rộng FSM

ACK-duy nhất luocircn luocircn gửi ACK cho goacutei đatilde nhận đuacuteng với số thứ tự xếp hạng cao nhất coacute thể sinh ra caacutec ACK trugraveng nhau chỉ cần nhớ expectedseqnum

goacutei khocircng theo thứ tự hủy -gt khocircng nhận vagraveo bộ đệm gửi lại ACK với số thứ tự xếp hạng cao nhất

chờ

udt_send(sndpkt)

default

rdt_rcv(rcvpkt) ampamp notcurrupt(rcvpkt) ampamp hasseqnum(rcvpktexpectedseqnum)

extract(rcvpktdata)deliver_data(data)sndpkt = make_pkt(expectedseqnumACKchksum)udt_send(sndpkt)expectedseqnum++

expectedseqnum=1sndpkt = make_pkt(expectedseqnumACKchksum)

Transport Layer 3-48

GBN hoạt động

Transport Layer 3-49

Lặp coacute lựa chọn

becircn nhận thocircng baacuteo đatilde nhận đuacuteng tất cả từng goacutei một đệm (buffer) caacutec goacutei nếu cần thiết

becircn gửi chỉ gửi lại caacutec goacutei nagraveo khocircng nhận được ACK becircn gửi định thigrave đối với mỗi goacutei khocircng gửi ACK

cửa sổ becircn gửi N số thứ tự liecircn tục hạn chế số thứ tự caacutec goacutei khocircng gửi ACK

Transport Layer 3-50

Lặp coacute lựa chọn caacutec cửa sổ gửi nhận

Transport Layer 3-51

Lặp coacute lựa chọn

dữ liệu từ lớp trecircn nếu số thứ tự kế tiếp sẵn

sagraveng trong cửa sổ gửi goacutei

timeout(n) gửi lại goacutei n taacutei khởi tạo

bộ định thigrave

ACK(n) trong [sendbasesendbase+N]

đaacutenh dấu goacutei n lagrave đatilde nhận nếu goacutei khocircng ACK coacute n

nhỏ nhất dịch chuyển cửa sổ base đến số thứ tự khocircng ACK kế tiếp

Gửigoacutei n trong [rcvbase

rcvbase+N-1]

gửi ACK(n) khocircng thứ tự đệm

(buffer) coacute thứ tự truyền (cũng

truyền caacutec goacutei đatilde đệm coacute thứ tự) dịch chuyển cửa sổ đến goacutei chưa nhận kế tiếp

goacutei n trong [rcvbase-Nrcvbase-1]

ACK(n)

ngược lại lờ đi

Nhận

Transport Layer 3-52

Hoạt động của lặp coacute lựa chọn

Transport Layer 3-53

Lặp coacute lựa chọntigravenh trạng khoacute giải quyếtViacute dụ Số thứ tự 0 1 2 3 Kiacutech thước cửa sổ = 3

becircn nhận khocircng thấy sự khaacutec nhau trong 2 tigravenh huống

chuyển khocircng chiacutenh xaacutec dữ liệu trugraveng lặp như dữ liệu mới trong (a)

Hỏi quan hệ giữa datildey số thứ tự vagrave kiacutech thước cửa sổ

Transport Layer 3-54

Chương 3 Nội dung trigravenh bagravey

31 Caacutec dịch vụ lớp Transport

32 Multiplexing vagrave demultiplexing

33 Vận chuyển khocircng kết nối UDP

34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy

35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối

36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn

37 Điều khiển tắc nghẽn TCP

Transport Layer 3-55

TCP Tổng quan RFCs 793 1122 1323 2018 2581

dữ liệu full duplex luồng dữ liệu đi 2 chiều

trong cugraveng một kết nối MSS maximum

segment size ndash kiacutech thước đoạn tối đa

hướng kết nối bắt tay (trao đổi caacutec

thocircng điệp điều khiển) trạng thaacutei becircn gửi becircn nhận trước khi trao đổi dữ liệu

điều khiển luồng becircn gửi sẽ khocircng lấn aacutet

becircn nhận

point-to-point một becircn gửi một becircn

nhận tin cậy dograveng byte coacute

thứ tự khocircng ldquoranh giới thocircng

điệprdquo kecircnh liecircn lạc

TCP điều khiển luồng vagrave tắc nghẽn thiết lập kiacutech thước cửa sổ

caacutec bộ đệm gửi amp nhận

socketdoor

T C Psend buffer

T C Preceive buffer

socketdoor

segm ent

applicationwrites data

applicationreads data

Transport Layer 3-56

TCP cấu truacutec đoạn

port nguồn port điacutech

32 bits

dữ liệu ứng dụng(độ dagravei thay đổi)

số thứ tự

số ACKcửa sổ nhận

con trỏ URGchecksum

FSRPAUheadlen

notused

Tugravey chọn (độ dagravei thay đổi)

URG dữ liệu khẩn cấp(thường khocircng dugraveng)

ACK ACK hợp lệ

PSH push data now(thường khocircng dugraveng)

RST SYN FINthiết lập kết nối

(caacutec lệnh thiết lậpchia nhỏ)

số byte becircn nhận sẵn sagraveng chấp nhận

đếm bởi số bytecủa dữ liệu

Internetchecksum

(giống UDP)

Transport Layer 3-57

Caacutec số thứ tự TCP vagrave ACKCaacutec số thứ tự

dograveng byte ldquođaacutenh sốrdquo byte đầu tiecircn trong dữ liệu của đoạn

caacutec ACK số thứ tự của byte

kế tiếp được chờ đợi từ phiacutea becircn kia

ACK tiacutech lũyHỏi lagravem thế nagraveo becircn

nhận quản lyacute caacutec đoạn khocircng thứ tự Trả lời TCP khocircng

đề cập tugravey thuộc người hiện thực

Host A Host B

Seq=42 ACK=79 data = lsquoCrsquo

Seq=79 ACK=43 data = lsquoCrsquo

Seq=43 ACK=80

UsernhậplsquoCrsquo

host ACKsnhận phản hồi

lsquoCrsquo

host ACKsbaacuteo nhận

lsquoCrsquo phản hồingược lại lsquoCrsquo

timetigravenh huống telnet đơn giản

Transport Layer 3-58

TCP Round Trip Time vagraveTimeout

Hỏi Lagravem thế nagraveo để thiết lập giaacute trị TCP timeout

dagravei hơn RTT khaacutec với RTT

quaacute ngắn timeout sớm truyền lại khocircng

cần thiết quaacute dagravei phản ứng

chậm đối với việc mất maacutet goacutei

Hỏi Lagravem thế nagraveo để thiết lập RTT

SampleRTT thời gian được đo từ khi truyền đoạn đến khi baacuteo nhận ACK lờ đi việc truyền lại

SampleRTT sẽ thay đổi muốn ước lượng RTT ldquomượt hơnrdquo tiacutenh trung bigravenh một số giaacute

trị đo được gần đoacute khocircng chỉ SampleRTT hiện tại

Transport Layer 3-59

TCP Round Trip Time vagrave Timeout

EstimatedRTT = (1- )EstimatedRTT + SampleRTT

giaacute trị đặc trưng = 0125

Transport Layer 3-60

Viacute dụ đaacutenh giaacute RTTRTT gaiacsumassedu to fantasiaeurecomfr

100

150

200

250

300

350

1 8 15 22 29 36 43 50 57 64 71 78 85 92 99 106

time (seconnds)

RTT

(mill

isec

onds

)

SampleRTT Estimated RTT

Transport Layer 3-61

TCP Round Trip Time vagrave Timeout

Thiết lập timeout EstimtedRTT cộng ldquohệ số dự trữ an toagravenrdquo

sự biến thiecircn lớn trong EstimatedRTT -gt hệ số dự trữ an toagraven lớn hơn ước lượng đầu tiecircn về sự biến thiecircn của SampleRTT từ EstimatedRTT

TimeoutInterval = EstimatedRTT + 4DevRTT

DevRTT = (1-)DevRTT + |SampleRTT-EstimatedRTT|

(tiecircu biểu = 025)

Sau đoacute thiết lập timeout interval

Transport Layer 3-62

TCP truyền dữ liệu tin cậy

TCP tạo dịch vụ rdt trecircn dịch vụ khocircng tin cậy IP

caacutec đoạn Pipelined caacutec ACK tiacutech lũy TCP dugraveng bộ định thigrave

truyền lại đơn

Truyền lại được kiacutech hoạt bởi caacutec sự kiện timeout caacutec ack trugraveng lặp

luacutec đầu khảo saacutet caacutec becircn gửi TCP đơn giản lờ đi caacutec ack trugraveng lặp lờ đi điều khiển luồng

điều khiển tắc nghẽn

Transport Layer 3-63

TCP caacutec sự kiệndữ liệu đatilde nhận từ ứng

dụng tạo đoạn với số thứ

tự của noacute số thứ tự lagrave số theo

byte dữ liệu đầu tiecircn khởi động bộ định thigrave

nếu chưa chạy khoảng thời gian hết

hạn TimeOutInterval

timeout gửi lại đoạn nagraveo gacircy

ra timeout khởi động lại bộ định

thigrave Ack đatilde nhận

cập nhật caacutei gigrave sẽ được ACK

khởi động bộ định thigrave nếu coacute caacutec đoạn cograven chờ

Transport Layer 3-64

TCP becircn gửi(đơn giản)

NextSeqNum = InitialSeqNum SendBase = InitialSeqNum

loop (forever) switch(event)

event data received from application above create TCP segment with sequence number NextSeqNum if (timer currently not running) start timer pass segment to IP NextSeqNum = NextSeqNum + length(data)

event timer timeout retransmit not-yet-acknowledged segment with smallest sequence number start timer

event ACK received with ACK field value of y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer

end of loop forever

Chuacute thiacutechbull SendBase-1 byte vừa được ACK tiacutech lũy Viacute dụbull SendBase-1 = 71y= 73 vigrave thế becircn nhận muốn 73+ y gt SendBase vigrave thế dữ liệu mới được chấp nhận

Transport Layer 3-65

TCP caacutec tigravenh huống truyền lại

Host A

Seq=100 20 bytes data

ACK=100

timetimeout sớm

Host B

Seq=92 8 bytes data

ACK=120

Seq=92 8 bytes data

Seq=

92

tim

eout

ACK=120

Host A

Seq=92 8 bytes data

ACK=100

loss

tim

eout

tigravenh huống mất ACK

Host B

X

Seq=92 8 bytes data

ACK=100

time

Seq=

92

tim

eout

SendBase= 100

SendBase= 120

SendBase= 120

Sendbase= 100

Transport Layer 3-66

TCP caacutec tigravenh huống truyền lại (tt)Host A

Seq=92 8 bytes data

ACK=100

loss

tim

eout

Cumulative ACK scenario

Host B

X

Seq=100 20 bytes data

ACK=120

time

SendBase= 120

Transport Layer 3-67

TCP sinh ra ACK [RFC 1122 RFC 2581]

Sự kiện tại becircn nhận

Đoạn đến với đuacuteng số thứ tự mong muốn Tất cả dữ liệu đếnđatilde được ACK

Đoạn đến với đuacuteng số thứ tự mong muốn Một đoạn khaacutec đangchờ ACK

Caacutec đoạn đến khocircng thứ tựlớn hơn số thứ tự đoạn mong muốnCoacute khoảng trống

Đoạn đếnlấp đầy từng phần hoặc toagraven bộkhoảng trống

TCP becircn nhận hagravenh động

ACK trễ Chờ đến 500mscho đoạn kế tiếp Nếu khocircng coacute đoạnkế tiếp gửi ACK

Gửi ngay một ACK tiacutech lũy chấp nhậncho cả caacutec đoạn theo thứ tự

Gửi ngay ACK trugraveng lặp chỉ thị số thứ tựđoạn của byte kế tiếp đang mong chờ

Gửi ngay ACK với điều kiện lagrave đoạnbắt đầu ngay điểm coacute khoảng trống

Transport Layer 3-68

Truyền lại nhanh

Chu kỳ Time-out thường tương đối dagravei độ trễ dagravei trước khi gửi

lại goacutei đatilde mất

Xaacutec nhận caacutec đoạn đatilde mất bằng caacutec ACK trugraveng lặp becircn gửi thường gửi

nhiều đoạn song song Nếu đoạn bị mất sẽ

xảy ra tigravenh trạng giống như nhiều ACK trugraveng nhau

Nếu becircn gửi nhận 3 ACK của cugraveng một dữ liệu noacute cho lagrave đoạn sau dữ liệu đatilde ACK bị mất Truyền lại nhanh gửi

lại đoạn trước khi bộ định thigrave hết hạn

Transport Layer 3-69

sự kiện ACK đatilde nhận với trường lagrave y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer else increment count of dup ACKs received for y if (count of dup ACKs received for y = 3) resend segment with sequence number y

Giải thuật truyền lại nhanh

một ACK trugraveng lặp cho đoạn đatilde được ACK

Truyền lại nhanh

Transport Layer 3-70

Chương 3 Nội dung trigravenh bagravey

31 Caacutec dịch vụ lớp Transport

32 Multiplexing vagrave demultiplexing

33 Vận chuyển khocircng kết nối UDP

34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy

35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối

36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn

37 Điều khiển tắc nghẽn TCP

Transport Layer 3-71

TCP điều khiển luồng

becircn nhận của kết nối TCP coacute một bộ đệm nhận

dịch vụ so trugraveng tốc độ so trugraveng tốc độ gửi với tốc độ nhận của ứng dụng

tiến trigravenh ứng dụng coacute thể chậm tại luacutec đọc bộ đệm

becircn gửi sẽ khocircng lagravem tragraven bộ đệm vigrave truyền quaacute nhiều vagrave

quaacute nhanh

điều khiển luồng

Transport Layer 3-72

TCP điều khiển luồng caacutech lagravem

(Giả sử becircn nhận TCP loại bỏ caacutec đoạn khocircng coacute thứ tự)

dự phograveng trong bộ đệm= RcvWindow

= RcvBuffer-[LastByteRcvd - LastByteRead]

Becircn nhận thocircng baacuteo khoảng dự trữ nhờ giaacute trị RcvWindow trong caacutec đoạn

Becircn gửi hạn chế dữ liệu khocircng được ACK vagraveo RcvWindow bảo đảm bộ đệm nhận

khocircng tragraven

Transport Layer 3-73

Chương 3 Nội dung trigravenh bagravey

31 Caacutec dịch vụ lớp Transport

32 Multiplexing vagrave demultiplexing

33 Vận chuyển khocircng kết nối UDP

34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy

35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối

36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn

37 Điều khiển tắc nghẽn TCP

Transport Layer 3-74

TCP quản lyacute kết nối

Chuacute yacute Becircn gửi vagrave becircn nhận TCP thiết lập ldquokết nốirdquo trước khi trao đổi dữ liệu

khởi tạo caacutec biến TCP caacutec số thứ tự đoạn thocircng tin caacutec bộ đệm điều

khiển luồng (như RcvWindow)

client người khởi xướng kết nối

Socket clientSocket = new Socket(hostnameport

number) server được tiếp xuacutec bởi

client Socket connectionSocket =

welcomeSocketaccept()

3 phương phaacutep bắt tay

Bước 1 client host gửi đoạnTCP SYN đến server xaacutec định số thứ tự khởi đầu khocircng phải dữ liệu

Bước 2 server host nhận SYN trả lời với đoạn SYNACK

server cấp phaacutet caacutec bộ đệm

xaacutec định số thứ tự khởi đầuBước 3 client nhận SYNACK trả

lời với đoạn ACK (coacute thể chứa dữ liệu)

Transport Layer 3-75

TCP quản lyacute kết nối (tt)

Đoacuteng một kết nối

client đoacuteng socket clientSocketclose()

Bước 1 client gửi đoạn điều khiển TCP FIN đến server

Bước 2 server nhận FIN trả lời với ACK Đoacuteng kết nối gửi FIN

client

FIN

server

ACK

ACK

FIN

đoacuteng

đoacuteng

đatilde đoacutengthời g

ian c

hờ

Transport Layer 3-76

TCP quản lyacute kết nối (tt)

Bước 3 client nhận FIN trả lời với ACK

Trong khoảng ldquothời gian chờrdquo ndash sẽ phản hồi với ACK để nhận caacutec FIN

Bước 4 server nhận ACK Kết nối đatilde đoacuteng

Chuacute yacute với một sửa đổi nhỏ coacute thể quản lyacute nhiều FIN đồng thời

client

FIN

server

ACK

ACK

FIN

đang đoacuteng

đang đoacuteng

đatilde đoacuteng

thời g

ian c

hờ

đatilde đoacuteng

Transport Layer 3-77

TCP quản lyacute kết nối (tt)

chu kỳ sống củaTCP client

chu kỳ sống củaTCP server

Transport Layer 3-78

Chương 3 Nội dung trigravenh bagravey

31 Caacutec dịch vụ lớp Transport

32 Multiplexing vagrave demultiplexing

33 Vận chuyển khocircng kết nối UDP

34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy

35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối

36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn

37 Điều khiển tắc nghẽn TCP

Transport Layer 3-79

Caacutec nguyecircn lyacute điều khiển tắc nghẽn

Tắc nghẽn ldquoquaacute nhiều nguồn gửi quaacute nhanh vagrave quaacute nhiều

dữ liệu đến mạngrdquo khaacutec với điều khiển luồng caacutec biểu hiện

caacutec goacutei bị mất (tragraven bộ đệm tại caacutec router) caacutec độ trễ quaacute dagravei (xếp hagraveng trong bộ đệm

của router) lagrave 1 trong 10 vấn đề nan giải nhất

Transport Layer 3-80

Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 1

2 gửi 2 nhận 1 router caacutec bộ

đệm khocircng giới hạn

khocircng coacute truyền lại

caacutec độ trễ lớn hơn khi tắc nghẽn

năng suất coacute thể đạt tối đa

unlimited shared output link buffers

Host Ain original data

Host B

out

Transport Layer 3-81

Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 2

1 router caacutec bộ đệm coacute giới hạn becircn gửi truyền lại caacutec goacutei đatilde mất

chia sẻ vocirc hạncaacutec bộ đệm ouput

Host A in dữ liệu gốc

Host B

out

in dữ liệu gốc cugraveng với dữ liệu truyền lại

Transport Layer 3-82

Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 2 luocircn luocircn

truyền lại ldquohoagraven toagravenrdquo chỉ khi mất maacutet

truyền lại vigrave trễ (khocircng mất) lagravem cho lớn hơn với cugraveng

in

out

=

in

out

gt

in

out

ldquocaacutec chi phiacuterdquo của tắc nghẽn nhiều việc (truyền lại) caacutec truyền lại khocircng cần thiết liecircn kết nhiều bản sao của

goacutei

R2

R2in

ou

t

b

R2

R2in

ou

t

a

R2

R2in

ou

t

c

R4

R3

Transport Layer 3-83

Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 3 4 người gửi caacutec đường qua nhiều hop timeouttruyền lại

in

Hỏi điều gigrave xảy ra nếu vagrave tăng lecircn

in

chia sẻ vocirc hạncaacutec bộ đệm ouput

Host Ain dữ liệu gốc

Host B

out

in dữ liệu gốc cugraveng với dữ liệu truyền lại

Transport Layer 3-84

Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 3

ldquochi phiacuterdquo khaacutec của tắc nghẽn khi caacutec goacutei bị bỏ bất kỳ ldquokhả năng truyền

upstream dugraveng cho goacutei đoacute sẽ bị latildeng phiacuterdquo

Host A

Host B

o

u

t

Transport Layer 3-85

Caacutec caacutech tiếp cận đối với điều khiển tắc nghẽn

điều khiển tắc nghẽn end-end

khocircng coacute phản hồi rotilde ragraveng từ mạng

tắc nghẽn được suy ra từ việc quan saacutet caacutec hệ thống đầu cuối coacute mất maacutet trễ

tiếp cận được quản lyacute bởi TCP

điều khiển tắc nghẽn coacute sự hỗ trợ của mạng

caacutec router cung cấp phản hồi về caacutec hệ thống đầu cuối 1 bit duy nhất chỉ thị

tắc nghẽn (SNA DECbit TCPIP ECN ATM)

tốc độ sẽ gửi được xaacutec định rotilde ragraveng

2 caacutech

Transport Layer 3-86

Viacute dụ điều khiển tắc nghẽn ATM ABR

ABR tốc độ bit sẵn sagraveng

ldquodịch vụ mềm dẻordquo nếu đường gửi ldquochưa

hếtrdquo becircn gửi sẽ dugraveng

băng thocircng sẵn sagraveng nếu đường gửi tắc

nghẽn becircn gửi điều tiết với

tốc độ tối thiểu

RM (resource management)

gửi bởi becircn gửi rải raacutec với caacutec ocirc dữ liệu

caacutec bit trong ocirc thiết lập bởi caacutec switch bit NI khocircng tăng tốc độ

(tắc nghẽn nhẹ) bit CI tắc nghẽn rotilde rệt

Caacutec ocirc RM được trả về becircn gửi từ becircn nhận với nguyecircn vẹn caacutec bit

Transport Layer 3-87

Viacute dụ điều khiển tắc nghẽn ATM ABR

trường 2-byte ER trong ocirc RM switch đatilde tắc nghẽn coacute thể coacute giaacute trị ER thấp hơn trong ocirc tốc độ gửi do đoacute coacute thể được hỗ trợ tối đa trecircn đường

EFCI bit trong caacutec ocirc dữ liệu được cagravei giaacute trị 1 trong switch đatilde tắc nghẽn nếu ocirc dữ liệu đứng trước ocirc RM coacute cagravei EFCI becircn gửi sẽ cagravei

bit CI trong ocirc RM trả về

Transport Layer 3-88

Chương 3 Nội dung trigravenh bagravey

31 Caacutec dịch vụ lớp Transport

32 Multiplexing vagrave demultiplexing

33 Vận chuyển khocircng kết nối UDP

34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy

35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối

36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn

37 Điều khiển tắc nghẽn TCP

Transport Layer 3-89

TCP điều khiển tắc nghẽn additive tăng lecircn multiplicative giảm xuống

8 Kbytes

16 Kbytes

24 Kbytes

time

congestionwindow

Caacutech tiếp cận tăng tốc độ truyền (kiacutech thước cửa sổ) tigravem khả năng băng thocircng coacute thể cho đến khi coacute mất maacutet xảy ra additive tăng lecircn tăng CongWin bởi 1 MSS

mỗi RTT cho đến khi coacute mất maacutet xảy ra multiplicative giảm xuống bỏ CongWin trong

nửa giai đoạn sau khi mất maacutet

timekiacutech

thư

ớc

cửa

sổ

tắc

nghẽ

n

Tigravem kiếm băng thocircng

Transport Layer 3-90

TCP điều khiển tắc nghẽn chi tiết

becircn gửi hạn chế việc truyền LastByteSent-LastByteAcked

CongWin Cocircng thức

CongWin thay đổi chức năng lagrave nhận biết tắc nghẽn trecircn mạng

Lagravem thế nagraveo becircn gửi nhận biết tắc nghẽn

mất maacutet xảy ra = timeout hoặc 3 ack trugraveng lặp

becircn gửi giảm tốc độ (CongWin) sau khi mất maacutet xảy ra

3 cơ chế AIMD khởi động chậm thận trọng sau khi coacute

caacutec sự kiện timeout

tốc độ = CongWin

RTT Bytess

Transport Layer 3-91

TCP khởi động chậm

Khi kết nối bắt đầu CongWin = 1 MSS Viacute dụ MSS = 500 bytes

amp RTT = 200 ms tốc độ khởi tạo = 20

kbps

băng thocircng sẵn sagraveng coacute thể gtgt MSSRTT mong muốn nhanh

choacuteng tăng tốc lecircn tốc độ coacute thể đaacutep ứng

Khi kết nối bắt đầu tăng tốc lecircn rất nhanh cho đến khi sự cố mất maacutet xảy ra đầu tiecircn

Transport Layer 3-92

TCP khởi động chậm (tt)

Khi kết nối bắt đầu tăng tốc lecircn rất nhanh cho đến khi sự cố mất maacutet xảy ra đầu tiecircn nhacircn đocirci CongWin mỗi

RTT hoagraven thagravenh nhờ tăng CongWin ứng với mỗi ACK đatilde nhận

Tổng kết tốc độ khởi đầu lagrave chậm nhưng sau đoacute tăng tốc rất nhanh

Host A

1 đoạn

RTT

Host B

thời gian

2 đoạn

4 đoạn

Transport Layer 3-93

Tinh chếHỏi Khi nagraveo việc tăng

tốc trở thagravenh tuyến tiacutenh

Trả lời Khi CongWin đạt đến 12 giaacute trị của noacute trước khi timeout

Hiện thực Ngưỡng thay đổi Tại thời điểm coacute sự cố

mất maacutet ngưỡng được cagravei giaacute trị bằng frac12 của CongWin ngay trước đoacute

Transport Layer 3-94

Tinh chế nhận biết mất maacutet

Sau 3 ACK trugraveng lặp CongWin sẽ giảm 12 kiacutech thước cửa sổ

tăng tuyến tiacutenh nhưng sau sự cố

timeout CongWin thay giaacute trị

bằng 1 MSS kiacutech thước cửa sổ

tăng cấp lũy thừa khi đến một ngưỡng

thigrave tăng tuyến tiacutenh

3 ACK trugraveng nhau chỉ ra khả năng truyền của mạng timeout chỉ thị ldquonhiều cảnh baacuteordquo về tigravenh huống tắc nghẽn

Nguyecircn lyacute

Transport Layer 3-95

Tổng kết TCP điều khiển tắc nghẽn

Khi CongWin dưới Threshold becircn gửi đang trong giai đoạn khởi động chậm kiacutech thước cửa sổ tăng nhanh theo cấp lũy thừa

Khi CongWin trecircn Threshold becircn gửi đang trong giai đoạn traacutenh tắc nghẽn kiacutech thước cửa sổ tăng nhanh theo cấp tuyến tiacutenh

Khi coacute 3 ACK trugraveng lặp xảy ra Threshold = CongWin2 vagrave CongWin = Threshold

Khi timeout xảy ra Threshold = CongWin2 vagrave CongWin = 1 MSS

Transport Layer 3-96

TCP điều khiển tắc nghẽn becircn gửi

Trạng thaacutei Sự kiện TCP becircn gửi hagravenh động Diễn giải

Slow Start (SS)-Khởi động chậm

ACK baacuteo nhận cho dữ liệu chưa ACK trước đoacute

CongWin = CongWin + MSS If (CongWin gt Threshold) cagravei đặt trạng thaacutei ldquoTraacutenh tắc nghẽnrdquo

Hậu quả lagravem tăng gấp đocirci CongWin mỗi RTT

CongestionAvoidance (CA) ndashTraacutenh tắc nghẽn

ACK baacuteo nhận cho dữ liệu chưa ACK trước đoacute

CongWin = CongWin+MSS (MSSCongWin)

Additive tăng lecircn lagravem tăng CongWin lecircn 1 MSS mỗi RTT

SS hoặc CA Sự cố mất maacutet xảy ra khi thấy coacute 3 ACK trugraveng lặp

Threshold = CongWin2 CongWin = Thresholdcagravei đặt trạng thaacutei ldquoTraacutenh tắc nghẽnrdquo

Khocirci phục nhanh hiện thực giảm xuống multiplicative CongWin sẽ khocircng giảm xuống dưới 1 MSS

SS hoặc CA Timeout Threshold = CongWin2 CongWin = 1 MSScagravei đặt trạng thaacutei ldquoKhởi động chậmrdquo

Vagraveo chế độ ldquoKhởi động chậmrdquo

SS hoặc CA ACK trugraveng lặp

Đếm ACK tăng lecircn cho đoạn vừa được ACK

CongWin vagrave Threshold khocircng thay đổi

Transport Layer 3-97

TCP throughput

Throughout trung bigravenh của TCP biểu diễn qua kiacutech thước của sổ vagrave RTT Bỏ qua trạng thaacutei ldquoKhởi động chậmrdquo

Cho W lagrave kiacutech thước cửa sổ khi coacute mất maacutet xảy ra

Khi kiacutech thước cửa sổ = W lưu lượng = WRTT

Chỉ ngay sau khi mất maacutet cửa sổ giảm xuống = W2 lưu lượng = W2RTT

throughout trung bigravenh 075 WRTT

Transport Layer 3-98

TCP tương lai

Viacute dụ caacutec đoạn dagravei 1500 byte RTT 100ms lưu lượng 10 Gbps

Kiacutech thước cửa sổ yecircu cầu W = 83333 đoạn trecircn đường truyền

Lưu lượng trong caacutec trường hợp mất maacutet

L = 210-10

Phiecircn bản mới của TCP dagravenh cho nhu cầu tốc độ cao

LRTT

MSS221

Transport Layer 3-99

Mục tiecircu nếu K phiecircn lagravem việc TCP chia sẻ kết nối cổ chai của băng thocircng lagrave R mỗi phiecircn coacute tốc độ trung bigravenh lagrave RK

TCP kết nối 1

router cổ chaikhả năng R

TCP kết nối 2

TCP tiacutenh cocircng bằng

Transport Layer 3-100

Tại sao phải TCP cocircng bằng

2 phiecircn lagravem việc cạnh tranh nhau Additive tăng lưu lượng tăng multiplicative giảm lưu lượng tương xứng

R

R

chia sẻ băng thocircng bằng nhau

Connection 1 throughputConnect

ion 2

th

roughput

traacutenh tắc nghẽn additive tăng lecircnmất maacutet giảm cửa sổ bằng 12

traacutenh tắc nghẽn additive tăng lecircnmất maacutet giảm cửa sổ bằng 12

Transport Layer 3-101

TCP tiacutenh cocircng bằng (tt)

Tiacutenh cocircng bằng amp UDP nhiều ứng dụng

thường khocircng dugraveng TCP khocircng muốn tốc độ bị

điều tiết do điều khiển tắc nghẽn

Thay bằng dugraveng UDP truyền audiovideo với

tốc độ ổn định chịu được mất maacutet

Nghiecircn cứu giao thức thacircn thiện với TCP

Tiacutenh cocircng bằng amp caacutec kết nối TCP song song

khocircng coacute gigrave ngăn cản việc ứng dụng mở caacutec kết nối song song giữa 2 host

Trigravenh duyệt Web lagravem giống như thế

Viacute dụ tốc độ R hỗ trợ 9 kết nối ứng dụng mới yecircu cầu 1

TCP coacute tốc độ R10 ứng dụng mới yecircu cầu 11

TCP coacute tốc độ R2

Transport Layer 3-102

Mocirc higravenh trễ

Hỏi Mất bao lacircu để nhận 1 đối tượng từ Web server sau khi gửi yecircu cầu

Bỏ qua tắc nghẽn trễ bị ảnh hưởng bởi

thiết lập kết nối TCP trễ truyền dữ liệu khởi động chậm

Notation caacutec giả định Giả sử một kết nối giữa

client vagrave server coacute tốc độ R

S MSS (bits) O kiacutech thước đối tượng

(bits) khocircng truyền lại (khocircng

mất maacutet khocircng hỏng)

Kiacutech thước cửa sổ Giả định 1 cửa sổ tắc

nghẽn cố định coacute W đoạn Sau đoacute cửa sổ thay đổi

mocirc higravenh khởi động chậm

Transport Layer 3-103

Cửa sổ tắc nghẽn cố định (1)

Trường hợp đầu tiecircnWSR gt RTT + SR cho

đoạn đầu tiecircn trong cửa sổ trả về trước khi cửa sổ dữ liệu gửi ACK

trễ = 2RTT + OR

Transport Layer 3-104

Cửa sổ tắc nghẽn cố định (2)

Trường hợp thứ hai WSR lt RTT + SR sent

chờ cho ACK sau khi gửi dữ liệu

trễ = 2RTT + OR+ (K-1)[SR + RTT - WSR]

Transport Layer 3-105

TCP Mocirc higravenh trễ Khởi động chậm (1)

Bacircy giờ giả sử kiacutech thước cửa sổ tăng lecircn tugravey theo quaacute trigravenh khởi động chậm

Độ trễ của một đối tượng sẽ lagrave

R

S

R

SRTTP

R

ORTTLatency P )12(2

trong đoacute P lagrave số lần TCP rảnh ở tại server

1min KQP

- trong đoacute Q lagrave số lần server rảnh nếu đối tượng đatilde khởi tạo kiacutech thước

- vagrave K lagrave số lượng cửa sổ bao trugravem đối tượng

Transport Layer 3-106

TCP Mocirc higravenh trễ Khởi động chậm (2)

RTT

initia te TCPconnection

requestobject

first w indow= S R

second w indow= 2S R

third w indow= 4S R

fourth w indow= 8S R

com pletetransm issionobject

delivered

tim e atc lient

tim e atserver

Viacute dụbull OS = 15 đoạnbull K = 4 cửa sổbull Q = 2bull P = minK-1Q = 2

Server rảnh P=2 lần

Caacutec thagravenh phần trễbull 2 RTT dagravenh cho thiết lập kết nối vagrave yecircu cầubull OR để truyền đối tượngbullthời gian server rảnh bởi vigrave khởi động chậm

Server rảnh P = minK-1Q lần

Transport Layer 3-107

TCP Mocirc higravenh trễ(3)

R

S

R

SRTTPRTT

R

O

R

SRTT

R

SRTT

R

O

idleTimeRTTR

O

P

kP

k

P

pp

)12(][2

]2[2

2delay

1

1

1

th window after the timeidle 2 1 kR

SRTT

R

S k

ementacknowledg receivesserver until

segment send tostartsserver when from time RTTR

S

window kth the transmit totime2 1

R

Sk

RTT

initia te TCPconnection

requestobject

first w indow= S R

second w indow= 2S R

third w indow= 4S R

fourth w indow= 8S R

com pletetransm issionobject

delivered

tim e atc lient

tim e atserver

Transport Layer 3-108

TCP Mocirc higravenh trễ (4)

)1(log

)1(logmin

12min

222min

222min

2

2

110

110

S

OS

Okk

S

Ok

SOk

OSSSkK

k

k

k

caacutech tiacutenh toaacuten Q tương tự (xem HW)

K = số lượng cửa sổ bao trugravem đối tượngLagravem thế nagraveo tiacutenh được K

Transport Layer 3-109

HTTP Mocirc higravenh Giả sử trang Web chứa

1 trang HTML (kiacutech thước O bits) M higravenh ảnh (mỗi caacutei kiacutech thướcO bits)

HTTP khocircng bền vững M+1 TCP kết nối Thời gian đaacutep ứng = (M+1)OR + (M+1)2RTT + tổng số thời

gian rảnh HTTP bền vững

2 RTT để yecircu cầu vagrave nhận file HTML 1 RTT để yecircu cầu vagrave nhận M higravenh ảnh Thời gian đaacutep ứng = (M+1)OR + 3RTT + tổng số thời gian

rảnh HTTP khocircng bền vững với X kết nối song song

Giả sử MX lagrave số nguyecircn 1 TCP kết nối cho file MX thiết lập caacutec kết nối song song cho caacutec higravenh ảnh Thời gian đaacutep ứng = (M+1)OR + (MX + 1)2RTT + tổng số

thời gian rảnh

Transport Layer 3-110

02468

101214161820

28Kbps

100Kbps

1Mbps

10Mbps

non-persistent

persistent

parallel non-persistent

HTTP thời gian đaacutep ứng (giacircy)RTT = 100 msec O = 5 Kbytes M=10 vagrave X=5

Với băng thocircng thấp thời gian kết nối amp đaacutep ứng trội hơn thời gian truyền

Caacutec kết nối bền vững chỉ cho sự cải thiện khocircng đaacuteng kể trecircn caacutec kết nối song song

Transport Layer 3-111

0

10

20

30

40

50

60

70

28Kbps

100Kbps

1Mbps

10Mbps

non-persistent

persistent

parallel non-persistent

HTTP thời gian đaacutep ứng (giacircy)

RTT =1 sec O = 5 Kbytes M=10 and X=5

Với RTT lớn hơn thời gian đaacutep ứng trội hơn thời gian trễ chờ thiết lập kết nốiTCP amp khởi động chậm Caacutec kết nối bền vững bacircy giờ cho thấy cải thiện rotilde rệt đặc biệtvới caacutec mạng băng thocircng cao

Transport Layer 3-112

Chương 3 Tổng kết caacutec nguyecircn lyacute của caacutec

dịch vụ lớp transport multiplexing

demultiplexing truyền dữ liệu tin cậy điều khiển luồng điều khiển tắc nghẽn

khởi tạo vagrave hiện thực trong Internet UDP TCP

Tiếp theo nghiecircn cứu xong

caacutec vấn đề ldquongoagravei biecircnrdquo (caacutec lớp application transport)

chuẩn bị vagraveo phần ldquolotildeirdquo của mạng

  • Slide 1
  • Chương 3 Lớp Transport
  • Chương 3 Nội dung trigravenh bagravey
  • Caacutec dịch vụ vagrave giao thức Transport
  • Lớp Transport với lớp network
  • Caacutec giao thức lớp transport trecircn Internet
  • Slide 7
  • Multiplexingdemultiplexing
  • Demultiplexing lagravem việc như thế nagraveo
  • Demultiplexing khocircng kết nối
  • Demultiplexing khocircng kết nối (tiếp)
  • Demultiplexing hướng kết nối
  • Demultiplexing hướng kết nối (tiếp)
  • Demultiplexing hướng kết nối Threaded Web Server
  • Slide 15
  • UDP User Datagram Protocol [RFC 768]
  • UDP (tt)
  • UDP checksum
  • Viacute dụ Checksum
  • Slide 20
  • Caacutec nguyecircn lyacute truyền dữ liệu tin cậy
  • Slide 22
  • Slide 23
  • Truyền dữ liệu tin cậy
  • Slide 25
  • Rdt10 truyền dữ liệu tin cậy trecircn 1 kecircnh truyền tin cậy
  • Rdt20 kecircnh với caacutec lỗi
  • rdt20 đặc tả FSM
  • rdt20 hoạt động khi khocircng lỗi
  • rdt20 hoạt động khi coacute lỗi
  • rdt20 coacute lỗ hổng nghiecircm trọng
  • rdt21 người gửi quản lyacute caacutec ACKNAK bị hỏng
  • Slide 33
  • rdt21 thảo luận
  • rdt22 một giao thức khocircng cần NAK
  • rdt22 gửi nhận caacutec mảnh
  • rdt30 caacutec kecircnh với lỗi vagrave mất maacutet
  • rdt30 gửi
  • hagravenh động của rdt30
  • Slide 40
  • Hiệu suất của rdt30
  • rdt30 hoạt động dừng-vagrave-chờ
  • Caacutec giao thức Pipelined
  • Pipelining độ khả dụng tăng
  • Go-Back-N
  • GBN becircn gửi mở rộng FSM
  • GBN becircn nhận mở rộng FSM
  • GBN hoạt động
  • Lặp coacute lựa chọn
  • Lặp coacute lựa chọn caacutec cửa sổ gửi nhận
  • Slide 51
  • Hoạt động của lặp coacute lựa chọn
  • Lặp coacute lựa chọn tigravenh trạng khoacute giải quyết
  • Slide 54
  • TCP Tổng quan RFCs 793 1122 1323 2018 2581
  • TCP cấu truacutec đoạn
  • Caacutec số thứ tự TCP vagrave ACK
  • TCP Round Trip Time vagraveTimeout
  • TCP Round Trip Time vagrave Timeout
  • Viacute dụ đaacutenh giaacute RTT
  • Slide 61
  • TCP truyền dữ liệu tin cậy
  • TCP caacutec sự kiện
  • TCP becircn gửi (đơn giản)
  • TCP caacutec tigravenh huống truyền lại
  • TCP caacutec tigravenh huống truyền lại (tt)
  • TCP sinh ra ACK [RFC 1122 RFC 2581]
  • Truyền lại nhanh
  • Giải thuật truyền lại nhanh
  • Slide 70
  • TCP điều khiển luồng
  • TCP điều khiển luồng caacutech lagravem
  • Slide 73
  • TCP quản lyacute kết nối
  • TCP quản lyacute kết nối (tt)
  • Slide 76
  • Slide 77
  • Slide 78
  • Caacutec nguyecircn lyacute điều khiển tắc nghẽn
  • Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 1
  • Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 2
  • Slide 82
  • Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 3
  • Slide 84
  • Caacutec caacutech tiếp cận đối với điều khiển tắc nghẽn
  • Viacute dụ điều khiển tắc nghẽn ATM ABR
  • Slide 87
  • Slide 88
  • TCP điều khiển tắc nghẽn additive tăng lecircn multiplicative giảm xuống
  • TCP điều khiển tắc nghẽn chi tiết
  • TCP khởi động chậm
  • TCP khởi động chậm (tt)
  • Tinh chế
  • Tinh chế nhận biết mất maacutet
  • Tổng kết TCP điều khiển tắc nghẽn
  • TCP điều khiển tắc nghẽn becircn gửi
  • TCP throughput
  • TCP tương lai
  • TCP tiacutenh cocircng bằng
  • Tại sao phải TCP cocircng bằng
  • TCP tiacutenh cocircng bằng (tt)
  • Mocirc higravenh trễ
  • Cửa sổ tắc nghẽn cố định (1)
  • Cửa sổ tắc nghẽn cố định (2)
  • TCP Mocirc higravenh trễ Khởi động chậm (1)
  • TCP Mocirc higravenh trễ Khởi động chậm (2)
  • TCP Mocirc higravenh trễ(3)
  • TCP Mocirc higravenh trễ (4)
  • HTTP Mocirc higravenh
  • Slide 110
  • Slide 111
  • Chương 3 Tổng kết

Transport Layer 3-46

GBN becircn gửi mở rộng FSM

chờ start_timerudt_send(sndpkt[base])udt_send(sndpkt[base+1])hellipudt_send(sndpkt[nextseqnum-1])

timeout

rdt_send(data)

if (nextseqnum lt base+N) sndpkt[nextseqnum] = make_pkt(nextseqnumdatachksum) udt_send(sndpkt[nextseqnum]) if (base == nextseqnum) start_timer nextseqnum++ else refuse_data(data)

base = getacknum(rcvpkt)+1If (base == nextseqnum) stop_timer else start_timer

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)

base=1nextseqnum=1

rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)

Transport Layer 3-47

GBN becircn nhận mở rộng FSM

ACK-duy nhất luocircn luocircn gửi ACK cho goacutei đatilde nhận đuacuteng với số thứ tự xếp hạng cao nhất coacute thể sinh ra caacutec ACK trugraveng nhau chỉ cần nhớ expectedseqnum

goacutei khocircng theo thứ tự hủy -gt khocircng nhận vagraveo bộ đệm gửi lại ACK với số thứ tự xếp hạng cao nhất

chờ

udt_send(sndpkt)

default

rdt_rcv(rcvpkt) ampamp notcurrupt(rcvpkt) ampamp hasseqnum(rcvpktexpectedseqnum)

extract(rcvpktdata)deliver_data(data)sndpkt = make_pkt(expectedseqnumACKchksum)udt_send(sndpkt)expectedseqnum++

expectedseqnum=1sndpkt = make_pkt(expectedseqnumACKchksum)

Transport Layer 3-48

GBN hoạt động

Transport Layer 3-49

Lặp coacute lựa chọn

becircn nhận thocircng baacuteo đatilde nhận đuacuteng tất cả từng goacutei một đệm (buffer) caacutec goacutei nếu cần thiết

becircn gửi chỉ gửi lại caacutec goacutei nagraveo khocircng nhận được ACK becircn gửi định thigrave đối với mỗi goacutei khocircng gửi ACK

cửa sổ becircn gửi N số thứ tự liecircn tục hạn chế số thứ tự caacutec goacutei khocircng gửi ACK

Transport Layer 3-50

Lặp coacute lựa chọn caacutec cửa sổ gửi nhận

Transport Layer 3-51

Lặp coacute lựa chọn

dữ liệu từ lớp trecircn nếu số thứ tự kế tiếp sẵn

sagraveng trong cửa sổ gửi goacutei

timeout(n) gửi lại goacutei n taacutei khởi tạo

bộ định thigrave

ACK(n) trong [sendbasesendbase+N]

đaacutenh dấu goacutei n lagrave đatilde nhận nếu goacutei khocircng ACK coacute n

nhỏ nhất dịch chuyển cửa sổ base đến số thứ tự khocircng ACK kế tiếp

Gửigoacutei n trong [rcvbase

rcvbase+N-1]

gửi ACK(n) khocircng thứ tự đệm

(buffer) coacute thứ tự truyền (cũng

truyền caacutec goacutei đatilde đệm coacute thứ tự) dịch chuyển cửa sổ đến goacutei chưa nhận kế tiếp

goacutei n trong [rcvbase-Nrcvbase-1]

ACK(n)

ngược lại lờ đi

Nhận

Transport Layer 3-52

Hoạt động của lặp coacute lựa chọn

Transport Layer 3-53

Lặp coacute lựa chọntigravenh trạng khoacute giải quyếtViacute dụ Số thứ tự 0 1 2 3 Kiacutech thước cửa sổ = 3

becircn nhận khocircng thấy sự khaacutec nhau trong 2 tigravenh huống

chuyển khocircng chiacutenh xaacutec dữ liệu trugraveng lặp như dữ liệu mới trong (a)

Hỏi quan hệ giữa datildey số thứ tự vagrave kiacutech thước cửa sổ

Transport Layer 3-54

Chương 3 Nội dung trigravenh bagravey

31 Caacutec dịch vụ lớp Transport

32 Multiplexing vagrave demultiplexing

33 Vận chuyển khocircng kết nối UDP

34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy

35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối

36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn

37 Điều khiển tắc nghẽn TCP

Transport Layer 3-55

TCP Tổng quan RFCs 793 1122 1323 2018 2581

dữ liệu full duplex luồng dữ liệu đi 2 chiều

trong cugraveng một kết nối MSS maximum

segment size ndash kiacutech thước đoạn tối đa

hướng kết nối bắt tay (trao đổi caacutec

thocircng điệp điều khiển) trạng thaacutei becircn gửi becircn nhận trước khi trao đổi dữ liệu

điều khiển luồng becircn gửi sẽ khocircng lấn aacutet

becircn nhận

point-to-point một becircn gửi một becircn

nhận tin cậy dograveng byte coacute

thứ tự khocircng ldquoranh giới thocircng

điệprdquo kecircnh liecircn lạc

TCP điều khiển luồng vagrave tắc nghẽn thiết lập kiacutech thước cửa sổ

caacutec bộ đệm gửi amp nhận

socketdoor

T C Psend buffer

T C Preceive buffer

socketdoor

segm ent

applicationwrites data

applicationreads data

Transport Layer 3-56

TCP cấu truacutec đoạn

port nguồn port điacutech

32 bits

dữ liệu ứng dụng(độ dagravei thay đổi)

số thứ tự

số ACKcửa sổ nhận

con trỏ URGchecksum

FSRPAUheadlen

notused

Tugravey chọn (độ dagravei thay đổi)

URG dữ liệu khẩn cấp(thường khocircng dugraveng)

ACK ACK hợp lệ

PSH push data now(thường khocircng dugraveng)

RST SYN FINthiết lập kết nối

(caacutec lệnh thiết lậpchia nhỏ)

số byte becircn nhận sẵn sagraveng chấp nhận

đếm bởi số bytecủa dữ liệu

Internetchecksum

(giống UDP)

Transport Layer 3-57

Caacutec số thứ tự TCP vagrave ACKCaacutec số thứ tự

dograveng byte ldquođaacutenh sốrdquo byte đầu tiecircn trong dữ liệu của đoạn

caacutec ACK số thứ tự của byte

kế tiếp được chờ đợi từ phiacutea becircn kia

ACK tiacutech lũyHỏi lagravem thế nagraveo becircn

nhận quản lyacute caacutec đoạn khocircng thứ tự Trả lời TCP khocircng

đề cập tugravey thuộc người hiện thực

Host A Host B

Seq=42 ACK=79 data = lsquoCrsquo

Seq=79 ACK=43 data = lsquoCrsquo

Seq=43 ACK=80

UsernhậplsquoCrsquo

host ACKsnhận phản hồi

lsquoCrsquo

host ACKsbaacuteo nhận

lsquoCrsquo phản hồingược lại lsquoCrsquo

timetigravenh huống telnet đơn giản

Transport Layer 3-58

TCP Round Trip Time vagraveTimeout

Hỏi Lagravem thế nagraveo để thiết lập giaacute trị TCP timeout

dagravei hơn RTT khaacutec với RTT

quaacute ngắn timeout sớm truyền lại khocircng

cần thiết quaacute dagravei phản ứng

chậm đối với việc mất maacutet goacutei

Hỏi Lagravem thế nagraveo để thiết lập RTT

SampleRTT thời gian được đo từ khi truyền đoạn đến khi baacuteo nhận ACK lờ đi việc truyền lại

SampleRTT sẽ thay đổi muốn ước lượng RTT ldquomượt hơnrdquo tiacutenh trung bigravenh một số giaacute

trị đo được gần đoacute khocircng chỉ SampleRTT hiện tại

Transport Layer 3-59

TCP Round Trip Time vagrave Timeout

EstimatedRTT = (1- )EstimatedRTT + SampleRTT

giaacute trị đặc trưng = 0125

Transport Layer 3-60

Viacute dụ đaacutenh giaacute RTTRTT gaiacsumassedu to fantasiaeurecomfr

100

150

200

250

300

350

1 8 15 22 29 36 43 50 57 64 71 78 85 92 99 106

time (seconnds)

RTT

(mill

isec

onds

)

SampleRTT Estimated RTT

Transport Layer 3-61

TCP Round Trip Time vagrave Timeout

Thiết lập timeout EstimtedRTT cộng ldquohệ số dự trữ an toagravenrdquo

sự biến thiecircn lớn trong EstimatedRTT -gt hệ số dự trữ an toagraven lớn hơn ước lượng đầu tiecircn về sự biến thiecircn của SampleRTT từ EstimatedRTT

TimeoutInterval = EstimatedRTT + 4DevRTT

DevRTT = (1-)DevRTT + |SampleRTT-EstimatedRTT|

(tiecircu biểu = 025)

Sau đoacute thiết lập timeout interval

Transport Layer 3-62

TCP truyền dữ liệu tin cậy

TCP tạo dịch vụ rdt trecircn dịch vụ khocircng tin cậy IP

caacutec đoạn Pipelined caacutec ACK tiacutech lũy TCP dugraveng bộ định thigrave

truyền lại đơn

Truyền lại được kiacutech hoạt bởi caacutec sự kiện timeout caacutec ack trugraveng lặp

luacutec đầu khảo saacutet caacutec becircn gửi TCP đơn giản lờ đi caacutec ack trugraveng lặp lờ đi điều khiển luồng

điều khiển tắc nghẽn

Transport Layer 3-63

TCP caacutec sự kiệndữ liệu đatilde nhận từ ứng

dụng tạo đoạn với số thứ

tự của noacute số thứ tự lagrave số theo

byte dữ liệu đầu tiecircn khởi động bộ định thigrave

nếu chưa chạy khoảng thời gian hết

hạn TimeOutInterval

timeout gửi lại đoạn nagraveo gacircy

ra timeout khởi động lại bộ định

thigrave Ack đatilde nhận

cập nhật caacutei gigrave sẽ được ACK

khởi động bộ định thigrave nếu coacute caacutec đoạn cograven chờ

Transport Layer 3-64

TCP becircn gửi(đơn giản)

NextSeqNum = InitialSeqNum SendBase = InitialSeqNum

loop (forever) switch(event)

event data received from application above create TCP segment with sequence number NextSeqNum if (timer currently not running) start timer pass segment to IP NextSeqNum = NextSeqNum + length(data)

event timer timeout retransmit not-yet-acknowledged segment with smallest sequence number start timer

event ACK received with ACK field value of y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer

end of loop forever

Chuacute thiacutechbull SendBase-1 byte vừa được ACK tiacutech lũy Viacute dụbull SendBase-1 = 71y= 73 vigrave thế becircn nhận muốn 73+ y gt SendBase vigrave thế dữ liệu mới được chấp nhận

Transport Layer 3-65

TCP caacutec tigravenh huống truyền lại

Host A

Seq=100 20 bytes data

ACK=100

timetimeout sớm

Host B

Seq=92 8 bytes data

ACK=120

Seq=92 8 bytes data

Seq=

92

tim

eout

ACK=120

Host A

Seq=92 8 bytes data

ACK=100

loss

tim

eout

tigravenh huống mất ACK

Host B

X

Seq=92 8 bytes data

ACK=100

time

Seq=

92

tim

eout

SendBase= 100

SendBase= 120

SendBase= 120

Sendbase= 100

Transport Layer 3-66

TCP caacutec tigravenh huống truyền lại (tt)Host A

Seq=92 8 bytes data

ACK=100

loss

tim

eout

Cumulative ACK scenario

Host B

X

Seq=100 20 bytes data

ACK=120

time

SendBase= 120

Transport Layer 3-67

TCP sinh ra ACK [RFC 1122 RFC 2581]

Sự kiện tại becircn nhận

Đoạn đến với đuacuteng số thứ tự mong muốn Tất cả dữ liệu đếnđatilde được ACK

Đoạn đến với đuacuteng số thứ tự mong muốn Một đoạn khaacutec đangchờ ACK

Caacutec đoạn đến khocircng thứ tựlớn hơn số thứ tự đoạn mong muốnCoacute khoảng trống

Đoạn đếnlấp đầy từng phần hoặc toagraven bộkhoảng trống

TCP becircn nhận hagravenh động

ACK trễ Chờ đến 500mscho đoạn kế tiếp Nếu khocircng coacute đoạnkế tiếp gửi ACK

Gửi ngay một ACK tiacutech lũy chấp nhậncho cả caacutec đoạn theo thứ tự

Gửi ngay ACK trugraveng lặp chỉ thị số thứ tựđoạn của byte kế tiếp đang mong chờ

Gửi ngay ACK với điều kiện lagrave đoạnbắt đầu ngay điểm coacute khoảng trống

Transport Layer 3-68

Truyền lại nhanh

Chu kỳ Time-out thường tương đối dagravei độ trễ dagravei trước khi gửi

lại goacutei đatilde mất

Xaacutec nhận caacutec đoạn đatilde mất bằng caacutec ACK trugraveng lặp becircn gửi thường gửi

nhiều đoạn song song Nếu đoạn bị mất sẽ

xảy ra tigravenh trạng giống như nhiều ACK trugraveng nhau

Nếu becircn gửi nhận 3 ACK của cugraveng một dữ liệu noacute cho lagrave đoạn sau dữ liệu đatilde ACK bị mất Truyền lại nhanh gửi

lại đoạn trước khi bộ định thigrave hết hạn

Transport Layer 3-69

sự kiện ACK đatilde nhận với trường lagrave y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer else increment count of dup ACKs received for y if (count of dup ACKs received for y = 3) resend segment with sequence number y

Giải thuật truyền lại nhanh

một ACK trugraveng lặp cho đoạn đatilde được ACK

Truyền lại nhanh

Transport Layer 3-70

Chương 3 Nội dung trigravenh bagravey

31 Caacutec dịch vụ lớp Transport

32 Multiplexing vagrave demultiplexing

33 Vận chuyển khocircng kết nối UDP

34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy

35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối

36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn

37 Điều khiển tắc nghẽn TCP

Transport Layer 3-71

TCP điều khiển luồng

becircn nhận của kết nối TCP coacute một bộ đệm nhận

dịch vụ so trugraveng tốc độ so trugraveng tốc độ gửi với tốc độ nhận của ứng dụng

tiến trigravenh ứng dụng coacute thể chậm tại luacutec đọc bộ đệm

becircn gửi sẽ khocircng lagravem tragraven bộ đệm vigrave truyền quaacute nhiều vagrave

quaacute nhanh

điều khiển luồng

Transport Layer 3-72

TCP điều khiển luồng caacutech lagravem

(Giả sử becircn nhận TCP loại bỏ caacutec đoạn khocircng coacute thứ tự)

dự phograveng trong bộ đệm= RcvWindow

= RcvBuffer-[LastByteRcvd - LastByteRead]

Becircn nhận thocircng baacuteo khoảng dự trữ nhờ giaacute trị RcvWindow trong caacutec đoạn

Becircn gửi hạn chế dữ liệu khocircng được ACK vagraveo RcvWindow bảo đảm bộ đệm nhận

khocircng tragraven

Transport Layer 3-73

Chương 3 Nội dung trigravenh bagravey

31 Caacutec dịch vụ lớp Transport

32 Multiplexing vagrave demultiplexing

33 Vận chuyển khocircng kết nối UDP

34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy

35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối

36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn

37 Điều khiển tắc nghẽn TCP

Transport Layer 3-74

TCP quản lyacute kết nối

Chuacute yacute Becircn gửi vagrave becircn nhận TCP thiết lập ldquokết nốirdquo trước khi trao đổi dữ liệu

khởi tạo caacutec biến TCP caacutec số thứ tự đoạn thocircng tin caacutec bộ đệm điều

khiển luồng (như RcvWindow)

client người khởi xướng kết nối

Socket clientSocket = new Socket(hostnameport

number) server được tiếp xuacutec bởi

client Socket connectionSocket =

welcomeSocketaccept()

3 phương phaacutep bắt tay

Bước 1 client host gửi đoạnTCP SYN đến server xaacutec định số thứ tự khởi đầu khocircng phải dữ liệu

Bước 2 server host nhận SYN trả lời với đoạn SYNACK

server cấp phaacutet caacutec bộ đệm

xaacutec định số thứ tự khởi đầuBước 3 client nhận SYNACK trả

lời với đoạn ACK (coacute thể chứa dữ liệu)

Transport Layer 3-75

TCP quản lyacute kết nối (tt)

Đoacuteng một kết nối

client đoacuteng socket clientSocketclose()

Bước 1 client gửi đoạn điều khiển TCP FIN đến server

Bước 2 server nhận FIN trả lời với ACK Đoacuteng kết nối gửi FIN

client

FIN

server

ACK

ACK

FIN

đoacuteng

đoacuteng

đatilde đoacutengthời g

ian c

hờ

Transport Layer 3-76

TCP quản lyacute kết nối (tt)

Bước 3 client nhận FIN trả lời với ACK

Trong khoảng ldquothời gian chờrdquo ndash sẽ phản hồi với ACK để nhận caacutec FIN

Bước 4 server nhận ACK Kết nối đatilde đoacuteng

Chuacute yacute với một sửa đổi nhỏ coacute thể quản lyacute nhiều FIN đồng thời

client

FIN

server

ACK

ACK

FIN

đang đoacuteng

đang đoacuteng

đatilde đoacuteng

thời g

ian c

hờ

đatilde đoacuteng

Transport Layer 3-77

TCP quản lyacute kết nối (tt)

chu kỳ sống củaTCP client

chu kỳ sống củaTCP server

Transport Layer 3-78

Chương 3 Nội dung trigravenh bagravey

31 Caacutec dịch vụ lớp Transport

32 Multiplexing vagrave demultiplexing

33 Vận chuyển khocircng kết nối UDP

34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy

35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối

36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn

37 Điều khiển tắc nghẽn TCP

Transport Layer 3-79

Caacutec nguyecircn lyacute điều khiển tắc nghẽn

Tắc nghẽn ldquoquaacute nhiều nguồn gửi quaacute nhanh vagrave quaacute nhiều

dữ liệu đến mạngrdquo khaacutec với điều khiển luồng caacutec biểu hiện

caacutec goacutei bị mất (tragraven bộ đệm tại caacutec router) caacutec độ trễ quaacute dagravei (xếp hagraveng trong bộ đệm

của router) lagrave 1 trong 10 vấn đề nan giải nhất

Transport Layer 3-80

Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 1

2 gửi 2 nhận 1 router caacutec bộ

đệm khocircng giới hạn

khocircng coacute truyền lại

caacutec độ trễ lớn hơn khi tắc nghẽn

năng suất coacute thể đạt tối đa

unlimited shared output link buffers

Host Ain original data

Host B

out

Transport Layer 3-81

Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 2

1 router caacutec bộ đệm coacute giới hạn becircn gửi truyền lại caacutec goacutei đatilde mất

chia sẻ vocirc hạncaacutec bộ đệm ouput

Host A in dữ liệu gốc

Host B

out

in dữ liệu gốc cugraveng với dữ liệu truyền lại

Transport Layer 3-82

Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 2 luocircn luocircn

truyền lại ldquohoagraven toagravenrdquo chỉ khi mất maacutet

truyền lại vigrave trễ (khocircng mất) lagravem cho lớn hơn với cugraveng

in

out

=

in

out

gt

in

out

ldquocaacutec chi phiacuterdquo của tắc nghẽn nhiều việc (truyền lại) caacutec truyền lại khocircng cần thiết liecircn kết nhiều bản sao của

goacutei

R2

R2in

ou

t

b

R2

R2in

ou

t

a

R2

R2in

ou

t

c

R4

R3

Transport Layer 3-83

Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 3 4 người gửi caacutec đường qua nhiều hop timeouttruyền lại

in

Hỏi điều gigrave xảy ra nếu vagrave tăng lecircn

in

chia sẻ vocirc hạncaacutec bộ đệm ouput

Host Ain dữ liệu gốc

Host B

out

in dữ liệu gốc cugraveng với dữ liệu truyền lại

Transport Layer 3-84

Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 3

ldquochi phiacuterdquo khaacutec của tắc nghẽn khi caacutec goacutei bị bỏ bất kỳ ldquokhả năng truyền

upstream dugraveng cho goacutei đoacute sẽ bị latildeng phiacuterdquo

Host A

Host B

o

u

t

Transport Layer 3-85

Caacutec caacutech tiếp cận đối với điều khiển tắc nghẽn

điều khiển tắc nghẽn end-end

khocircng coacute phản hồi rotilde ragraveng từ mạng

tắc nghẽn được suy ra từ việc quan saacutet caacutec hệ thống đầu cuối coacute mất maacutet trễ

tiếp cận được quản lyacute bởi TCP

điều khiển tắc nghẽn coacute sự hỗ trợ của mạng

caacutec router cung cấp phản hồi về caacutec hệ thống đầu cuối 1 bit duy nhất chỉ thị

tắc nghẽn (SNA DECbit TCPIP ECN ATM)

tốc độ sẽ gửi được xaacutec định rotilde ragraveng

2 caacutech

Transport Layer 3-86

Viacute dụ điều khiển tắc nghẽn ATM ABR

ABR tốc độ bit sẵn sagraveng

ldquodịch vụ mềm dẻordquo nếu đường gửi ldquochưa

hếtrdquo becircn gửi sẽ dugraveng

băng thocircng sẵn sagraveng nếu đường gửi tắc

nghẽn becircn gửi điều tiết với

tốc độ tối thiểu

RM (resource management)

gửi bởi becircn gửi rải raacutec với caacutec ocirc dữ liệu

caacutec bit trong ocirc thiết lập bởi caacutec switch bit NI khocircng tăng tốc độ

(tắc nghẽn nhẹ) bit CI tắc nghẽn rotilde rệt

Caacutec ocirc RM được trả về becircn gửi từ becircn nhận với nguyecircn vẹn caacutec bit

Transport Layer 3-87

Viacute dụ điều khiển tắc nghẽn ATM ABR

trường 2-byte ER trong ocirc RM switch đatilde tắc nghẽn coacute thể coacute giaacute trị ER thấp hơn trong ocirc tốc độ gửi do đoacute coacute thể được hỗ trợ tối đa trecircn đường

EFCI bit trong caacutec ocirc dữ liệu được cagravei giaacute trị 1 trong switch đatilde tắc nghẽn nếu ocirc dữ liệu đứng trước ocirc RM coacute cagravei EFCI becircn gửi sẽ cagravei

bit CI trong ocirc RM trả về

Transport Layer 3-88

Chương 3 Nội dung trigravenh bagravey

31 Caacutec dịch vụ lớp Transport

32 Multiplexing vagrave demultiplexing

33 Vận chuyển khocircng kết nối UDP

34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy

35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối

36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn

37 Điều khiển tắc nghẽn TCP

Transport Layer 3-89

TCP điều khiển tắc nghẽn additive tăng lecircn multiplicative giảm xuống

8 Kbytes

16 Kbytes

24 Kbytes

time

congestionwindow

Caacutech tiếp cận tăng tốc độ truyền (kiacutech thước cửa sổ) tigravem khả năng băng thocircng coacute thể cho đến khi coacute mất maacutet xảy ra additive tăng lecircn tăng CongWin bởi 1 MSS

mỗi RTT cho đến khi coacute mất maacutet xảy ra multiplicative giảm xuống bỏ CongWin trong

nửa giai đoạn sau khi mất maacutet

timekiacutech

thư

ớc

cửa

sổ

tắc

nghẽ

n

Tigravem kiếm băng thocircng

Transport Layer 3-90

TCP điều khiển tắc nghẽn chi tiết

becircn gửi hạn chế việc truyền LastByteSent-LastByteAcked

CongWin Cocircng thức

CongWin thay đổi chức năng lagrave nhận biết tắc nghẽn trecircn mạng

Lagravem thế nagraveo becircn gửi nhận biết tắc nghẽn

mất maacutet xảy ra = timeout hoặc 3 ack trugraveng lặp

becircn gửi giảm tốc độ (CongWin) sau khi mất maacutet xảy ra

3 cơ chế AIMD khởi động chậm thận trọng sau khi coacute

caacutec sự kiện timeout

tốc độ = CongWin

RTT Bytess

Transport Layer 3-91

TCP khởi động chậm

Khi kết nối bắt đầu CongWin = 1 MSS Viacute dụ MSS = 500 bytes

amp RTT = 200 ms tốc độ khởi tạo = 20

kbps

băng thocircng sẵn sagraveng coacute thể gtgt MSSRTT mong muốn nhanh

choacuteng tăng tốc lecircn tốc độ coacute thể đaacutep ứng

Khi kết nối bắt đầu tăng tốc lecircn rất nhanh cho đến khi sự cố mất maacutet xảy ra đầu tiecircn

Transport Layer 3-92

TCP khởi động chậm (tt)

Khi kết nối bắt đầu tăng tốc lecircn rất nhanh cho đến khi sự cố mất maacutet xảy ra đầu tiecircn nhacircn đocirci CongWin mỗi

RTT hoagraven thagravenh nhờ tăng CongWin ứng với mỗi ACK đatilde nhận

Tổng kết tốc độ khởi đầu lagrave chậm nhưng sau đoacute tăng tốc rất nhanh

Host A

1 đoạn

RTT

Host B

thời gian

2 đoạn

4 đoạn

Transport Layer 3-93

Tinh chếHỏi Khi nagraveo việc tăng

tốc trở thagravenh tuyến tiacutenh

Trả lời Khi CongWin đạt đến 12 giaacute trị của noacute trước khi timeout

Hiện thực Ngưỡng thay đổi Tại thời điểm coacute sự cố

mất maacutet ngưỡng được cagravei giaacute trị bằng frac12 của CongWin ngay trước đoacute

Transport Layer 3-94

Tinh chế nhận biết mất maacutet

Sau 3 ACK trugraveng lặp CongWin sẽ giảm 12 kiacutech thước cửa sổ

tăng tuyến tiacutenh nhưng sau sự cố

timeout CongWin thay giaacute trị

bằng 1 MSS kiacutech thước cửa sổ

tăng cấp lũy thừa khi đến một ngưỡng

thigrave tăng tuyến tiacutenh

3 ACK trugraveng nhau chỉ ra khả năng truyền của mạng timeout chỉ thị ldquonhiều cảnh baacuteordquo về tigravenh huống tắc nghẽn

Nguyecircn lyacute

Transport Layer 3-95

Tổng kết TCP điều khiển tắc nghẽn

Khi CongWin dưới Threshold becircn gửi đang trong giai đoạn khởi động chậm kiacutech thước cửa sổ tăng nhanh theo cấp lũy thừa

Khi CongWin trecircn Threshold becircn gửi đang trong giai đoạn traacutenh tắc nghẽn kiacutech thước cửa sổ tăng nhanh theo cấp tuyến tiacutenh

Khi coacute 3 ACK trugraveng lặp xảy ra Threshold = CongWin2 vagrave CongWin = Threshold

Khi timeout xảy ra Threshold = CongWin2 vagrave CongWin = 1 MSS

Transport Layer 3-96

TCP điều khiển tắc nghẽn becircn gửi

Trạng thaacutei Sự kiện TCP becircn gửi hagravenh động Diễn giải

Slow Start (SS)-Khởi động chậm

ACK baacuteo nhận cho dữ liệu chưa ACK trước đoacute

CongWin = CongWin + MSS If (CongWin gt Threshold) cagravei đặt trạng thaacutei ldquoTraacutenh tắc nghẽnrdquo

Hậu quả lagravem tăng gấp đocirci CongWin mỗi RTT

CongestionAvoidance (CA) ndashTraacutenh tắc nghẽn

ACK baacuteo nhận cho dữ liệu chưa ACK trước đoacute

CongWin = CongWin+MSS (MSSCongWin)

Additive tăng lecircn lagravem tăng CongWin lecircn 1 MSS mỗi RTT

SS hoặc CA Sự cố mất maacutet xảy ra khi thấy coacute 3 ACK trugraveng lặp

Threshold = CongWin2 CongWin = Thresholdcagravei đặt trạng thaacutei ldquoTraacutenh tắc nghẽnrdquo

Khocirci phục nhanh hiện thực giảm xuống multiplicative CongWin sẽ khocircng giảm xuống dưới 1 MSS

SS hoặc CA Timeout Threshold = CongWin2 CongWin = 1 MSScagravei đặt trạng thaacutei ldquoKhởi động chậmrdquo

Vagraveo chế độ ldquoKhởi động chậmrdquo

SS hoặc CA ACK trugraveng lặp

Đếm ACK tăng lecircn cho đoạn vừa được ACK

CongWin vagrave Threshold khocircng thay đổi

Transport Layer 3-97

TCP throughput

Throughout trung bigravenh của TCP biểu diễn qua kiacutech thước của sổ vagrave RTT Bỏ qua trạng thaacutei ldquoKhởi động chậmrdquo

Cho W lagrave kiacutech thước cửa sổ khi coacute mất maacutet xảy ra

Khi kiacutech thước cửa sổ = W lưu lượng = WRTT

Chỉ ngay sau khi mất maacutet cửa sổ giảm xuống = W2 lưu lượng = W2RTT

throughout trung bigravenh 075 WRTT

Transport Layer 3-98

TCP tương lai

Viacute dụ caacutec đoạn dagravei 1500 byte RTT 100ms lưu lượng 10 Gbps

Kiacutech thước cửa sổ yecircu cầu W = 83333 đoạn trecircn đường truyền

Lưu lượng trong caacutec trường hợp mất maacutet

L = 210-10

Phiecircn bản mới của TCP dagravenh cho nhu cầu tốc độ cao

LRTT

MSS221

Transport Layer 3-99

Mục tiecircu nếu K phiecircn lagravem việc TCP chia sẻ kết nối cổ chai của băng thocircng lagrave R mỗi phiecircn coacute tốc độ trung bigravenh lagrave RK

TCP kết nối 1

router cổ chaikhả năng R

TCP kết nối 2

TCP tiacutenh cocircng bằng

Transport Layer 3-100

Tại sao phải TCP cocircng bằng

2 phiecircn lagravem việc cạnh tranh nhau Additive tăng lưu lượng tăng multiplicative giảm lưu lượng tương xứng

R

R

chia sẻ băng thocircng bằng nhau

Connection 1 throughputConnect

ion 2

th

roughput

traacutenh tắc nghẽn additive tăng lecircnmất maacutet giảm cửa sổ bằng 12

traacutenh tắc nghẽn additive tăng lecircnmất maacutet giảm cửa sổ bằng 12

Transport Layer 3-101

TCP tiacutenh cocircng bằng (tt)

Tiacutenh cocircng bằng amp UDP nhiều ứng dụng

thường khocircng dugraveng TCP khocircng muốn tốc độ bị

điều tiết do điều khiển tắc nghẽn

Thay bằng dugraveng UDP truyền audiovideo với

tốc độ ổn định chịu được mất maacutet

Nghiecircn cứu giao thức thacircn thiện với TCP

Tiacutenh cocircng bằng amp caacutec kết nối TCP song song

khocircng coacute gigrave ngăn cản việc ứng dụng mở caacutec kết nối song song giữa 2 host

Trigravenh duyệt Web lagravem giống như thế

Viacute dụ tốc độ R hỗ trợ 9 kết nối ứng dụng mới yecircu cầu 1

TCP coacute tốc độ R10 ứng dụng mới yecircu cầu 11

TCP coacute tốc độ R2

Transport Layer 3-102

Mocirc higravenh trễ

Hỏi Mất bao lacircu để nhận 1 đối tượng từ Web server sau khi gửi yecircu cầu

Bỏ qua tắc nghẽn trễ bị ảnh hưởng bởi

thiết lập kết nối TCP trễ truyền dữ liệu khởi động chậm

Notation caacutec giả định Giả sử một kết nối giữa

client vagrave server coacute tốc độ R

S MSS (bits) O kiacutech thước đối tượng

(bits) khocircng truyền lại (khocircng

mất maacutet khocircng hỏng)

Kiacutech thước cửa sổ Giả định 1 cửa sổ tắc

nghẽn cố định coacute W đoạn Sau đoacute cửa sổ thay đổi

mocirc higravenh khởi động chậm

Transport Layer 3-103

Cửa sổ tắc nghẽn cố định (1)

Trường hợp đầu tiecircnWSR gt RTT + SR cho

đoạn đầu tiecircn trong cửa sổ trả về trước khi cửa sổ dữ liệu gửi ACK

trễ = 2RTT + OR

Transport Layer 3-104

Cửa sổ tắc nghẽn cố định (2)

Trường hợp thứ hai WSR lt RTT + SR sent

chờ cho ACK sau khi gửi dữ liệu

trễ = 2RTT + OR+ (K-1)[SR + RTT - WSR]

Transport Layer 3-105

TCP Mocirc higravenh trễ Khởi động chậm (1)

Bacircy giờ giả sử kiacutech thước cửa sổ tăng lecircn tugravey theo quaacute trigravenh khởi động chậm

Độ trễ của một đối tượng sẽ lagrave

R

S

R

SRTTP

R

ORTTLatency P )12(2

trong đoacute P lagrave số lần TCP rảnh ở tại server

1min KQP

- trong đoacute Q lagrave số lần server rảnh nếu đối tượng đatilde khởi tạo kiacutech thước

- vagrave K lagrave số lượng cửa sổ bao trugravem đối tượng

Transport Layer 3-106

TCP Mocirc higravenh trễ Khởi động chậm (2)

RTT

initia te TCPconnection

requestobject

first w indow= S R

second w indow= 2S R

third w indow= 4S R

fourth w indow= 8S R

com pletetransm issionobject

delivered

tim e atc lient

tim e atserver

Viacute dụbull OS = 15 đoạnbull K = 4 cửa sổbull Q = 2bull P = minK-1Q = 2

Server rảnh P=2 lần

Caacutec thagravenh phần trễbull 2 RTT dagravenh cho thiết lập kết nối vagrave yecircu cầubull OR để truyền đối tượngbullthời gian server rảnh bởi vigrave khởi động chậm

Server rảnh P = minK-1Q lần

Transport Layer 3-107

TCP Mocirc higravenh trễ(3)

R

S

R

SRTTPRTT

R

O

R

SRTT

R

SRTT

R

O

idleTimeRTTR

O

P

kP

k

P

pp

)12(][2

]2[2

2delay

1

1

1

th window after the timeidle 2 1 kR

SRTT

R

S k

ementacknowledg receivesserver until

segment send tostartsserver when from time RTTR

S

window kth the transmit totime2 1

R

Sk

RTT

initia te TCPconnection

requestobject

first w indow= S R

second w indow= 2S R

third w indow= 4S R

fourth w indow= 8S R

com pletetransm issionobject

delivered

tim e atc lient

tim e atserver

Transport Layer 3-108

TCP Mocirc higravenh trễ (4)

)1(log

)1(logmin

12min

222min

222min

2

2

110

110

S

OS

Okk

S

Ok

SOk

OSSSkK

k

k

k

caacutech tiacutenh toaacuten Q tương tự (xem HW)

K = số lượng cửa sổ bao trugravem đối tượngLagravem thế nagraveo tiacutenh được K

Transport Layer 3-109

HTTP Mocirc higravenh Giả sử trang Web chứa

1 trang HTML (kiacutech thước O bits) M higravenh ảnh (mỗi caacutei kiacutech thướcO bits)

HTTP khocircng bền vững M+1 TCP kết nối Thời gian đaacutep ứng = (M+1)OR + (M+1)2RTT + tổng số thời

gian rảnh HTTP bền vững

2 RTT để yecircu cầu vagrave nhận file HTML 1 RTT để yecircu cầu vagrave nhận M higravenh ảnh Thời gian đaacutep ứng = (M+1)OR + 3RTT + tổng số thời gian

rảnh HTTP khocircng bền vững với X kết nối song song

Giả sử MX lagrave số nguyecircn 1 TCP kết nối cho file MX thiết lập caacutec kết nối song song cho caacutec higravenh ảnh Thời gian đaacutep ứng = (M+1)OR + (MX + 1)2RTT + tổng số

thời gian rảnh

Transport Layer 3-110

02468

101214161820

28Kbps

100Kbps

1Mbps

10Mbps

non-persistent

persistent

parallel non-persistent

HTTP thời gian đaacutep ứng (giacircy)RTT = 100 msec O = 5 Kbytes M=10 vagrave X=5

Với băng thocircng thấp thời gian kết nối amp đaacutep ứng trội hơn thời gian truyền

Caacutec kết nối bền vững chỉ cho sự cải thiện khocircng đaacuteng kể trecircn caacutec kết nối song song

Transport Layer 3-111

0

10

20

30

40

50

60

70

28Kbps

100Kbps

1Mbps

10Mbps

non-persistent

persistent

parallel non-persistent

HTTP thời gian đaacutep ứng (giacircy)

RTT =1 sec O = 5 Kbytes M=10 and X=5

Với RTT lớn hơn thời gian đaacutep ứng trội hơn thời gian trễ chờ thiết lập kết nốiTCP amp khởi động chậm Caacutec kết nối bền vững bacircy giờ cho thấy cải thiện rotilde rệt đặc biệtvới caacutec mạng băng thocircng cao

Transport Layer 3-112

Chương 3 Tổng kết caacutec nguyecircn lyacute của caacutec

dịch vụ lớp transport multiplexing

demultiplexing truyền dữ liệu tin cậy điều khiển luồng điều khiển tắc nghẽn

khởi tạo vagrave hiện thực trong Internet UDP TCP

Tiếp theo nghiecircn cứu xong

caacutec vấn đề ldquongoagravei biecircnrdquo (caacutec lớp application transport)

chuẩn bị vagraveo phần ldquolotildeirdquo của mạng

  • Slide 1
  • Chương 3 Lớp Transport
  • Chương 3 Nội dung trigravenh bagravey
  • Caacutec dịch vụ vagrave giao thức Transport
  • Lớp Transport với lớp network
  • Caacutec giao thức lớp transport trecircn Internet
  • Slide 7
  • Multiplexingdemultiplexing
  • Demultiplexing lagravem việc như thế nagraveo
  • Demultiplexing khocircng kết nối
  • Demultiplexing khocircng kết nối (tiếp)
  • Demultiplexing hướng kết nối
  • Demultiplexing hướng kết nối (tiếp)
  • Demultiplexing hướng kết nối Threaded Web Server
  • Slide 15
  • UDP User Datagram Protocol [RFC 768]
  • UDP (tt)
  • UDP checksum
  • Viacute dụ Checksum
  • Slide 20
  • Caacutec nguyecircn lyacute truyền dữ liệu tin cậy
  • Slide 22
  • Slide 23
  • Truyền dữ liệu tin cậy
  • Slide 25
  • Rdt10 truyền dữ liệu tin cậy trecircn 1 kecircnh truyền tin cậy
  • Rdt20 kecircnh với caacutec lỗi
  • rdt20 đặc tả FSM
  • rdt20 hoạt động khi khocircng lỗi
  • rdt20 hoạt động khi coacute lỗi
  • rdt20 coacute lỗ hổng nghiecircm trọng
  • rdt21 người gửi quản lyacute caacutec ACKNAK bị hỏng
  • Slide 33
  • rdt21 thảo luận
  • rdt22 một giao thức khocircng cần NAK
  • rdt22 gửi nhận caacutec mảnh
  • rdt30 caacutec kecircnh với lỗi vagrave mất maacutet
  • rdt30 gửi
  • hagravenh động của rdt30
  • Slide 40
  • Hiệu suất của rdt30
  • rdt30 hoạt động dừng-vagrave-chờ
  • Caacutec giao thức Pipelined
  • Pipelining độ khả dụng tăng
  • Go-Back-N
  • GBN becircn gửi mở rộng FSM
  • GBN becircn nhận mở rộng FSM
  • GBN hoạt động
  • Lặp coacute lựa chọn
  • Lặp coacute lựa chọn caacutec cửa sổ gửi nhận
  • Slide 51
  • Hoạt động của lặp coacute lựa chọn
  • Lặp coacute lựa chọn tigravenh trạng khoacute giải quyết
  • Slide 54
  • TCP Tổng quan RFCs 793 1122 1323 2018 2581
  • TCP cấu truacutec đoạn
  • Caacutec số thứ tự TCP vagrave ACK
  • TCP Round Trip Time vagraveTimeout
  • TCP Round Trip Time vagrave Timeout
  • Viacute dụ đaacutenh giaacute RTT
  • Slide 61
  • TCP truyền dữ liệu tin cậy
  • TCP caacutec sự kiện
  • TCP becircn gửi (đơn giản)
  • TCP caacutec tigravenh huống truyền lại
  • TCP caacutec tigravenh huống truyền lại (tt)
  • TCP sinh ra ACK [RFC 1122 RFC 2581]
  • Truyền lại nhanh
  • Giải thuật truyền lại nhanh
  • Slide 70
  • TCP điều khiển luồng
  • TCP điều khiển luồng caacutech lagravem
  • Slide 73
  • TCP quản lyacute kết nối
  • TCP quản lyacute kết nối (tt)
  • Slide 76
  • Slide 77
  • Slide 78
  • Caacutec nguyecircn lyacute điều khiển tắc nghẽn
  • Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 1
  • Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 2
  • Slide 82
  • Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 3
  • Slide 84
  • Caacutec caacutech tiếp cận đối với điều khiển tắc nghẽn
  • Viacute dụ điều khiển tắc nghẽn ATM ABR
  • Slide 87
  • Slide 88
  • TCP điều khiển tắc nghẽn additive tăng lecircn multiplicative giảm xuống
  • TCP điều khiển tắc nghẽn chi tiết
  • TCP khởi động chậm
  • TCP khởi động chậm (tt)
  • Tinh chế
  • Tinh chế nhận biết mất maacutet
  • Tổng kết TCP điều khiển tắc nghẽn
  • TCP điều khiển tắc nghẽn becircn gửi
  • TCP throughput
  • TCP tương lai
  • TCP tiacutenh cocircng bằng
  • Tại sao phải TCP cocircng bằng
  • TCP tiacutenh cocircng bằng (tt)
  • Mocirc higravenh trễ
  • Cửa sổ tắc nghẽn cố định (1)
  • Cửa sổ tắc nghẽn cố định (2)
  • TCP Mocirc higravenh trễ Khởi động chậm (1)
  • TCP Mocirc higravenh trễ Khởi động chậm (2)
  • TCP Mocirc higravenh trễ(3)
  • TCP Mocirc higravenh trễ (4)
  • HTTP Mocirc higravenh
  • Slide 110
  • Slide 111
  • Chương 3 Tổng kết

Transport Layer 3-47

GBN becircn nhận mở rộng FSM

ACK-duy nhất luocircn luocircn gửi ACK cho goacutei đatilde nhận đuacuteng với số thứ tự xếp hạng cao nhất coacute thể sinh ra caacutec ACK trugraveng nhau chỉ cần nhớ expectedseqnum

goacutei khocircng theo thứ tự hủy -gt khocircng nhận vagraveo bộ đệm gửi lại ACK với số thứ tự xếp hạng cao nhất

chờ

udt_send(sndpkt)

default

rdt_rcv(rcvpkt) ampamp notcurrupt(rcvpkt) ampamp hasseqnum(rcvpktexpectedseqnum)

extract(rcvpktdata)deliver_data(data)sndpkt = make_pkt(expectedseqnumACKchksum)udt_send(sndpkt)expectedseqnum++

expectedseqnum=1sndpkt = make_pkt(expectedseqnumACKchksum)

Transport Layer 3-48

GBN hoạt động

Transport Layer 3-49

Lặp coacute lựa chọn

becircn nhận thocircng baacuteo đatilde nhận đuacuteng tất cả từng goacutei một đệm (buffer) caacutec goacutei nếu cần thiết

becircn gửi chỉ gửi lại caacutec goacutei nagraveo khocircng nhận được ACK becircn gửi định thigrave đối với mỗi goacutei khocircng gửi ACK

cửa sổ becircn gửi N số thứ tự liecircn tục hạn chế số thứ tự caacutec goacutei khocircng gửi ACK

Transport Layer 3-50

Lặp coacute lựa chọn caacutec cửa sổ gửi nhận

Transport Layer 3-51

Lặp coacute lựa chọn

dữ liệu từ lớp trecircn nếu số thứ tự kế tiếp sẵn

sagraveng trong cửa sổ gửi goacutei

timeout(n) gửi lại goacutei n taacutei khởi tạo

bộ định thigrave

ACK(n) trong [sendbasesendbase+N]

đaacutenh dấu goacutei n lagrave đatilde nhận nếu goacutei khocircng ACK coacute n

nhỏ nhất dịch chuyển cửa sổ base đến số thứ tự khocircng ACK kế tiếp

Gửigoacutei n trong [rcvbase

rcvbase+N-1]

gửi ACK(n) khocircng thứ tự đệm

(buffer) coacute thứ tự truyền (cũng

truyền caacutec goacutei đatilde đệm coacute thứ tự) dịch chuyển cửa sổ đến goacutei chưa nhận kế tiếp

goacutei n trong [rcvbase-Nrcvbase-1]

ACK(n)

ngược lại lờ đi

Nhận

Transport Layer 3-52

Hoạt động của lặp coacute lựa chọn

Transport Layer 3-53

Lặp coacute lựa chọntigravenh trạng khoacute giải quyếtViacute dụ Số thứ tự 0 1 2 3 Kiacutech thước cửa sổ = 3

becircn nhận khocircng thấy sự khaacutec nhau trong 2 tigravenh huống

chuyển khocircng chiacutenh xaacutec dữ liệu trugraveng lặp như dữ liệu mới trong (a)

Hỏi quan hệ giữa datildey số thứ tự vagrave kiacutech thước cửa sổ

Transport Layer 3-54

Chương 3 Nội dung trigravenh bagravey

31 Caacutec dịch vụ lớp Transport

32 Multiplexing vagrave demultiplexing

33 Vận chuyển khocircng kết nối UDP

34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy

35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối

36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn

37 Điều khiển tắc nghẽn TCP

Transport Layer 3-55

TCP Tổng quan RFCs 793 1122 1323 2018 2581

dữ liệu full duplex luồng dữ liệu đi 2 chiều

trong cugraveng một kết nối MSS maximum

segment size ndash kiacutech thước đoạn tối đa

hướng kết nối bắt tay (trao đổi caacutec

thocircng điệp điều khiển) trạng thaacutei becircn gửi becircn nhận trước khi trao đổi dữ liệu

điều khiển luồng becircn gửi sẽ khocircng lấn aacutet

becircn nhận

point-to-point một becircn gửi một becircn

nhận tin cậy dograveng byte coacute

thứ tự khocircng ldquoranh giới thocircng

điệprdquo kecircnh liecircn lạc

TCP điều khiển luồng vagrave tắc nghẽn thiết lập kiacutech thước cửa sổ

caacutec bộ đệm gửi amp nhận

socketdoor

T C Psend buffer

T C Preceive buffer

socketdoor

segm ent

applicationwrites data

applicationreads data

Transport Layer 3-56

TCP cấu truacutec đoạn

port nguồn port điacutech

32 bits

dữ liệu ứng dụng(độ dagravei thay đổi)

số thứ tự

số ACKcửa sổ nhận

con trỏ URGchecksum

FSRPAUheadlen

notused

Tugravey chọn (độ dagravei thay đổi)

URG dữ liệu khẩn cấp(thường khocircng dugraveng)

ACK ACK hợp lệ

PSH push data now(thường khocircng dugraveng)

RST SYN FINthiết lập kết nối

(caacutec lệnh thiết lậpchia nhỏ)

số byte becircn nhận sẵn sagraveng chấp nhận

đếm bởi số bytecủa dữ liệu

Internetchecksum

(giống UDP)

Transport Layer 3-57

Caacutec số thứ tự TCP vagrave ACKCaacutec số thứ tự

dograveng byte ldquođaacutenh sốrdquo byte đầu tiecircn trong dữ liệu của đoạn

caacutec ACK số thứ tự của byte

kế tiếp được chờ đợi từ phiacutea becircn kia

ACK tiacutech lũyHỏi lagravem thế nagraveo becircn

nhận quản lyacute caacutec đoạn khocircng thứ tự Trả lời TCP khocircng

đề cập tugravey thuộc người hiện thực

Host A Host B

Seq=42 ACK=79 data = lsquoCrsquo

Seq=79 ACK=43 data = lsquoCrsquo

Seq=43 ACK=80

UsernhậplsquoCrsquo

host ACKsnhận phản hồi

lsquoCrsquo

host ACKsbaacuteo nhận

lsquoCrsquo phản hồingược lại lsquoCrsquo

timetigravenh huống telnet đơn giản

Transport Layer 3-58

TCP Round Trip Time vagraveTimeout

Hỏi Lagravem thế nagraveo để thiết lập giaacute trị TCP timeout

dagravei hơn RTT khaacutec với RTT

quaacute ngắn timeout sớm truyền lại khocircng

cần thiết quaacute dagravei phản ứng

chậm đối với việc mất maacutet goacutei

Hỏi Lagravem thế nagraveo để thiết lập RTT

SampleRTT thời gian được đo từ khi truyền đoạn đến khi baacuteo nhận ACK lờ đi việc truyền lại

SampleRTT sẽ thay đổi muốn ước lượng RTT ldquomượt hơnrdquo tiacutenh trung bigravenh một số giaacute

trị đo được gần đoacute khocircng chỉ SampleRTT hiện tại

Transport Layer 3-59

TCP Round Trip Time vagrave Timeout

EstimatedRTT = (1- )EstimatedRTT + SampleRTT

giaacute trị đặc trưng = 0125

Transport Layer 3-60

Viacute dụ đaacutenh giaacute RTTRTT gaiacsumassedu to fantasiaeurecomfr

100

150

200

250

300

350

1 8 15 22 29 36 43 50 57 64 71 78 85 92 99 106

time (seconnds)

RTT

(mill

isec

onds

)

SampleRTT Estimated RTT

Transport Layer 3-61

TCP Round Trip Time vagrave Timeout

Thiết lập timeout EstimtedRTT cộng ldquohệ số dự trữ an toagravenrdquo

sự biến thiecircn lớn trong EstimatedRTT -gt hệ số dự trữ an toagraven lớn hơn ước lượng đầu tiecircn về sự biến thiecircn của SampleRTT từ EstimatedRTT

TimeoutInterval = EstimatedRTT + 4DevRTT

DevRTT = (1-)DevRTT + |SampleRTT-EstimatedRTT|

(tiecircu biểu = 025)

Sau đoacute thiết lập timeout interval

Transport Layer 3-62

TCP truyền dữ liệu tin cậy

TCP tạo dịch vụ rdt trecircn dịch vụ khocircng tin cậy IP

caacutec đoạn Pipelined caacutec ACK tiacutech lũy TCP dugraveng bộ định thigrave

truyền lại đơn

Truyền lại được kiacutech hoạt bởi caacutec sự kiện timeout caacutec ack trugraveng lặp

luacutec đầu khảo saacutet caacutec becircn gửi TCP đơn giản lờ đi caacutec ack trugraveng lặp lờ đi điều khiển luồng

điều khiển tắc nghẽn

Transport Layer 3-63

TCP caacutec sự kiệndữ liệu đatilde nhận từ ứng

dụng tạo đoạn với số thứ

tự của noacute số thứ tự lagrave số theo

byte dữ liệu đầu tiecircn khởi động bộ định thigrave

nếu chưa chạy khoảng thời gian hết

hạn TimeOutInterval

timeout gửi lại đoạn nagraveo gacircy

ra timeout khởi động lại bộ định

thigrave Ack đatilde nhận

cập nhật caacutei gigrave sẽ được ACK

khởi động bộ định thigrave nếu coacute caacutec đoạn cograven chờ

Transport Layer 3-64

TCP becircn gửi(đơn giản)

NextSeqNum = InitialSeqNum SendBase = InitialSeqNum

loop (forever) switch(event)

event data received from application above create TCP segment with sequence number NextSeqNum if (timer currently not running) start timer pass segment to IP NextSeqNum = NextSeqNum + length(data)

event timer timeout retransmit not-yet-acknowledged segment with smallest sequence number start timer

event ACK received with ACK field value of y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer

end of loop forever

Chuacute thiacutechbull SendBase-1 byte vừa được ACK tiacutech lũy Viacute dụbull SendBase-1 = 71y= 73 vigrave thế becircn nhận muốn 73+ y gt SendBase vigrave thế dữ liệu mới được chấp nhận

Transport Layer 3-65

TCP caacutec tigravenh huống truyền lại

Host A

Seq=100 20 bytes data

ACK=100

timetimeout sớm

Host B

Seq=92 8 bytes data

ACK=120

Seq=92 8 bytes data

Seq=

92

tim

eout

ACK=120

Host A

Seq=92 8 bytes data

ACK=100

loss

tim

eout

tigravenh huống mất ACK

Host B

X

Seq=92 8 bytes data

ACK=100

time

Seq=

92

tim

eout

SendBase= 100

SendBase= 120

SendBase= 120

Sendbase= 100

Transport Layer 3-66

TCP caacutec tigravenh huống truyền lại (tt)Host A

Seq=92 8 bytes data

ACK=100

loss

tim

eout

Cumulative ACK scenario

Host B

X

Seq=100 20 bytes data

ACK=120

time

SendBase= 120

Transport Layer 3-67

TCP sinh ra ACK [RFC 1122 RFC 2581]

Sự kiện tại becircn nhận

Đoạn đến với đuacuteng số thứ tự mong muốn Tất cả dữ liệu đếnđatilde được ACK

Đoạn đến với đuacuteng số thứ tự mong muốn Một đoạn khaacutec đangchờ ACK

Caacutec đoạn đến khocircng thứ tựlớn hơn số thứ tự đoạn mong muốnCoacute khoảng trống

Đoạn đếnlấp đầy từng phần hoặc toagraven bộkhoảng trống

TCP becircn nhận hagravenh động

ACK trễ Chờ đến 500mscho đoạn kế tiếp Nếu khocircng coacute đoạnkế tiếp gửi ACK

Gửi ngay một ACK tiacutech lũy chấp nhậncho cả caacutec đoạn theo thứ tự

Gửi ngay ACK trugraveng lặp chỉ thị số thứ tựđoạn của byte kế tiếp đang mong chờ

Gửi ngay ACK với điều kiện lagrave đoạnbắt đầu ngay điểm coacute khoảng trống

Transport Layer 3-68

Truyền lại nhanh

Chu kỳ Time-out thường tương đối dagravei độ trễ dagravei trước khi gửi

lại goacutei đatilde mất

Xaacutec nhận caacutec đoạn đatilde mất bằng caacutec ACK trugraveng lặp becircn gửi thường gửi

nhiều đoạn song song Nếu đoạn bị mất sẽ

xảy ra tigravenh trạng giống như nhiều ACK trugraveng nhau

Nếu becircn gửi nhận 3 ACK của cugraveng một dữ liệu noacute cho lagrave đoạn sau dữ liệu đatilde ACK bị mất Truyền lại nhanh gửi

lại đoạn trước khi bộ định thigrave hết hạn

Transport Layer 3-69

sự kiện ACK đatilde nhận với trường lagrave y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer else increment count of dup ACKs received for y if (count of dup ACKs received for y = 3) resend segment with sequence number y

Giải thuật truyền lại nhanh

một ACK trugraveng lặp cho đoạn đatilde được ACK

Truyền lại nhanh

Transport Layer 3-70

Chương 3 Nội dung trigravenh bagravey

31 Caacutec dịch vụ lớp Transport

32 Multiplexing vagrave demultiplexing

33 Vận chuyển khocircng kết nối UDP

34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy

35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối

36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn

37 Điều khiển tắc nghẽn TCP

Transport Layer 3-71

TCP điều khiển luồng

becircn nhận của kết nối TCP coacute một bộ đệm nhận

dịch vụ so trugraveng tốc độ so trugraveng tốc độ gửi với tốc độ nhận của ứng dụng

tiến trigravenh ứng dụng coacute thể chậm tại luacutec đọc bộ đệm

becircn gửi sẽ khocircng lagravem tragraven bộ đệm vigrave truyền quaacute nhiều vagrave

quaacute nhanh

điều khiển luồng

Transport Layer 3-72

TCP điều khiển luồng caacutech lagravem

(Giả sử becircn nhận TCP loại bỏ caacutec đoạn khocircng coacute thứ tự)

dự phograveng trong bộ đệm= RcvWindow

= RcvBuffer-[LastByteRcvd - LastByteRead]

Becircn nhận thocircng baacuteo khoảng dự trữ nhờ giaacute trị RcvWindow trong caacutec đoạn

Becircn gửi hạn chế dữ liệu khocircng được ACK vagraveo RcvWindow bảo đảm bộ đệm nhận

khocircng tragraven

Transport Layer 3-73

Chương 3 Nội dung trigravenh bagravey

31 Caacutec dịch vụ lớp Transport

32 Multiplexing vagrave demultiplexing

33 Vận chuyển khocircng kết nối UDP

34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy

35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối

36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn

37 Điều khiển tắc nghẽn TCP

Transport Layer 3-74

TCP quản lyacute kết nối

Chuacute yacute Becircn gửi vagrave becircn nhận TCP thiết lập ldquokết nốirdquo trước khi trao đổi dữ liệu

khởi tạo caacutec biến TCP caacutec số thứ tự đoạn thocircng tin caacutec bộ đệm điều

khiển luồng (như RcvWindow)

client người khởi xướng kết nối

Socket clientSocket = new Socket(hostnameport

number) server được tiếp xuacutec bởi

client Socket connectionSocket =

welcomeSocketaccept()

3 phương phaacutep bắt tay

Bước 1 client host gửi đoạnTCP SYN đến server xaacutec định số thứ tự khởi đầu khocircng phải dữ liệu

Bước 2 server host nhận SYN trả lời với đoạn SYNACK

server cấp phaacutet caacutec bộ đệm

xaacutec định số thứ tự khởi đầuBước 3 client nhận SYNACK trả

lời với đoạn ACK (coacute thể chứa dữ liệu)

Transport Layer 3-75

TCP quản lyacute kết nối (tt)

Đoacuteng một kết nối

client đoacuteng socket clientSocketclose()

Bước 1 client gửi đoạn điều khiển TCP FIN đến server

Bước 2 server nhận FIN trả lời với ACK Đoacuteng kết nối gửi FIN

client

FIN

server

ACK

ACK

FIN

đoacuteng

đoacuteng

đatilde đoacutengthời g

ian c

hờ

Transport Layer 3-76

TCP quản lyacute kết nối (tt)

Bước 3 client nhận FIN trả lời với ACK

Trong khoảng ldquothời gian chờrdquo ndash sẽ phản hồi với ACK để nhận caacutec FIN

Bước 4 server nhận ACK Kết nối đatilde đoacuteng

Chuacute yacute với một sửa đổi nhỏ coacute thể quản lyacute nhiều FIN đồng thời

client

FIN

server

ACK

ACK

FIN

đang đoacuteng

đang đoacuteng

đatilde đoacuteng

thời g

ian c

hờ

đatilde đoacuteng

Transport Layer 3-77

TCP quản lyacute kết nối (tt)

chu kỳ sống củaTCP client

chu kỳ sống củaTCP server

Transport Layer 3-78

Chương 3 Nội dung trigravenh bagravey

31 Caacutec dịch vụ lớp Transport

32 Multiplexing vagrave demultiplexing

33 Vận chuyển khocircng kết nối UDP

34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy

35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối

36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn

37 Điều khiển tắc nghẽn TCP

Transport Layer 3-79

Caacutec nguyecircn lyacute điều khiển tắc nghẽn

Tắc nghẽn ldquoquaacute nhiều nguồn gửi quaacute nhanh vagrave quaacute nhiều

dữ liệu đến mạngrdquo khaacutec với điều khiển luồng caacutec biểu hiện

caacutec goacutei bị mất (tragraven bộ đệm tại caacutec router) caacutec độ trễ quaacute dagravei (xếp hagraveng trong bộ đệm

của router) lagrave 1 trong 10 vấn đề nan giải nhất

Transport Layer 3-80

Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 1

2 gửi 2 nhận 1 router caacutec bộ

đệm khocircng giới hạn

khocircng coacute truyền lại

caacutec độ trễ lớn hơn khi tắc nghẽn

năng suất coacute thể đạt tối đa

unlimited shared output link buffers

Host Ain original data

Host B

out

Transport Layer 3-81

Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 2

1 router caacutec bộ đệm coacute giới hạn becircn gửi truyền lại caacutec goacutei đatilde mất

chia sẻ vocirc hạncaacutec bộ đệm ouput

Host A in dữ liệu gốc

Host B

out

in dữ liệu gốc cugraveng với dữ liệu truyền lại

Transport Layer 3-82

Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 2 luocircn luocircn

truyền lại ldquohoagraven toagravenrdquo chỉ khi mất maacutet

truyền lại vigrave trễ (khocircng mất) lagravem cho lớn hơn với cugraveng

in

out

=

in

out

gt

in

out

ldquocaacutec chi phiacuterdquo của tắc nghẽn nhiều việc (truyền lại) caacutec truyền lại khocircng cần thiết liecircn kết nhiều bản sao của

goacutei

R2

R2in

ou

t

b

R2

R2in

ou

t

a

R2

R2in

ou

t

c

R4

R3

Transport Layer 3-83

Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 3 4 người gửi caacutec đường qua nhiều hop timeouttruyền lại

in

Hỏi điều gigrave xảy ra nếu vagrave tăng lecircn

in

chia sẻ vocirc hạncaacutec bộ đệm ouput

Host Ain dữ liệu gốc

Host B

out

in dữ liệu gốc cugraveng với dữ liệu truyền lại

Transport Layer 3-84

Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 3

ldquochi phiacuterdquo khaacutec của tắc nghẽn khi caacutec goacutei bị bỏ bất kỳ ldquokhả năng truyền

upstream dugraveng cho goacutei đoacute sẽ bị latildeng phiacuterdquo

Host A

Host B

o

u

t

Transport Layer 3-85

Caacutec caacutech tiếp cận đối với điều khiển tắc nghẽn

điều khiển tắc nghẽn end-end

khocircng coacute phản hồi rotilde ragraveng từ mạng

tắc nghẽn được suy ra từ việc quan saacutet caacutec hệ thống đầu cuối coacute mất maacutet trễ

tiếp cận được quản lyacute bởi TCP

điều khiển tắc nghẽn coacute sự hỗ trợ của mạng

caacutec router cung cấp phản hồi về caacutec hệ thống đầu cuối 1 bit duy nhất chỉ thị

tắc nghẽn (SNA DECbit TCPIP ECN ATM)

tốc độ sẽ gửi được xaacutec định rotilde ragraveng

2 caacutech

Transport Layer 3-86

Viacute dụ điều khiển tắc nghẽn ATM ABR

ABR tốc độ bit sẵn sagraveng

ldquodịch vụ mềm dẻordquo nếu đường gửi ldquochưa

hếtrdquo becircn gửi sẽ dugraveng

băng thocircng sẵn sagraveng nếu đường gửi tắc

nghẽn becircn gửi điều tiết với

tốc độ tối thiểu

RM (resource management)

gửi bởi becircn gửi rải raacutec với caacutec ocirc dữ liệu

caacutec bit trong ocirc thiết lập bởi caacutec switch bit NI khocircng tăng tốc độ

(tắc nghẽn nhẹ) bit CI tắc nghẽn rotilde rệt

Caacutec ocirc RM được trả về becircn gửi từ becircn nhận với nguyecircn vẹn caacutec bit

Transport Layer 3-87

Viacute dụ điều khiển tắc nghẽn ATM ABR

trường 2-byte ER trong ocirc RM switch đatilde tắc nghẽn coacute thể coacute giaacute trị ER thấp hơn trong ocirc tốc độ gửi do đoacute coacute thể được hỗ trợ tối đa trecircn đường

EFCI bit trong caacutec ocirc dữ liệu được cagravei giaacute trị 1 trong switch đatilde tắc nghẽn nếu ocirc dữ liệu đứng trước ocirc RM coacute cagravei EFCI becircn gửi sẽ cagravei

bit CI trong ocirc RM trả về

Transport Layer 3-88

Chương 3 Nội dung trigravenh bagravey

31 Caacutec dịch vụ lớp Transport

32 Multiplexing vagrave demultiplexing

33 Vận chuyển khocircng kết nối UDP

34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy

35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối

36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn

37 Điều khiển tắc nghẽn TCP

Transport Layer 3-89

TCP điều khiển tắc nghẽn additive tăng lecircn multiplicative giảm xuống

8 Kbytes

16 Kbytes

24 Kbytes

time

congestionwindow

Caacutech tiếp cận tăng tốc độ truyền (kiacutech thước cửa sổ) tigravem khả năng băng thocircng coacute thể cho đến khi coacute mất maacutet xảy ra additive tăng lecircn tăng CongWin bởi 1 MSS

mỗi RTT cho đến khi coacute mất maacutet xảy ra multiplicative giảm xuống bỏ CongWin trong

nửa giai đoạn sau khi mất maacutet

timekiacutech

thư

ớc

cửa

sổ

tắc

nghẽ

n

Tigravem kiếm băng thocircng

Transport Layer 3-90

TCP điều khiển tắc nghẽn chi tiết

becircn gửi hạn chế việc truyền LastByteSent-LastByteAcked

CongWin Cocircng thức

CongWin thay đổi chức năng lagrave nhận biết tắc nghẽn trecircn mạng

Lagravem thế nagraveo becircn gửi nhận biết tắc nghẽn

mất maacutet xảy ra = timeout hoặc 3 ack trugraveng lặp

becircn gửi giảm tốc độ (CongWin) sau khi mất maacutet xảy ra

3 cơ chế AIMD khởi động chậm thận trọng sau khi coacute

caacutec sự kiện timeout

tốc độ = CongWin

RTT Bytess

Transport Layer 3-91

TCP khởi động chậm

Khi kết nối bắt đầu CongWin = 1 MSS Viacute dụ MSS = 500 bytes

amp RTT = 200 ms tốc độ khởi tạo = 20

kbps

băng thocircng sẵn sagraveng coacute thể gtgt MSSRTT mong muốn nhanh

choacuteng tăng tốc lecircn tốc độ coacute thể đaacutep ứng

Khi kết nối bắt đầu tăng tốc lecircn rất nhanh cho đến khi sự cố mất maacutet xảy ra đầu tiecircn

Transport Layer 3-92

TCP khởi động chậm (tt)

Khi kết nối bắt đầu tăng tốc lecircn rất nhanh cho đến khi sự cố mất maacutet xảy ra đầu tiecircn nhacircn đocirci CongWin mỗi

RTT hoagraven thagravenh nhờ tăng CongWin ứng với mỗi ACK đatilde nhận

Tổng kết tốc độ khởi đầu lagrave chậm nhưng sau đoacute tăng tốc rất nhanh

Host A

1 đoạn

RTT

Host B

thời gian

2 đoạn

4 đoạn

Transport Layer 3-93

Tinh chếHỏi Khi nagraveo việc tăng

tốc trở thagravenh tuyến tiacutenh

Trả lời Khi CongWin đạt đến 12 giaacute trị của noacute trước khi timeout

Hiện thực Ngưỡng thay đổi Tại thời điểm coacute sự cố

mất maacutet ngưỡng được cagravei giaacute trị bằng frac12 của CongWin ngay trước đoacute

Transport Layer 3-94

Tinh chế nhận biết mất maacutet

Sau 3 ACK trugraveng lặp CongWin sẽ giảm 12 kiacutech thước cửa sổ

tăng tuyến tiacutenh nhưng sau sự cố

timeout CongWin thay giaacute trị

bằng 1 MSS kiacutech thước cửa sổ

tăng cấp lũy thừa khi đến một ngưỡng

thigrave tăng tuyến tiacutenh

3 ACK trugraveng nhau chỉ ra khả năng truyền của mạng timeout chỉ thị ldquonhiều cảnh baacuteordquo về tigravenh huống tắc nghẽn

Nguyecircn lyacute

Transport Layer 3-95

Tổng kết TCP điều khiển tắc nghẽn

Khi CongWin dưới Threshold becircn gửi đang trong giai đoạn khởi động chậm kiacutech thước cửa sổ tăng nhanh theo cấp lũy thừa

Khi CongWin trecircn Threshold becircn gửi đang trong giai đoạn traacutenh tắc nghẽn kiacutech thước cửa sổ tăng nhanh theo cấp tuyến tiacutenh

Khi coacute 3 ACK trugraveng lặp xảy ra Threshold = CongWin2 vagrave CongWin = Threshold

Khi timeout xảy ra Threshold = CongWin2 vagrave CongWin = 1 MSS

Transport Layer 3-96

TCP điều khiển tắc nghẽn becircn gửi

Trạng thaacutei Sự kiện TCP becircn gửi hagravenh động Diễn giải

Slow Start (SS)-Khởi động chậm

ACK baacuteo nhận cho dữ liệu chưa ACK trước đoacute

CongWin = CongWin + MSS If (CongWin gt Threshold) cagravei đặt trạng thaacutei ldquoTraacutenh tắc nghẽnrdquo

Hậu quả lagravem tăng gấp đocirci CongWin mỗi RTT

CongestionAvoidance (CA) ndashTraacutenh tắc nghẽn

ACK baacuteo nhận cho dữ liệu chưa ACK trước đoacute

CongWin = CongWin+MSS (MSSCongWin)

Additive tăng lecircn lagravem tăng CongWin lecircn 1 MSS mỗi RTT

SS hoặc CA Sự cố mất maacutet xảy ra khi thấy coacute 3 ACK trugraveng lặp

Threshold = CongWin2 CongWin = Thresholdcagravei đặt trạng thaacutei ldquoTraacutenh tắc nghẽnrdquo

Khocirci phục nhanh hiện thực giảm xuống multiplicative CongWin sẽ khocircng giảm xuống dưới 1 MSS

SS hoặc CA Timeout Threshold = CongWin2 CongWin = 1 MSScagravei đặt trạng thaacutei ldquoKhởi động chậmrdquo

Vagraveo chế độ ldquoKhởi động chậmrdquo

SS hoặc CA ACK trugraveng lặp

Đếm ACK tăng lecircn cho đoạn vừa được ACK

CongWin vagrave Threshold khocircng thay đổi

Transport Layer 3-97

TCP throughput

Throughout trung bigravenh của TCP biểu diễn qua kiacutech thước của sổ vagrave RTT Bỏ qua trạng thaacutei ldquoKhởi động chậmrdquo

Cho W lagrave kiacutech thước cửa sổ khi coacute mất maacutet xảy ra

Khi kiacutech thước cửa sổ = W lưu lượng = WRTT

Chỉ ngay sau khi mất maacutet cửa sổ giảm xuống = W2 lưu lượng = W2RTT

throughout trung bigravenh 075 WRTT

Transport Layer 3-98

TCP tương lai

Viacute dụ caacutec đoạn dagravei 1500 byte RTT 100ms lưu lượng 10 Gbps

Kiacutech thước cửa sổ yecircu cầu W = 83333 đoạn trecircn đường truyền

Lưu lượng trong caacutec trường hợp mất maacutet

L = 210-10

Phiecircn bản mới của TCP dagravenh cho nhu cầu tốc độ cao

LRTT

MSS221

Transport Layer 3-99

Mục tiecircu nếu K phiecircn lagravem việc TCP chia sẻ kết nối cổ chai của băng thocircng lagrave R mỗi phiecircn coacute tốc độ trung bigravenh lagrave RK

TCP kết nối 1

router cổ chaikhả năng R

TCP kết nối 2

TCP tiacutenh cocircng bằng

Transport Layer 3-100

Tại sao phải TCP cocircng bằng

2 phiecircn lagravem việc cạnh tranh nhau Additive tăng lưu lượng tăng multiplicative giảm lưu lượng tương xứng

R

R

chia sẻ băng thocircng bằng nhau

Connection 1 throughputConnect

ion 2

th

roughput

traacutenh tắc nghẽn additive tăng lecircnmất maacutet giảm cửa sổ bằng 12

traacutenh tắc nghẽn additive tăng lecircnmất maacutet giảm cửa sổ bằng 12

Transport Layer 3-101

TCP tiacutenh cocircng bằng (tt)

Tiacutenh cocircng bằng amp UDP nhiều ứng dụng

thường khocircng dugraveng TCP khocircng muốn tốc độ bị

điều tiết do điều khiển tắc nghẽn

Thay bằng dugraveng UDP truyền audiovideo với

tốc độ ổn định chịu được mất maacutet

Nghiecircn cứu giao thức thacircn thiện với TCP

Tiacutenh cocircng bằng amp caacutec kết nối TCP song song

khocircng coacute gigrave ngăn cản việc ứng dụng mở caacutec kết nối song song giữa 2 host

Trigravenh duyệt Web lagravem giống như thế

Viacute dụ tốc độ R hỗ trợ 9 kết nối ứng dụng mới yecircu cầu 1

TCP coacute tốc độ R10 ứng dụng mới yecircu cầu 11

TCP coacute tốc độ R2

Transport Layer 3-102

Mocirc higravenh trễ

Hỏi Mất bao lacircu để nhận 1 đối tượng từ Web server sau khi gửi yecircu cầu

Bỏ qua tắc nghẽn trễ bị ảnh hưởng bởi

thiết lập kết nối TCP trễ truyền dữ liệu khởi động chậm

Notation caacutec giả định Giả sử một kết nối giữa

client vagrave server coacute tốc độ R

S MSS (bits) O kiacutech thước đối tượng

(bits) khocircng truyền lại (khocircng

mất maacutet khocircng hỏng)

Kiacutech thước cửa sổ Giả định 1 cửa sổ tắc

nghẽn cố định coacute W đoạn Sau đoacute cửa sổ thay đổi

mocirc higravenh khởi động chậm

Transport Layer 3-103

Cửa sổ tắc nghẽn cố định (1)

Trường hợp đầu tiecircnWSR gt RTT + SR cho

đoạn đầu tiecircn trong cửa sổ trả về trước khi cửa sổ dữ liệu gửi ACK

trễ = 2RTT + OR

Transport Layer 3-104

Cửa sổ tắc nghẽn cố định (2)

Trường hợp thứ hai WSR lt RTT + SR sent

chờ cho ACK sau khi gửi dữ liệu

trễ = 2RTT + OR+ (K-1)[SR + RTT - WSR]

Transport Layer 3-105

TCP Mocirc higravenh trễ Khởi động chậm (1)

Bacircy giờ giả sử kiacutech thước cửa sổ tăng lecircn tugravey theo quaacute trigravenh khởi động chậm

Độ trễ của một đối tượng sẽ lagrave

R

S

R

SRTTP

R

ORTTLatency P )12(2

trong đoacute P lagrave số lần TCP rảnh ở tại server

1min KQP

- trong đoacute Q lagrave số lần server rảnh nếu đối tượng đatilde khởi tạo kiacutech thước

- vagrave K lagrave số lượng cửa sổ bao trugravem đối tượng

Transport Layer 3-106

TCP Mocirc higravenh trễ Khởi động chậm (2)

RTT

initia te TCPconnection

requestobject

first w indow= S R

second w indow= 2S R

third w indow= 4S R

fourth w indow= 8S R

com pletetransm issionobject

delivered

tim e atc lient

tim e atserver

Viacute dụbull OS = 15 đoạnbull K = 4 cửa sổbull Q = 2bull P = minK-1Q = 2

Server rảnh P=2 lần

Caacutec thagravenh phần trễbull 2 RTT dagravenh cho thiết lập kết nối vagrave yecircu cầubull OR để truyền đối tượngbullthời gian server rảnh bởi vigrave khởi động chậm

Server rảnh P = minK-1Q lần

Transport Layer 3-107

TCP Mocirc higravenh trễ(3)

R

S

R

SRTTPRTT

R

O

R

SRTT

R

SRTT

R

O

idleTimeRTTR

O

P

kP

k

P

pp

)12(][2

]2[2

2delay

1

1

1

th window after the timeidle 2 1 kR

SRTT

R

S k

ementacknowledg receivesserver until

segment send tostartsserver when from time RTTR

S

window kth the transmit totime2 1

R

Sk

RTT

initia te TCPconnection

requestobject

first w indow= S R

second w indow= 2S R

third w indow= 4S R

fourth w indow= 8S R

com pletetransm issionobject

delivered

tim e atc lient

tim e atserver

Transport Layer 3-108

TCP Mocirc higravenh trễ (4)

)1(log

)1(logmin

12min

222min

222min

2

2

110

110

S

OS

Okk

S

Ok

SOk

OSSSkK

k

k

k

caacutech tiacutenh toaacuten Q tương tự (xem HW)

K = số lượng cửa sổ bao trugravem đối tượngLagravem thế nagraveo tiacutenh được K

Transport Layer 3-109

HTTP Mocirc higravenh Giả sử trang Web chứa

1 trang HTML (kiacutech thước O bits) M higravenh ảnh (mỗi caacutei kiacutech thướcO bits)

HTTP khocircng bền vững M+1 TCP kết nối Thời gian đaacutep ứng = (M+1)OR + (M+1)2RTT + tổng số thời

gian rảnh HTTP bền vững

2 RTT để yecircu cầu vagrave nhận file HTML 1 RTT để yecircu cầu vagrave nhận M higravenh ảnh Thời gian đaacutep ứng = (M+1)OR + 3RTT + tổng số thời gian

rảnh HTTP khocircng bền vững với X kết nối song song

Giả sử MX lagrave số nguyecircn 1 TCP kết nối cho file MX thiết lập caacutec kết nối song song cho caacutec higravenh ảnh Thời gian đaacutep ứng = (M+1)OR + (MX + 1)2RTT + tổng số

thời gian rảnh

Transport Layer 3-110

02468

101214161820

28Kbps

100Kbps

1Mbps

10Mbps

non-persistent

persistent

parallel non-persistent

HTTP thời gian đaacutep ứng (giacircy)RTT = 100 msec O = 5 Kbytes M=10 vagrave X=5

Với băng thocircng thấp thời gian kết nối amp đaacutep ứng trội hơn thời gian truyền

Caacutec kết nối bền vững chỉ cho sự cải thiện khocircng đaacuteng kể trecircn caacutec kết nối song song

Transport Layer 3-111

0

10

20

30

40

50

60

70

28Kbps

100Kbps

1Mbps

10Mbps

non-persistent

persistent

parallel non-persistent

HTTP thời gian đaacutep ứng (giacircy)

RTT =1 sec O = 5 Kbytes M=10 and X=5

Với RTT lớn hơn thời gian đaacutep ứng trội hơn thời gian trễ chờ thiết lập kết nốiTCP amp khởi động chậm Caacutec kết nối bền vững bacircy giờ cho thấy cải thiện rotilde rệt đặc biệtvới caacutec mạng băng thocircng cao

Transport Layer 3-112

Chương 3 Tổng kết caacutec nguyecircn lyacute của caacutec

dịch vụ lớp transport multiplexing

demultiplexing truyền dữ liệu tin cậy điều khiển luồng điều khiển tắc nghẽn

khởi tạo vagrave hiện thực trong Internet UDP TCP

Tiếp theo nghiecircn cứu xong

caacutec vấn đề ldquongoagravei biecircnrdquo (caacutec lớp application transport)

chuẩn bị vagraveo phần ldquolotildeirdquo của mạng

  • Slide 1
  • Chương 3 Lớp Transport
  • Chương 3 Nội dung trigravenh bagravey
  • Caacutec dịch vụ vagrave giao thức Transport
  • Lớp Transport với lớp network
  • Caacutec giao thức lớp transport trecircn Internet
  • Slide 7
  • Multiplexingdemultiplexing
  • Demultiplexing lagravem việc như thế nagraveo
  • Demultiplexing khocircng kết nối
  • Demultiplexing khocircng kết nối (tiếp)
  • Demultiplexing hướng kết nối
  • Demultiplexing hướng kết nối (tiếp)
  • Demultiplexing hướng kết nối Threaded Web Server
  • Slide 15
  • UDP User Datagram Protocol [RFC 768]
  • UDP (tt)
  • UDP checksum
  • Viacute dụ Checksum
  • Slide 20
  • Caacutec nguyecircn lyacute truyền dữ liệu tin cậy
  • Slide 22
  • Slide 23
  • Truyền dữ liệu tin cậy
  • Slide 25
  • Rdt10 truyền dữ liệu tin cậy trecircn 1 kecircnh truyền tin cậy
  • Rdt20 kecircnh với caacutec lỗi
  • rdt20 đặc tả FSM
  • rdt20 hoạt động khi khocircng lỗi
  • rdt20 hoạt động khi coacute lỗi
  • rdt20 coacute lỗ hổng nghiecircm trọng
  • rdt21 người gửi quản lyacute caacutec ACKNAK bị hỏng
  • Slide 33
  • rdt21 thảo luận
  • rdt22 một giao thức khocircng cần NAK
  • rdt22 gửi nhận caacutec mảnh
  • rdt30 caacutec kecircnh với lỗi vagrave mất maacutet
  • rdt30 gửi
  • hagravenh động của rdt30
  • Slide 40
  • Hiệu suất của rdt30
  • rdt30 hoạt động dừng-vagrave-chờ
  • Caacutec giao thức Pipelined
  • Pipelining độ khả dụng tăng
  • Go-Back-N
  • GBN becircn gửi mở rộng FSM
  • GBN becircn nhận mở rộng FSM
  • GBN hoạt động
  • Lặp coacute lựa chọn
  • Lặp coacute lựa chọn caacutec cửa sổ gửi nhận
  • Slide 51
  • Hoạt động của lặp coacute lựa chọn
  • Lặp coacute lựa chọn tigravenh trạng khoacute giải quyết
  • Slide 54
  • TCP Tổng quan RFCs 793 1122 1323 2018 2581
  • TCP cấu truacutec đoạn
  • Caacutec số thứ tự TCP vagrave ACK
  • TCP Round Trip Time vagraveTimeout
  • TCP Round Trip Time vagrave Timeout
  • Viacute dụ đaacutenh giaacute RTT
  • Slide 61
  • TCP truyền dữ liệu tin cậy
  • TCP caacutec sự kiện
  • TCP becircn gửi (đơn giản)
  • TCP caacutec tigravenh huống truyền lại
  • TCP caacutec tigravenh huống truyền lại (tt)
  • TCP sinh ra ACK [RFC 1122 RFC 2581]
  • Truyền lại nhanh
  • Giải thuật truyền lại nhanh
  • Slide 70
  • TCP điều khiển luồng
  • TCP điều khiển luồng caacutech lagravem
  • Slide 73
  • TCP quản lyacute kết nối
  • TCP quản lyacute kết nối (tt)
  • Slide 76
  • Slide 77
  • Slide 78
  • Caacutec nguyecircn lyacute điều khiển tắc nghẽn
  • Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 1
  • Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 2
  • Slide 82
  • Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 3
  • Slide 84
  • Caacutec caacutech tiếp cận đối với điều khiển tắc nghẽn
  • Viacute dụ điều khiển tắc nghẽn ATM ABR
  • Slide 87
  • Slide 88
  • TCP điều khiển tắc nghẽn additive tăng lecircn multiplicative giảm xuống
  • TCP điều khiển tắc nghẽn chi tiết
  • TCP khởi động chậm
  • TCP khởi động chậm (tt)
  • Tinh chế
  • Tinh chế nhận biết mất maacutet
  • Tổng kết TCP điều khiển tắc nghẽn
  • TCP điều khiển tắc nghẽn becircn gửi
  • TCP throughput
  • TCP tương lai
  • TCP tiacutenh cocircng bằng
  • Tại sao phải TCP cocircng bằng
  • TCP tiacutenh cocircng bằng (tt)
  • Mocirc higravenh trễ
  • Cửa sổ tắc nghẽn cố định (1)
  • Cửa sổ tắc nghẽn cố định (2)
  • TCP Mocirc higravenh trễ Khởi động chậm (1)
  • TCP Mocirc higravenh trễ Khởi động chậm (2)
  • TCP Mocirc higravenh trễ(3)
  • TCP Mocirc higravenh trễ (4)
  • HTTP Mocirc higravenh
  • Slide 110
  • Slide 111
  • Chương 3 Tổng kết

Transport Layer 3-48

GBN hoạt động

Transport Layer 3-49

Lặp coacute lựa chọn

becircn nhận thocircng baacuteo đatilde nhận đuacuteng tất cả từng goacutei một đệm (buffer) caacutec goacutei nếu cần thiết

becircn gửi chỉ gửi lại caacutec goacutei nagraveo khocircng nhận được ACK becircn gửi định thigrave đối với mỗi goacutei khocircng gửi ACK

cửa sổ becircn gửi N số thứ tự liecircn tục hạn chế số thứ tự caacutec goacutei khocircng gửi ACK

Transport Layer 3-50

Lặp coacute lựa chọn caacutec cửa sổ gửi nhận

Transport Layer 3-51

Lặp coacute lựa chọn

dữ liệu từ lớp trecircn nếu số thứ tự kế tiếp sẵn

sagraveng trong cửa sổ gửi goacutei

timeout(n) gửi lại goacutei n taacutei khởi tạo

bộ định thigrave

ACK(n) trong [sendbasesendbase+N]

đaacutenh dấu goacutei n lagrave đatilde nhận nếu goacutei khocircng ACK coacute n

nhỏ nhất dịch chuyển cửa sổ base đến số thứ tự khocircng ACK kế tiếp

Gửigoacutei n trong [rcvbase

rcvbase+N-1]

gửi ACK(n) khocircng thứ tự đệm

(buffer) coacute thứ tự truyền (cũng

truyền caacutec goacutei đatilde đệm coacute thứ tự) dịch chuyển cửa sổ đến goacutei chưa nhận kế tiếp

goacutei n trong [rcvbase-Nrcvbase-1]

ACK(n)

ngược lại lờ đi

Nhận

Transport Layer 3-52

Hoạt động của lặp coacute lựa chọn

Transport Layer 3-53

Lặp coacute lựa chọntigravenh trạng khoacute giải quyếtViacute dụ Số thứ tự 0 1 2 3 Kiacutech thước cửa sổ = 3

becircn nhận khocircng thấy sự khaacutec nhau trong 2 tigravenh huống

chuyển khocircng chiacutenh xaacutec dữ liệu trugraveng lặp như dữ liệu mới trong (a)

Hỏi quan hệ giữa datildey số thứ tự vagrave kiacutech thước cửa sổ

Transport Layer 3-54

Chương 3 Nội dung trigravenh bagravey

31 Caacutec dịch vụ lớp Transport

32 Multiplexing vagrave demultiplexing

33 Vận chuyển khocircng kết nối UDP

34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy

35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối

36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn

37 Điều khiển tắc nghẽn TCP

Transport Layer 3-55

TCP Tổng quan RFCs 793 1122 1323 2018 2581

dữ liệu full duplex luồng dữ liệu đi 2 chiều

trong cugraveng một kết nối MSS maximum

segment size ndash kiacutech thước đoạn tối đa

hướng kết nối bắt tay (trao đổi caacutec

thocircng điệp điều khiển) trạng thaacutei becircn gửi becircn nhận trước khi trao đổi dữ liệu

điều khiển luồng becircn gửi sẽ khocircng lấn aacutet

becircn nhận

point-to-point một becircn gửi một becircn

nhận tin cậy dograveng byte coacute

thứ tự khocircng ldquoranh giới thocircng

điệprdquo kecircnh liecircn lạc

TCP điều khiển luồng vagrave tắc nghẽn thiết lập kiacutech thước cửa sổ

caacutec bộ đệm gửi amp nhận

socketdoor

T C Psend buffer

T C Preceive buffer

socketdoor

segm ent

applicationwrites data

applicationreads data

Transport Layer 3-56

TCP cấu truacutec đoạn

port nguồn port điacutech

32 bits

dữ liệu ứng dụng(độ dagravei thay đổi)

số thứ tự

số ACKcửa sổ nhận

con trỏ URGchecksum

FSRPAUheadlen

notused

Tugravey chọn (độ dagravei thay đổi)

URG dữ liệu khẩn cấp(thường khocircng dugraveng)

ACK ACK hợp lệ

PSH push data now(thường khocircng dugraveng)

RST SYN FINthiết lập kết nối

(caacutec lệnh thiết lậpchia nhỏ)

số byte becircn nhận sẵn sagraveng chấp nhận

đếm bởi số bytecủa dữ liệu

Internetchecksum

(giống UDP)

Transport Layer 3-57

Caacutec số thứ tự TCP vagrave ACKCaacutec số thứ tự

dograveng byte ldquođaacutenh sốrdquo byte đầu tiecircn trong dữ liệu của đoạn

caacutec ACK số thứ tự của byte

kế tiếp được chờ đợi từ phiacutea becircn kia

ACK tiacutech lũyHỏi lagravem thế nagraveo becircn

nhận quản lyacute caacutec đoạn khocircng thứ tự Trả lời TCP khocircng

đề cập tugravey thuộc người hiện thực

Host A Host B

Seq=42 ACK=79 data = lsquoCrsquo

Seq=79 ACK=43 data = lsquoCrsquo

Seq=43 ACK=80

UsernhậplsquoCrsquo

host ACKsnhận phản hồi

lsquoCrsquo

host ACKsbaacuteo nhận

lsquoCrsquo phản hồingược lại lsquoCrsquo

timetigravenh huống telnet đơn giản

Transport Layer 3-58

TCP Round Trip Time vagraveTimeout

Hỏi Lagravem thế nagraveo để thiết lập giaacute trị TCP timeout

dagravei hơn RTT khaacutec với RTT

quaacute ngắn timeout sớm truyền lại khocircng

cần thiết quaacute dagravei phản ứng

chậm đối với việc mất maacutet goacutei

Hỏi Lagravem thế nagraveo để thiết lập RTT

SampleRTT thời gian được đo từ khi truyền đoạn đến khi baacuteo nhận ACK lờ đi việc truyền lại

SampleRTT sẽ thay đổi muốn ước lượng RTT ldquomượt hơnrdquo tiacutenh trung bigravenh một số giaacute

trị đo được gần đoacute khocircng chỉ SampleRTT hiện tại

Transport Layer 3-59

TCP Round Trip Time vagrave Timeout

EstimatedRTT = (1- )EstimatedRTT + SampleRTT

giaacute trị đặc trưng = 0125

Transport Layer 3-60

Viacute dụ đaacutenh giaacute RTTRTT gaiacsumassedu to fantasiaeurecomfr

100

150

200

250

300

350

1 8 15 22 29 36 43 50 57 64 71 78 85 92 99 106

time (seconnds)

RTT

(mill

isec

onds

)

SampleRTT Estimated RTT

Transport Layer 3-61

TCP Round Trip Time vagrave Timeout

Thiết lập timeout EstimtedRTT cộng ldquohệ số dự trữ an toagravenrdquo

sự biến thiecircn lớn trong EstimatedRTT -gt hệ số dự trữ an toagraven lớn hơn ước lượng đầu tiecircn về sự biến thiecircn của SampleRTT từ EstimatedRTT

TimeoutInterval = EstimatedRTT + 4DevRTT

DevRTT = (1-)DevRTT + |SampleRTT-EstimatedRTT|

(tiecircu biểu = 025)

Sau đoacute thiết lập timeout interval

Transport Layer 3-62

TCP truyền dữ liệu tin cậy

TCP tạo dịch vụ rdt trecircn dịch vụ khocircng tin cậy IP

caacutec đoạn Pipelined caacutec ACK tiacutech lũy TCP dugraveng bộ định thigrave

truyền lại đơn

Truyền lại được kiacutech hoạt bởi caacutec sự kiện timeout caacutec ack trugraveng lặp

luacutec đầu khảo saacutet caacutec becircn gửi TCP đơn giản lờ đi caacutec ack trugraveng lặp lờ đi điều khiển luồng

điều khiển tắc nghẽn

Transport Layer 3-63

TCP caacutec sự kiệndữ liệu đatilde nhận từ ứng

dụng tạo đoạn với số thứ

tự của noacute số thứ tự lagrave số theo

byte dữ liệu đầu tiecircn khởi động bộ định thigrave

nếu chưa chạy khoảng thời gian hết

hạn TimeOutInterval

timeout gửi lại đoạn nagraveo gacircy

ra timeout khởi động lại bộ định

thigrave Ack đatilde nhận

cập nhật caacutei gigrave sẽ được ACK

khởi động bộ định thigrave nếu coacute caacutec đoạn cograven chờ

Transport Layer 3-64

TCP becircn gửi(đơn giản)

NextSeqNum = InitialSeqNum SendBase = InitialSeqNum

loop (forever) switch(event)

event data received from application above create TCP segment with sequence number NextSeqNum if (timer currently not running) start timer pass segment to IP NextSeqNum = NextSeqNum + length(data)

event timer timeout retransmit not-yet-acknowledged segment with smallest sequence number start timer

event ACK received with ACK field value of y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer

end of loop forever

Chuacute thiacutechbull SendBase-1 byte vừa được ACK tiacutech lũy Viacute dụbull SendBase-1 = 71y= 73 vigrave thế becircn nhận muốn 73+ y gt SendBase vigrave thế dữ liệu mới được chấp nhận

Transport Layer 3-65

TCP caacutec tigravenh huống truyền lại

Host A

Seq=100 20 bytes data

ACK=100

timetimeout sớm

Host B

Seq=92 8 bytes data

ACK=120

Seq=92 8 bytes data

Seq=

92

tim

eout

ACK=120

Host A

Seq=92 8 bytes data

ACK=100

loss

tim

eout

tigravenh huống mất ACK

Host B

X

Seq=92 8 bytes data

ACK=100

time

Seq=

92

tim

eout

SendBase= 100

SendBase= 120

SendBase= 120

Sendbase= 100

Transport Layer 3-66

TCP caacutec tigravenh huống truyền lại (tt)Host A

Seq=92 8 bytes data

ACK=100

loss

tim

eout

Cumulative ACK scenario

Host B

X

Seq=100 20 bytes data

ACK=120

time

SendBase= 120

Transport Layer 3-67

TCP sinh ra ACK [RFC 1122 RFC 2581]

Sự kiện tại becircn nhận

Đoạn đến với đuacuteng số thứ tự mong muốn Tất cả dữ liệu đếnđatilde được ACK

Đoạn đến với đuacuteng số thứ tự mong muốn Một đoạn khaacutec đangchờ ACK

Caacutec đoạn đến khocircng thứ tựlớn hơn số thứ tự đoạn mong muốnCoacute khoảng trống

Đoạn đếnlấp đầy từng phần hoặc toagraven bộkhoảng trống

TCP becircn nhận hagravenh động

ACK trễ Chờ đến 500mscho đoạn kế tiếp Nếu khocircng coacute đoạnkế tiếp gửi ACK

Gửi ngay một ACK tiacutech lũy chấp nhậncho cả caacutec đoạn theo thứ tự

Gửi ngay ACK trugraveng lặp chỉ thị số thứ tựđoạn của byte kế tiếp đang mong chờ

Gửi ngay ACK với điều kiện lagrave đoạnbắt đầu ngay điểm coacute khoảng trống

Transport Layer 3-68

Truyền lại nhanh

Chu kỳ Time-out thường tương đối dagravei độ trễ dagravei trước khi gửi

lại goacutei đatilde mất

Xaacutec nhận caacutec đoạn đatilde mất bằng caacutec ACK trugraveng lặp becircn gửi thường gửi

nhiều đoạn song song Nếu đoạn bị mất sẽ

xảy ra tigravenh trạng giống như nhiều ACK trugraveng nhau

Nếu becircn gửi nhận 3 ACK của cugraveng một dữ liệu noacute cho lagrave đoạn sau dữ liệu đatilde ACK bị mất Truyền lại nhanh gửi

lại đoạn trước khi bộ định thigrave hết hạn

Transport Layer 3-69

sự kiện ACK đatilde nhận với trường lagrave y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer else increment count of dup ACKs received for y if (count of dup ACKs received for y = 3) resend segment with sequence number y

Giải thuật truyền lại nhanh

một ACK trugraveng lặp cho đoạn đatilde được ACK

Truyền lại nhanh

Transport Layer 3-70

Chương 3 Nội dung trigravenh bagravey

31 Caacutec dịch vụ lớp Transport

32 Multiplexing vagrave demultiplexing

33 Vận chuyển khocircng kết nối UDP

34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy

35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối

36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn

37 Điều khiển tắc nghẽn TCP

Transport Layer 3-71

TCP điều khiển luồng

becircn nhận của kết nối TCP coacute một bộ đệm nhận

dịch vụ so trugraveng tốc độ so trugraveng tốc độ gửi với tốc độ nhận của ứng dụng

tiến trigravenh ứng dụng coacute thể chậm tại luacutec đọc bộ đệm

becircn gửi sẽ khocircng lagravem tragraven bộ đệm vigrave truyền quaacute nhiều vagrave

quaacute nhanh

điều khiển luồng

Transport Layer 3-72

TCP điều khiển luồng caacutech lagravem

(Giả sử becircn nhận TCP loại bỏ caacutec đoạn khocircng coacute thứ tự)

dự phograveng trong bộ đệm= RcvWindow

= RcvBuffer-[LastByteRcvd - LastByteRead]

Becircn nhận thocircng baacuteo khoảng dự trữ nhờ giaacute trị RcvWindow trong caacutec đoạn

Becircn gửi hạn chế dữ liệu khocircng được ACK vagraveo RcvWindow bảo đảm bộ đệm nhận

khocircng tragraven

Transport Layer 3-73

Chương 3 Nội dung trigravenh bagravey

31 Caacutec dịch vụ lớp Transport

32 Multiplexing vagrave demultiplexing

33 Vận chuyển khocircng kết nối UDP

34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy

35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối

36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn

37 Điều khiển tắc nghẽn TCP

Transport Layer 3-74

TCP quản lyacute kết nối

Chuacute yacute Becircn gửi vagrave becircn nhận TCP thiết lập ldquokết nốirdquo trước khi trao đổi dữ liệu

khởi tạo caacutec biến TCP caacutec số thứ tự đoạn thocircng tin caacutec bộ đệm điều

khiển luồng (như RcvWindow)

client người khởi xướng kết nối

Socket clientSocket = new Socket(hostnameport

number) server được tiếp xuacutec bởi

client Socket connectionSocket =

welcomeSocketaccept()

3 phương phaacutep bắt tay

Bước 1 client host gửi đoạnTCP SYN đến server xaacutec định số thứ tự khởi đầu khocircng phải dữ liệu

Bước 2 server host nhận SYN trả lời với đoạn SYNACK

server cấp phaacutet caacutec bộ đệm

xaacutec định số thứ tự khởi đầuBước 3 client nhận SYNACK trả

lời với đoạn ACK (coacute thể chứa dữ liệu)

Transport Layer 3-75

TCP quản lyacute kết nối (tt)

Đoacuteng một kết nối

client đoacuteng socket clientSocketclose()

Bước 1 client gửi đoạn điều khiển TCP FIN đến server

Bước 2 server nhận FIN trả lời với ACK Đoacuteng kết nối gửi FIN

client

FIN

server

ACK

ACK

FIN

đoacuteng

đoacuteng

đatilde đoacutengthời g

ian c

hờ

Transport Layer 3-76

TCP quản lyacute kết nối (tt)

Bước 3 client nhận FIN trả lời với ACK

Trong khoảng ldquothời gian chờrdquo ndash sẽ phản hồi với ACK để nhận caacutec FIN

Bước 4 server nhận ACK Kết nối đatilde đoacuteng

Chuacute yacute với một sửa đổi nhỏ coacute thể quản lyacute nhiều FIN đồng thời

client

FIN

server

ACK

ACK

FIN

đang đoacuteng

đang đoacuteng

đatilde đoacuteng

thời g

ian c

hờ

đatilde đoacuteng

Transport Layer 3-77

TCP quản lyacute kết nối (tt)

chu kỳ sống củaTCP client

chu kỳ sống củaTCP server

Transport Layer 3-78

Chương 3 Nội dung trigravenh bagravey

31 Caacutec dịch vụ lớp Transport

32 Multiplexing vagrave demultiplexing

33 Vận chuyển khocircng kết nối UDP

34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy

35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối

36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn

37 Điều khiển tắc nghẽn TCP

Transport Layer 3-79

Caacutec nguyecircn lyacute điều khiển tắc nghẽn

Tắc nghẽn ldquoquaacute nhiều nguồn gửi quaacute nhanh vagrave quaacute nhiều

dữ liệu đến mạngrdquo khaacutec với điều khiển luồng caacutec biểu hiện

caacutec goacutei bị mất (tragraven bộ đệm tại caacutec router) caacutec độ trễ quaacute dagravei (xếp hagraveng trong bộ đệm

của router) lagrave 1 trong 10 vấn đề nan giải nhất

Transport Layer 3-80

Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 1

2 gửi 2 nhận 1 router caacutec bộ

đệm khocircng giới hạn

khocircng coacute truyền lại

caacutec độ trễ lớn hơn khi tắc nghẽn

năng suất coacute thể đạt tối đa

unlimited shared output link buffers

Host Ain original data

Host B

out

Transport Layer 3-81

Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 2

1 router caacutec bộ đệm coacute giới hạn becircn gửi truyền lại caacutec goacutei đatilde mất

chia sẻ vocirc hạncaacutec bộ đệm ouput

Host A in dữ liệu gốc

Host B

out

in dữ liệu gốc cugraveng với dữ liệu truyền lại

Transport Layer 3-82

Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 2 luocircn luocircn

truyền lại ldquohoagraven toagravenrdquo chỉ khi mất maacutet

truyền lại vigrave trễ (khocircng mất) lagravem cho lớn hơn với cugraveng

in

out

=

in

out

gt

in

out

ldquocaacutec chi phiacuterdquo của tắc nghẽn nhiều việc (truyền lại) caacutec truyền lại khocircng cần thiết liecircn kết nhiều bản sao của

goacutei

R2

R2in

ou

t

b

R2

R2in

ou

t

a

R2

R2in

ou

t

c

R4

R3

Transport Layer 3-83

Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 3 4 người gửi caacutec đường qua nhiều hop timeouttruyền lại

in

Hỏi điều gigrave xảy ra nếu vagrave tăng lecircn

in

chia sẻ vocirc hạncaacutec bộ đệm ouput

Host Ain dữ liệu gốc

Host B

out

in dữ liệu gốc cugraveng với dữ liệu truyền lại

Transport Layer 3-84

Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 3

ldquochi phiacuterdquo khaacutec của tắc nghẽn khi caacutec goacutei bị bỏ bất kỳ ldquokhả năng truyền

upstream dugraveng cho goacutei đoacute sẽ bị latildeng phiacuterdquo

Host A

Host B

o

u

t

Transport Layer 3-85

Caacutec caacutech tiếp cận đối với điều khiển tắc nghẽn

điều khiển tắc nghẽn end-end

khocircng coacute phản hồi rotilde ragraveng từ mạng

tắc nghẽn được suy ra từ việc quan saacutet caacutec hệ thống đầu cuối coacute mất maacutet trễ

tiếp cận được quản lyacute bởi TCP

điều khiển tắc nghẽn coacute sự hỗ trợ của mạng

caacutec router cung cấp phản hồi về caacutec hệ thống đầu cuối 1 bit duy nhất chỉ thị

tắc nghẽn (SNA DECbit TCPIP ECN ATM)

tốc độ sẽ gửi được xaacutec định rotilde ragraveng

2 caacutech

Transport Layer 3-86

Viacute dụ điều khiển tắc nghẽn ATM ABR

ABR tốc độ bit sẵn sagraveng

ldquodịch vụ mềm dẻordquo nếu đường gửi ldquochưa

hếtrdquo becircn gửi sẽ dugraveng

băng thocircng sẵn sagraveng nếu đường gửi tắc

nghẽn becircn gửi điều tiết với

tốc độ tối thiểu

RM (resource management)

gửi bởi becircn gửi rải raacutec với caacutec ocirc dữ liệu

caacutec bit trong ocirc thiết lập bởi caacutec switch bit NI khocircng tăng tốc độ

(tắc nghẽn nhẹ) bit CI tắc nghẽn rotilde rệt

Caacutec ocirc RM được trả về becircn gửi từ becircn nhận với nguyecircn vẹn caacutec bit

Transport Layer 3-87

Viacute dụ điều khiển tắc nghẽn ATM ABR

trường 2-byte ER trong ocirc RM switch đatilde tắc nghẽn coacute thể coacute giaacute trị ER thấp hơn trong ocirc tốc độ gửi do đoacute coacute thể được hỗ trợ tối đa trecircn đường

EFCI bit trong caacutec ocirc dữ liệu được cagravei giaacute trị 1 trong switch đatilde tắc nghẽn nếu ocirc dữ liệu đứng trước ocirc RM coacute cagravei EFCI becircn gửi sẽ cagravei

bit CI trong ocirc RM trả về

Transport Layer 3-88

Chương 3 Nội dung trigravenh bagravey

31 Caacutec dịch vụ lớp Transport

32 Multiplexing vagrave demultiplexing

33 Vận chuyển khocircng kết nối UDP

34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy

35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối

36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn

37 Điều khiển tắc nghẽn TCP

Transport Layer 3-89

TCP điều khiển tắc nghẽn additive tăng lecircn multiplicative giảm xuống

8 Kbytes

16 Kbytes

24 Kbytes

time

congestionwindow

Caacutech tiếp cận tăng tốc độ truyền (kiacutech thước cửa sổ) tigravem khả năng băng thocircng coacute thể cho đến khi coacute mất maacutet xảy ra additive tăng lecircn tăng CongWin bởi 1 MSS

mỗi RTT cho đến khi coacute mất maacutet xảy ra multiplicative giảm xuống bỏ CongWin trong

nửa giai đoạn sau khi mất maacutet

timekiacutech

thư

ớc

cửa

sổ

tắc

nghẽ

n

Tigravem kiếm băng thocircng

Transport Layer 3-90

TCP điều khiển tắc nghẽn chi tiết

becircn gửi hạn chế việc truyền LastByteSent-LastByteAcked

CongWin Cocircng thức

CongWin thay đổi chức năng lagrave nhận biết tắc nghẽn trecircn mạng

Lagravem thế nagraveo becircn gửi nhận biết tắc nghẽn

mất maacutet xảy ra = timeout hoặc 3 ack trugraveng lặp

becircn gửi giảm tốc độ (CongWin) sau khi mất maacutet xảy ra

3 cơ chế AIMD khởi động chậm thận trọng sau khi coacute

caacutec sự kiện timeout

tốc độ = CongWin

RTT Bytess

Transport Layer 3-91

TCP khởi động chậm

Khi kết nối bắt đầu CongWin = 1 MSS Viacute dụ MSS = 500 bytes

amp RTT = 200 ms tốc độ khởi tạo = 20

kbps

băng thocircng sẵn sagraveng coacute thể gtgt MSSRTT mong muốn nhanh

choacuteng tăng tốc lecircn tốc độ coacute thể đaacutep ứng

Khi kết nối bắt đầu tăng tốc lecircn rất nhanh cho đến khi sự cố mất maacutet xảy ra đầu tiecircn

Transport Layer 3-92

TCP khởi động chậm (tt)

Khi kết nối bắt đầu tăng tốc lecircn rất nhanh cho đến khi sự cố mất maacutet xảy ra đầu tiecircn nhacircn đocirci CongWin mỗi

RTT hoagraven thagravenh nhờ tăng CongWin ứng với mỗi ACK đatilde nhận

Tổng kết tốc độ khởi đầu lagrave chậm nhưng sau đoacute tăng tốc rất nhanh

Host A

1 đoạn

RTT

Host B

thời gian

2 đoạn

4 đoạn

Transport Layer 3-93

Tinh chếHỏi Khi nagraveo việc tăng

tốc trở thagravenh tuyến tiacutenh

Trả lời Khi CongWin đạt đến 12 giaacute trị của noacute trước khi timeout

Hiện thực Ngưỡng thay đổi Tại thời điểm coacute sự cố

mất maacutet ngưỡng được cagravei giaacute trị bằng frac12 của CongWin ngay trước đoacute

Transport Layer 3-94

Tinh chế nhận biết mất maacutet

Sau 3 ACK trugraveng lặp CongWin sẽ giảm 12 kiacutech thước cửa sổ

tăng tuyến tiacutenh nhưng sau sự cố

timeout CongWin thay giaacute trị

bằng 1 MSS kiacutech thước cửa sổ

tăng cấp lũy thừa khi đến một ngưỡng

thigrave tăng tuyến tiacutenh

3 ACK trugraveng nhau chỉ ra khả năng truyền của mạng timeout chỉ thị ldquonhiều cảnh baacuteordquo về tigravenh huống tắc nghẽn

Nguyecircn lyacute

Transport Layer 3-95

Tổng kết TCP điều khiển tắc nghẽn

Khi CongWin dưới Threshold becircn gửi đang trong giai đoạn khởi động chậm kiacutech thước cửa sổ tăng nhanh theo cấp lũy thừa

Khi CongWin trecircn Threshold becircn gửi đang trong giai đoạn traacutenh tắc nghẽn kiacutech thước cửa sổ tăng nhanh theo cấp tuyến tiacutenh

Khi coacute 3 ACK trugraveng lặp xảy ra Threshold = CongWin2 vagrave CongWin = Threshold

Khi timeout xảy ra Threshold = CongWin2 vagrave CongWin = 1 MSS

Transport Layer 3-96

TCP điều khiển tắc nghẽn becircn gửi

Trạng thaacutei Sự kiện TCP becircn gửi hagravenh động Diễn giải

Slow Start (SS)-Khởi động chậm

ACK baacuteo nhận cho dữ liệu chưa ACK trước đoacute

CongWin = CongWin + MSS If (CongWin gt Threshold) cagravei đặt trạng thaacutei ldquoTraacutenh tắc nghẽnrdquo

Hậu quả lagravem tăng gấp đocirci CongWin mỗi RTT

CongestionAvoidance (CA) ndashTraacutenh tắc nghẽn

ACK baacuteo nhận cho dữ liệu chưa ACK trước đoacute

CongWin = CongWin+MSS (MSSCongWin)

Additive tăng lecircn lagravem tăng CongWin lecircn 1 MSS mỗi RTT

SS hoặc CA Sự cố mất maacutet xảy ra khi thấy coacute 3 ACK trugraveng lặp

Threshold = CongWin2 CongWin = Thresholdcagravei đặt trạng thaacutei ldquoTraacutenh tắc nghẽnrdquo

Khocirci phục nhanh hiện thực giảm xuống multiplicative CongWin sẽ khocircng giảm xuống dưới 1 MSS

SS hoặc CA Timeout Threshold = CongWin2 CongWin = 1 MSScagravei đặt trạng thaacutei ldquoKhởi động chậmrdquo

Vagraveo chế độ ldquoKhởi động chậmrdquo

SS hoặc CA ACK trugraveng lặp

Đếm ACK tăng lecircn cho đoạn vừa được ACK

CongWin vagrave Threshold khocircng thay đổi

Transport Layer 3-97

TCP throughput

Throughout trung bigravenh của TCP biểu diễn qua kiacutech thước của sổ vagrave RTT Bỏ qua trạng thaacutei ldquoKhởi động chậmrdquo

Cho W lagrave kiacutech thước cửa sổ khi coacute mất maacutet xảy ra

Khi kiacutech thước cửa sổ = W lưu lượng = WRTT

Chỉ ngay sau khi mất maacutet cửa sổ giảm xuống = W2 lưu lượng = W2RTT

throughout trung bigravenh 075 WRTT

Transport Layer 3-98

TCP tương lai

Viacute dụ caacutec đoạn dagravei 1500 byte RTT 100ms lưu lượng 10 Gbps

Kiacutech thước cửa sổ yecircu cầu W = 83333 đoạn trecircn đường truyền

Lưu lượng trong caacutec trường hợp mất maacutet

L = 210-10

Phiecircn bản mới của TCP dagravenh cho nhu cầu tốc độ cao

LRTT

MSS221

Transport Layer 3-99

Mục tiecircu nếu K phiecircn lagravem việc TCP chia sẻ kết nối cổ chai của băng thocircng lagrave R mỗi phiecircn coacute tốc độ trung bigravenh lagrave RK

TCP kết nối 1

router cổ chaikhả năng R

TCP kết nối 2

TCP tiacutenh cocircng bằng

Transport Layer 3-100

Tại sao phải TCP cocircng bằng

2 phiecircn lagravem việc cạnh tranh nhau Additive tăng lưu lượng tăng multiplicative giảm lưu lượng tương xứng

R

R

chia sẻ băng thocircng bằng nhau

Connection 1 throughputConnect

ion 2

th

roughput

traacutenh tắc nghẽn additive tăng lecircnmất maacutet giảm cửa sổ bằng 12

traacutenh tắc nghẽn additive tăng lecircnmất maacutet giảm cửa sổ bằng 12

Transport Layer 3-101

TCP tiacutenh cocircng bằng (tt)

Tiacutenh cocircng bằng amp UDP nhiều ứng dụng

thường khocircng dugraveng TCP khocircng muốn tốc độ bị

điều tiết do điều khiển tắc nghẽn

Thay bằng dugraveng UDP truyền audiovideo với

tốc độ ổn định chịu được mất maacutet

Nghiecircn cứu giao thức thacircn thiện với TCP

Tiacutenh cocircng bằng amp caacutec kết nối TCP song song

khocircng coacute gigrave ngăn cản việc ứng dụng mở caacutec kết nối song song giữa 2 host

Trigravenh duyệt Web lagravem giống như thế

Viacute dụ tốc độ R hỗ trợ 9 kết nối ứng dụng mới yecircu cầu 1

TCP coacute tốc độ R10 ứng dụng mới yecircu cầu 11

TCP coacute tốc độ R2

Transport Layer 3-102

Mocirc higravenh trễ

Hỏi Mất bao lacircu để nhận 1 đối tượng từ Web server sau khi gửi yecircu cầu

Bỏ qua tắc nghẽn trễ bị ảnh hưởng bởi

thiết lập kết nối TCP trễ truyền dữ liệu khởi động chậm

Notation caacutec giả định Giả sử một kết nối giữa

client vagrave server coacute tốc độ R

S MSS (bits) O kiacutech thước đối tượng

(bits) khocircng truyền lại (khocircng

mất maacutet khocircng hỏng)

Kiacutech thước cửa sổ Giả định 1 cửa sổ tắc

nghẽn cố định coacute W đoạn Sau đoacute cửa sổ thay đổi

mocirc higravenh khởi động chậm

Transport Layer 3-103

Cửa sổ tắc nghẽn cố định (1)

Trường hợp đầu tiecircnWSR gt RTT + SR cho

đoạn đầu tiecircn trong cửa sổ trả về trước khi cửa sổ dữ liệu gửi ACK

trễ = 2RTT + OR

Transport Layer 3-104

Cửa sổ tắc nghẽn cố định (2)

Trường hợp thứ hai WSR lt RTT + SR sent

chờ cho ACK sau khi gửi dữ liệu

trễ = 2RTT + OR+ (K-1)[SR + RTT - WSR]

Transport Layer 3-105

TCP Mocirc higravenh trễ Khởi động chậm (1)

Bacircy giờ giả sử kiacutech thước cửa sổ tăng lecircn tugravey theo quaacute trigravenh khởi động chậm

Độ trễ của một đối tượng sẽ lagrave

R

S

R

SRTTP

R

ORTTLatency P )12(2

trong đoacute P lagrave số lần TCP rảnh ở tại server

1min KQP

- trong đoacute Q lagrave số lần server rảnh nếu đối tượng đatilde khởi tạo kiacutech thước

- vagrave K lagrave số lượng cửa sổ bao trugravem đối tượng

Transport Layer 3-106

TCP Mocirc higravenh trễ Khởi động chậm (2)

RTT

initia te TCPconnection

requestobject

first w indow= S R

second w indow= 2S R

third w indow= 4S R

fourth w indow= 8S R

com pletetransm issionobject

delivered

tim e atc lient

tim e atserver

Viacute dụbull OS = 15 đoạnbull K = 4 cửa sổbull Q = 2bull P = minK-1Q = 2

Server rảnh P=2 lần

Caacutec thagravenh phần trễbull 2 RTT dagravenh cho thiết lập kết nối vagrave yecircu cầubull OR để truyền đối tượngbullthời gian server rảnh bởi vigrave khởi động chậm

Server rảnh P = minK-1Q lần

Transport Layer 3-107

TCP Mocirc higravenh trễ(3)

R

S

R

SRTTPRTT

R

O

R

SRTT

R

SRTT

R

O

idleTimeRTTR

O

P

kP

k

P

pp

)12(][2

]2[2

2delay

1

1

1

th window after the timeidle 2 1 kR

SRTT

R

S k

ementacknowledg receivesserver until

segment send tostartsserver when from time RTTR

S

window kth the transmit totime2 1

R

Sk

RTT

initia te TCPconnection

requestobject

first w indow= S R

second w indow= 2S R

third w indow= 4S R

fourth w indow= 8S R

com pletetransm issionobject

delivered

tim e atc lient

tim e atserver

Transport Layer 3-108

TCP Mocirc higravenh trễ (4)

)1(log

)1(logmin

12min

222min

222min

2

2

110

110

S

OS

Okk

S

Ok

SOk

OSSSkK

k

k

k

caacutech tiacutenh toaacuten Q tương tự (xem HW)

K = số lượng cửa sổ bao trugravem đối tượngLagravem thế nagraveo tiacutenh được K

Transport Layer 3-109

HTTP Mocirc higravenh Giả sử trang Web chứa

1 trang HTML (kiacutech thước O bits) M higravenh ảnh (mỗi caacutei kiacutech thướcO bits)

HTTP khocircng bền vững M+1 TCP kết nối Thời gian đaacutep ứng = (M+1)OR + (M+1)2RTT + tổng số thời

gian rảnh HTTP bền vững

2 RTT để yecircu cầu vagrave nhận file HTML 1 RTT để yecircu cầu vagrave nhận M higravenh ảnh Thời gian đaacutep ứng = (M+1)OR + 3RTT + tổng số thời gian

rảnh HTTP khocircng bền vững với X kết nối song song

Giả sử MX lagrave số nguyecircn 1 TCP kết nối cho file MX thiết lập caacutec kết nối song song cho caacutec higravenh ảnh Thời gian đaacutep ứng = (M+1)OR + (MX + 1)2RTT + tổng số

thời gian rảnh

Transport Layer 3-110

02468

101214161820

28Kbps

100Kbps

1Mbps

10Mbps

non-persistent

persistent

parallel non-persistent

HTTP thời gian đaacutep ứng (giacircy)RTT = 100 msec O = 5 Kbytes M=10 vagrave X=5

Với băng thocircng thấp thời gian kết nối amp đaacutep ứng trội hơn thời gian truyền

Caacutec kết nối bền vững chỉ cho sự cải thiện khocircng đaacuteng kể trecircn caacutec kết nối song song

Transport Layer 3-111

0

10

20

30

40

50

60

70

28Kbps

100Kbps

1Mbps

10Mbps

non-persistent

persistent

parallel non-persistent

HTTP thời gian đaacutep ứng (giacircy)

RTT =1 sec O = 5 Kbytes M=10 and X=5

Với RTT lớn hơn thời gian đaacutep ứng trội hơn thời gian trễ chờ thiết lập kết nốiTCP amp khởi động chậm Caacutec kết nối bền vững bacircy giờ cho thấy cải thiện rotilde rệt đặc biệtvới caacutec mạng băng thocircng cao

Transport Layer 3-112

Chương 3 Tổng kết caacutec nguyecircn lyacute của caacutec

dịch vụ lớp transport multiplexing

demultiplexing truyền dữ liệu tin cậy điều khiển luồng điều khiển tắc nghẽn

khởi tạo vagrave hiện thực trong Internet UDP TCP

Tiếp theo nghiecircn cứu xong

caacutec vấn đề ldquongoagravei biecircnrdquo (caacutec lớp application transport)

chuẩn bị vagraveo phần ldquolotildeirdquo của mạng

  • Slide 1
  • Chương 3 Lớp Transport
  • Chương 3 Nội dung trigravenh bagravey
  • Caacutec dịch vụ vagrave giao thức Transport
  • Lớp Transport với lớp network
  • Caacutec giao thức lớp transport trecircn Internet
  • Slide 7
  • Multiplexingdemultiplexing
  • Demultiplexing lagravem việc như thế nagraveo
  • Demultiplexing khocircng kết nối
  • Demultiplexing khocircng kết nối (tiếp)
  • Demultiplexing hướng kết nối
  • Demultiplexing hướng kết nối (tiếp)
  • Demultiplexing hướng kết nối Threaded Web Server
  • Slide 15
  • UDP User Datagram Protocol [RFC 768]
  • UDP (tt)
  • UDP checksum
  • Viacute dụ Checksum
  • Slide 20
  • Caacutec nguyecircn lyacute truyền dữ liệu tin cậy
  • Slide 22
  • Slide 23
  • Truyền dữ liệu tin cậy
  • Slide 25
  • Rdt10 truyền dữ liệu tin cậy trecircn 1 kecircnh truyền tin cậy
  • Rdt20 kecircnh với caacutec lỗi
  • rdt20 đặc tả FSM
  • rdt20 hoạt động khi khocircng lỗi
  • rdt20 hoạt động khi coacute lỗi
  • rdt20 coacute lỗ hổng nghiecircm trọng
  • rdt21 người gửi quản lyacute caacutec ACKNAK bị hỏng
  • Slide 33
  • rdt21 thảo luận
  • rdt22 một giao thức khocircng cần NAK
  • rdt22 gửi nhận caacutec mảnh
  • rdt30 caacutec kecircnh với lỗi vagrave mất maacutet
  • rdt30 gửi
  • hagravenh động của rdt30
  • Slide 40
  • Hiệu suất của rdt30
  • rdt30 hoạt động dừng-vagrave-chờ
  • Caacutec giao thức Pipelined
  • Pipelining độ khả dụng tăng
  • Go-Back-N
  • GBN becircn gửi mở rộng FSM
  • GBN becircn nhận mở rộng FSM
  • GBN hoạt động
  • Lặp coacute lựa chọn
  • Lặp coacute lựa chọn caacutec cửa sổ gửi nhận
  • Slide 51
  • Hoạt động của lặp coacute lựa chọn
  • Lặp coacute lựa chọn tigravenh trạng khoacute giải quyết
  • Slide 54
  • TCP Tổng quan RFCs 793 1122 1323 2018 2581
  • TCP cấu truacutec đoạn
  • Caacutec số thứ tự TCP vagrave ACK
  • TCP Round Trip Time vagraveTimeout
  • TCP Round Trip Time vagrave Timeout
  • Viacute dụ đaacutenh giaacute RTT
  • Slide 61
  • TCP truyền dữ liệu tin cậy
  • TCP caacutec sự kiện
  • TCP becircn gửi (đơn giản)
  • TCP caacutec tigravenh huống truyền lại
  • TCP caacutec tigravenh huống truyền lại (tt)
  • TCP sinh ra ACK [RFC 1122 RFC 2581]
  • Truyền lại nhanh
  • Giải thuật truyền lại nhanh
  • Slide 70
  • TCP điều khiển luồng
  • TCP điều khiển luồng caacutech lagravem
  • Slide 73
  • TCP quản lyacute kết nối
  • TCP quản lyacute kết nối (tt)
  • Slide 76
  • Slide 77
  • Slide 78
  • Caacutec nguyecircn lyacute điều khiển tắc nghẽn
  • Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 1
  • Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 2
  • Slide 82
  • Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 3
  • Slide 84
  • Caacutec caacutech tiếp cận đối với điều khiển tắc nghẽn
  • Viacute dụ điều khiển tắc nghẽn ATM ABR
  • Slide 87
  • Slide 88
  • TCP điều khiển tắc nghẽn additive tăng lecircn multiplicative giảm xuống
  • TCP điều khiển tắc nghẽn chi tiết
  • TCP khởi động chậm
  • TCP khởi động chậm (tt)
  • Tinh chế
  • Tinh chế nhận biết mất maacutet
  • Tổng kết TCP điều khiển tắc nghẽn
  • TCP điều khiển tắc nghẽn becircn gửi
  • TCP throughput
  • TCP tương lai
  • TCP tiacutenh cocircng bằng
  • Tại sao phải TCP cocircng bằng
  • TCP tiacutenh cocircng bằng (tt)
  • Mocirc higravenh trễ
  • Cửa sổ tắc nghẽn cố định (1)
  • Cửa sổ tắc nghẽn cố định (2)
  • TCP Mocirc higravenh trễ Khởi động chậm (1)
  • TCP Mocirc higravenh trễ Khởi động chậm (2)
  • TCP Mocirc higravenh trễ(3)
  • TCP Mocirc higravenh trễ (4)
  • HTTP Mocirc higravenh
  • Slide 110
  • Slide 111
  • Chương 3 Tổng kết

Transport Layer 3-49

Lặp coacute lựa chọn

becircn nhận thocircng baacuteo đatilde nhận đuacuteng tất cả từng goacutei một đệm (buffer) caacutec goacutei nếu cần thiết

becircn gửi chỉ gửi lại caacutec goacutei nagraveo khocircng nhận được ACK becircn gửi định thigrave đối với mỗi goacutei khocircng gửi ACK

cửa sổ becircn gửi N số thứ tự liecircn tục hạn chế số thứ tự caacutec goacutei khocircng gửi ACK

Transport Layer 3-50

Lặp coacute lựa chọn caacutec cửa sổ gửi nhận

Transport Layer 3-51

Lặp coacute lựa chọn

dữ liệu từ lớp trecircn nếu số thứ tự kế tiếp sẵn

sagraveng trong cửa sổ gửi goacutei

timeout(n) gửi lại goacutei n taacutei khởi tạo

bộ định thigrave

ACK(n) trong [sendbasesendbase+N]

đaacutenh dấu goacutei n lagrave đatilde nhận nếu goacutei khocircng ACK coacute n

nhỏ nhất dịch chuyển cửa sổ base đến số thứ tự khocircng ACK kế tiếp

Gửigoacutei n trong [rcvbase

rcvbase+N-1]

gửi ACK(n) khocircng thứ tự đệm

(buffer) coacute thứ tự truyền (cũng

truyền caacutec goacutei đatilde đệm coacute thứ tự) dịch chuyển cửa sổ đến goacutei chưa nhận kế tiếp

goacutei n trong [rcvbase-Nrcvbase-1]

ACK(n)

ngược lại lờ đi

Nhận

Transport Layer 3-52

Hoạt động của lặp coacute lựa chọn

Transport Layer 3-53

Lặp coacute lựa chọntigravenh trạng khoacute giải quyếtViacute dụ Số thứ tự 0 1 2 3 Kiacutech thước cửa sổ = 3

becircn nhận khocircng thấy sự khaacutec nhau trong 2 tigravenh huống

chuyển khocircng chiacutenh xaacutec dữ liệu trugraveng lặp như dữ liệu mới trong (a)

Hỏi quan hệ giữa datildey số thứ tự vagrave kiacutech thước cửa sổ

Transport Layer 3-54

Chương 3 Nội dung trigravenh bagravey

31 Caacutec dịch vụ lớp Transport

32 Multiplexing vagrave demultiplexing

33 Vận chuyển khocircng kết nối UDP

34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy

35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối

36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn

37 Điều khiển tắc nghẽn TCP

Transport Layer 3-55

TCP Tổng quan RFCs 793 1122 1323 2018 2581

dữ liệu full duplex luồng dữ liệu đi 2 chiều

trong cugraveng một kết nối MSS maximum

segment size ndash kiacutech thước đoạn tối đa

hướng kết nối bắt tay (trao đổi caacutec

thocircng điệp điều khiển) trạng thaacutei becircn gửi becircn nhận trước khi trao đổi dữ liệu

điều khiển luồng becircn gửi sẽ khocircng lấn aacutet

becircn nhận

point-to-point một becircn gửi một becircn

nhận tin cậy dograveng byte coacute

thứ tự khocircng ldquoranh giới thocircng

điệprdquo kecircnh liecircn lạc

TCP điều khiển luồng vagrave tắc nghẽn thiết lập kiacutech thước cửa sổ

caacutec bộ đệm gửi amp nhận

socketdoor

T C Psend buffer

T C Preceive buffer

socketdoor

segm ent

applicationwrites data

applicationreads data

Transport Layer 3-56

TCP cấu truacutec đoạn

port nguồn port điacutech

32 bits

dữ liệu ứng dụng(độ dagravei thay đổi)

số thứ tự

số ACKcửa sổ nhận

con trỏ URGchecksum

FSRPAUheadlen

notused

Tugravey chọn (độ dagravei thay đổi)

URG dữ liệu khẩn cấp(thường khocircng dugraveng)

ACK ACK hợp lệ

PSH push data now(thường khocircng dugraveng)

RST SYN FINthiết lập kết nối

(caacutec lệnh thiết lậpchia nhỏ)

số byte becircn nhận sẵn sagraveng chấp nhận

đếm bởi số bytecủa dữ liệu

Internetchecksum

(giống UDP)

Transport Layer 3-57

Caacutec số thứ tự TCP vagrave ACKCaacutec số thứ tự

dograveng byte ldquođaacutenh sốrdquo byte đầu tiecircn trong dữ liệu của đoạn

caacutec ACK số thứ tự của byte

kế tiếp được chờ đợi từ phiacutea becircn kia

ACK tiacutech lũyHỏi lagravem thế nagraveo becircn

nhận quản lyacute caacutec đoạn khocircng thứ tự Trả lời TCP khocircng

đề cập tugravey thuộc người hiện thực

Host A Host B

Seq=42 ACK=79 data = lsquoCrsquo

Seq=79 ACK=43 data = lsquoCrsquo

Seq=43 ACK=80

UsernhậplsquoCrsquo

host ACKsnhận phản hồi

lsquoCrsquo

host ACKsbaacuteo nhận

lsquoCrsquo phản hồingược lại lsquoCrsquo

timetigravenh huống telnet đơn giản

Transport Layer 3-58

TCP Round Trip Time vagraveTimeout

Hỏi Lagravem thế nagraveo để thiết lập giaacute trị TCP timeout

dagravei hơn RTT khaacutec với RTT

quaacute ngắn timeout sớm truyền lại khocircng

cần thiết quaacute dagravei phản ứng

chậm đối với việc mất maacutet goacutei

Hỏi Lagravem thế nagraveo để thiết lập RTT

SampleRTT thời gian được đo từ khi truyền đoạn đến khi baacuteo nhận ACK lờ đi việc truyền lại

SampleRTT sẽ thay đổi muốn ước lượng RTT ldquomượt hơnrdquo tiacutenh trung bigravenh một số giaacute

trị đo được gần đoacute khocircng chỉ SampleRTT hiện tại

Transport Layer 3-59

TCP Round Trip Time vagrave Timeout

EstimatedRTT = (1- )EstimatedRTT + SampleRTT

giaacute trị đặc trưng = 0125

Transport Layer 3-60

Viacute dụ đaacutenh giaacute RTTRTT gaiacsumassedu to fantasiaeurecomfr

100

150

200

250

300

350

1 8 15 22 29 36 43 50 57 64 71 78 85 92 99 106

time (seconnds)

RTT

(mill

isec

onds

)

SampleRTT Estimated RTT

Transport Layer 3-61

TCP Round Trip Time vagrave Timeout

Thiết lập timeout EstimtedRTT cộng ldquohệ số dự trữ an toagravenrdquo

sự biến thiecircn lớn trong EstimatedRTT -gt hệ số dự trữ an toagraven lớn hơn ước lượng đầu tiecircn về sự biến thiecircn của SampleRTT từ EstimatedRTT

TimeoutInterval = EstimatedRTT + 4DevRTT

DevRTT = (1-)DevRTT + |SampleRTT-EstimatedRTT|

(tiecircu biểu = 025)

Sau đoacute thiết lập timeout interval

Transport Layer 3-62

TCP truyền dữ liệu tin cậy

TCP tạo dịch vụ rdt trecircn dịch vụ khocircng tin cậy IP

caacutec đoạn Pipelined caacutec ACK tiacutech lũy TCP dugraveng bộ định thigrave

truyền lại đơn

Truyền lại được kiacutech hoạt bởi caacutec sự kiện timeout caacutec ack trugraveng lặp

luacutec đầu khảo saacutet caacutec becircn gửi TCP đơn giản lờ đi caacutec ack trugraveng lặp lờ đi điều khiển luồng

điều khiển tắc nghẽn

Transport Layer 3-63

TCP caacutec sự kiệndữ liệu đatilde nhận từ ứng

dụng tạo đoạn với số thứ

tự của noacute số thứ tự lagrave số theo

byte dữ liệu đầu tiecircn khởi động bộ định thigrave

nếu chưa chạy khoảng thời gian hết

hạn TimeOutInterval

timeout gửi lại đoạn nagraveo gacircy

ra timeout khởi động lại bộ định

thigrave Ack đatilde nhận

cập nhật caacutei gigrave sẽ được ACK

khởi động bộ định thigrave nếu coacute caacutec đoạn cograven chờ

Transport Layer 3-64

TCP becircn gửi(đơn giản)

NextSeqNum = InitialSeqNum SendBase = InitialSeqNum

loop (forever) switch(event)

event data received from application above create TCP segment with sequence number NextSeqNum if (timer currently not running) start timer pass segment to IP NextSeqNum = NextSeqNum + length(data)

event timer timeout retransmit not-yet-acknowledged segment with smallest sequence number start timer

event ACK received with ACK field value of y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer

end of loop forever

Chuacute thiacutechbull SendBase-1 byte vừa được ACK tiacutech lũy Viacute dụbull SendBase-1 = 71y= 73 vigrave thế becircn nhận muốn 73+ y gt SendBase vigrave thế dữ liệu mới được chấp nhận

Transport Layer 3-65

TCP caacutec tigravenh huống truyền lại

Host A

Seq=100 20 bytes data

ACK=100

timetimeout sớm

Host B

Seq=92 8 bytes data

ACK=120

Seq=92 8 bytes data

Seq=

92

tim

eout

ACK=120

Host A

Seq=92 8 bytes data

ACK=100

loss

tim

eout

tigravenh huống mất ACK

Host B

X

Seq=92 8 bytes data

ACK=100

time

Seq=

92

tim

eout

SendBase= 100

SendBase= 120

SendBase= 120

Sendbase= 100

Transport Layer 3-66

TCP caacutec tigravenh huống truyền lại (tt)Host A

Seq=92 8 bytes data

ACK=100

loss

tim

eout

Cumulative ACK scenario

Host B

X

Seq=100 20 bytes data

ACK=120

time

SendBase= 120

Transport Layer 3-67

TCP sinh ra ACK [RFC 1122 RFC 2581]

Sự kiện tại becircn nhận

Đoạn đến với đuacuteng số thứ tự mong muốn Tất cả dữ liệu đếnđatilde được ACK

Đoạn đến với đuacuteng số thứ tự mong muốn Một đoạn khaacutec đangchờ ACK

Caacutec đoạn đến khocircng thứ tựlớn hơn số thứ tự đoạn mong muốnCoacute khoảng trống

Đoạn đếnlấp đầy từng phần hoặc toagraven bộkhoảng trống

TCP becircn nhận hagravenh động

ACK trễ Chờ đến 500mscho đoạn kế tiếp Nếu khocircng coacute đoạnkế tiếp gửi ACK

Gửi ngay một ACK tiacutech lũy chấp nhậncho cả caacutec đoạn theo thứ tự

Gửi ngay ACK trugraveng lặp chỉ thị số thứ tựđoạn của byte kế tiếp đang mong chờ

Gửi ngay ACK với điều kiện lagrave đoạnbắt đầu ngay điểm coacute khoảng trống

Transport Layer 3-68

Truyền lại nhanh

Chu kỳ Time-out thường tương đối dagravei độ trễ dagravei trước khi gửi

lại goacutei đatilde mất

Xaacutec nhận caacutec đoạn đatilde mất bằng caacutec ACK trugraveng lặp becircn gửi thường gửi

nhiều đoạn song song Nếu đoạn bị mất sẽ

xảy ra tigravenh trạng giống như nhiều ACK trugraveng nhau

Nếu becircn gửi nhận 3 ACK của cugraveng một dữ liệu noacute cho lagrave đoạn sau dữ liệu đatilde ACK bị mất Truyền lại nhanh gửi

lại đoạn trước khi bộ định thigrave hết hạn

Transport Layer 3-69

sự kiện ACK đatilde nhận với trường lagrave y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer else increment count of dup ACKs received for y if (count of dup ACKs received for y = 3) resend segment with sequence number y

Giải thuật truyền lại nhanh

một ACK trugraveng lặp cho đoạn đatilde được ACK

Truyền lại nhanh

Transport Layer 3-70

Chương 3 Nội dung trigravenh bagravey

31 Caacutec dịch vụ lớp Transport

32 Multiplexing vagrave demultiplexing

33 Vận chuyển khocircng kết nối UDP

34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy

35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối

36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn

37 Điều khiển tắc nghẽn TCP

Transport Layer 3-71

TCP điều khiển luồng

becircn nhận của kết nối TCP coacute một bộ đệm nhận

dịch vụ so trugraveng tốc độ so trugraveng tốc độ gửi với tốc độ nhận của ứng dụng

tiến trigravenh ứng dụng coacute thể chậm tại luacutec đọc bộ đệm

becircn gửi sẽ khocircng lagravem tragraven bộ đệm vigrave truyền quaacute nhiều vagrave

quaacute nhanh

điều khiển luồng

Transport Layer 3-72

TCP điều khiển luồng caacutech lagravem

(Giả sử becircn nhận TCP loại bỏ caacutec đoạn khocircng coacute thứ tự)

dự phograveng trong bộ đệm= RcvWindow

= RcvBuffer-[LastByteRcvd - LastByteRead]

Becircn nhận thocircng baacuteo khoảng dự trữ nhờ giaacute trị RcvWindow trong caacutec đoạn

Becircn gửi hạn chế dữ liệu khocircng được ACK vagraveo RcvWindow bảo đảm bộ đệm nhận

khocircng tragraven

Transport Layer 3-73

Chương 3 Nội dung trigravenh bagravey

31 Caacutec dịch vụ lớp Transport

32 Multiplexing vagrave demultiplexing

33 Vận chuyển khocircng kết nối UDP

34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy

35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối

36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn

37 Điều khiển tắc nghẽn TCP

Transport Layer 3-74

TCP quản lyacute kết nối

Chuacute yacute Becircn gửi vagrave becircn nhận TCP thiết lập ldquokết nốirdquo trước khi trao đổi dữ liệu

khởi tạo caacutec biến TCP caacutec số thứ tự đoạn thocircng tin caacutec bộ đệm điều

khiển luồng (như RcvWindow)

client người khởi xướng kết nối

Socket clientSocket = new Socket(hostnameport

number) server được tiếp xuacutec bởi

client Socket connectionSocket =

welcomeSocketaccept()

3 phương phaacutep bắt tay

Bước 1 client host gửi đoạnTCP SYN đến server xaacutec định số thứ tự khởi đầu khocircng phải dữ liệu

Bước 2 server host nhận SYN trả lời với đoạn SYNACK

server cấp phaacutet caacutec bộ đệm

xaacutec định số thứ tự khởi đầuBước 3 client nhận SYNACK trả

lời với đoạn ACK (coacute thể chứa dữ liệu)

Transport Layer 3-75

TCP quản lyacute kết nối (tt)

Đoacuteng một kết nối

client đoacuteng socket clientSocketclose()

Bước 1 client gửi đoạn điều khiển TCP FIN đến server

Bước 2 server nhận FIN trả lời với ACK Đoacuteng kết nối gửi FIN

client

FIN

server

ACK

ACK

FIN

đoacuteng

đoacuteng

đatilde đoacutengthời g

ian c

hờ

Transport Layer 3-76

TCP quản lyacute kết nối (tt)

Bước 3 client nhận FIN trả lời với ACK

Trong khoảng ldquothời gian chờrdquo ndash sẽ phản hồi với ACK để nhận caacutec FIN

Bước 4 server nhận ACK Kết nối đatilde đoacuteng

Chuacute yacute với một sửa đổi nhỏ coacute thể quản lyacute nhiều FIN đồng thời

client

FIN

server

ACK

ACK

FIN

đang đoacuteng

đang đoacuteng

đatilde đoacuteng

thời g

ian c

hờ

đatilde đoacuteng

Transport Layer 3-77

TCP quản lyacute kết nối (tt)

chu kỳ sống củaTCP client

chu kỳ sống củaTCP server

Transport Layer 3-78

Chương 3 Nội dung trigravenh bagravey

31 Caacutec dịch vụ lớp Transport

32 Multiplexing vagrave demultiplexing

33 Vận chuyển khocircng kết nối UDP

34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy

35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối

36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn

37 Điều khiển tắc nghẽn TCP

Transport Layer 3-79

Caacutec nguyecircn lyacute điều khiển tắc nghẽn

Tắc nghẽn ldquoquaacute nhiều nguồn gửi quaacute nhanh vagrave quaacute nhiều

dữ liệu đến mạngrdquo khaacutec với điều khiển luồng caacutec biểu hiện

caacutec goacutei bị mất (tragraven bộ đệm tại caacutec router) caacutec độ trễ quaacute dagravei (xếp hagraveng trong bộ đệm

của router) lagrave 1 trong 10 vấn đề nan giải nhất

Transport Layer 3-80

Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 1

2 gửi 2 nhận 1 router caacutec bộ

đệm khocircng giới hạn

khocircng coacute truyền lại

caacutec độ trễ lớn hơn khi tắc nghẽn

năng suất coacute thể đạt tối đa

unlimited shared output link buffers

Host Ain original data

Host B

out

Transport Layer 3-81

Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 2

1 router caacutec bộ đệm coacute giới hạn becircn gửi truyền lại caacutec goacutei đatilde mất

chia sẻ vocirc hạncaacutec bộ đệm ouput

Host A in dữ liệu gốc

Host B

out

in dữ liệu gốc cugraveng với dữ liệu truyền lại

Transport Layer 3-82

Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 2 luocircn luocircn

truyền lại ldquohoagraven toagravenrdquo chỉ khi mất maacutet

truyền lại vigrave trễ (khocircng mất) lagravem cho lớn hơn với cugraveng

in

out

=

in

out

gt

in

out

ldquocaacutec chi phiacuterdquo của tắc nghẽn nhiều việc (truyền lại) caacutec truyền lại khocircng cần thiết liecircn kết nhiều bản sao của

goacutei

R2

R2in

ou

t

b

R2

R2in

ou

t

a

R2

R2in

ou

t

c

R4

R3

Transport Layer 3-83

Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 3 4 người gửi caacutec đường qua nhiều hop timeouttruyền lại

in

Hỏi điều gigrave xảy ra nếu vagrave tăng lecircn

in

chia sẻ vocirc hạncaacutec bộ đệm ouput

Host Ain dữ liệu gốc

Host B

out

in dữ liệu gốc cugraveng với dữ liệu truyền lại

Transport Layer 3-84

Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 3

ldquochi phiacuterdquo khaacutec của tắc nghẽn khi caacutec goacutei bị bỏ bất kỳ ldquokhả năng truyền

upstream dugraveng cho goacutei đoacute sẽ bị latildeng phiacuterdquo

Host A

Host B

o

u

t

Transport Layer 3-85

Caacutec caacutech tiếp cận đối với điều khiển tắc nghẽn

điều khiển tắc nghẽn end-end

khocircng coacute phản hồi rotilde ragraveng từ mạng

tắc nghẽn được suy ra từ việc quan saacutet caacutec hệ thống đầu cuối coacute mất maacutet trễ

tiếp cận được quản lyacute bởi TCP

điều khiển tắc nghẽn coacute sự hỗ trợ của mạng

caacutec router cung cấp phản hồi về caacutec hệ thống đầu cuối 1 bit duy nhất chỉ thị

tắc nghẽn (SNA DECbit TCPIP ECN ATM)

tốc độ sẽ gửi được xaacutec định rotilde ragraveng

2 caacutech

Transport Layer 3-86

Viacute dụ điều khiển tắc nghẽn ATM ABR

ABR tốc độ bit sẵn sagraveng

ldquodịch vụ mềm dẻordquo nếu đường gửi ldquochưa

hếtrdquo becircn gửi sẽ dugraveng

băng thocircng sẵn sagraveng nếu đường gửi tắc

nghẽn becircn gửi điều tiết với

tốc độ tối thiểu

RM (resource management)

gửi bởi becircn gửi rải raacutec với caacutec ocirc dữ liệu

caacutec bit trong ocirc thiết lập bởi caacutec switch bit NI khocircng tăng tốc độ

(tắc nghẽn nhẹ) bit CI tắc nghẽn rotilde rệt

Caacutec ocirc RM được trả về becircn gửi từ becircn nhận với nguyecircn vẹn caacutec bit

Transport Layer 3-87

Viacute dụ điều khiển tắc nghẽn ATM ABR

trường 2-byte ER trong ocirc RM switch đatilde tắc nghẽn coacute thể coacute giaacute trị ER thấp hơn trong ocirc tốc độ gửi do đoacute coacute thể được hỗ trợ tối đa trecircn đường

EFCI bit trong caacutec ocirc dữ liệu được cagravei giaacute trị 1 trong switch đatilde tắc nghẽn nếu ocirc dữ liệu đứng trước ocirc RM coacute cagravei EFCI becircn gửi sẽ cagravei

bit CI trong ocirc RM trả về

Transport Layer 3-88

Chương 3 Nội dung trigravenh bagravey

31 Caacutec dịch vụ lớp Transport

32 Multiplexing vagrave demultiplexing

33 Vận chuyển khocircng kết nối UDP

34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy

35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối

36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn

37 Điều khiển tắc nghẽn TCP

Transport Layer 3-89

TCP điều khiển tắc nghẽn additive tăng lecircn multiplicative giảm xuống

8 Kbytes

16 Kbytes

24 Kbytes

time

congestionwindow

Caacutech tiếp cận tăng tốc độ truyền (kiacutech thước cửa sổ) tigravem khả năng băng thocircng coacute thể cho đến khi coacute mất maacutet xảy ra additive tăng lecircn tăng CongWin bởi 1 MSS

mỗi RTT cho đến khi coacute mất maacutet xảy ra multiplicative giảm xuống bỏ CongWin trong

nửa giai đoạn sau khi mất maacutet

timekiacutech

thư

ớc

cửa

sổ

tắc

nghẽ

n

Tigravem kiếm băng thocircng

Transport Layer 3-90

TCP điều khiển tắc nghẽn chi tiết

becircn gửi hạn chế việc truyền LastByteSent-LastByteAcked

CongWin Cocircng thức

CongWin thay đổi chức năng lagrave nhận biết tắc nghẽn trecircn mạng

Lagravem thế nagraveo becircn gửi nhận biết tắc nghẽn

mất maacutet xảy ra = timeout hoặc 3 ack trugraveng lặp

becircn gửi giảm tốc độ (CongWin) sau khi mất maacutet xảy ra

3 cơ chế AIMD khởi động chậm thận trọng sau khi coacute

caacutec sự kiện timeout

tốc độ = CongWin

RTT Bytess

Transport Layer 3-91

TCP khởi động chậm

Khi kết nối bắt đầu CongWin = 1 MSS Viacute dụ MSS = 500 bytes

amp RTT = 200 ms tốc độ khởi tạo = 20

kbps

băng thocircng sẵn sagraveng coacute thể gtgt MSSRTT mong muốn nhanh

choacuteng tăng tốc lecircn tốc độ coacute thể đaacutep ứng

Khi kết nối bắt đầu tăng tốc lecircn rất nhanh cho đến khi sự cố mất maacutet xảy ra đầu tiecircn

Transport Layer 3-92

TCP khởi động chậm (tt)

Khi kết nối bắt đầu tăng tốc lecircn rất nhanh cho đến khi sự cố mất maacutet xảy ra đầu tiecircn nhacircn đocirci CongWin mỗi

RTT hoagraven thagravenh nhờ tăng CongWin ứng với mỗi ACK đatilde nhận

Tổng kết tốc độ khởi đầu lagrave chậm nhưng sau đoacute tăng tốc rất nhanh

Host A

1 đoạn

RTT

Host B

thời gian

2 đoạn

4 đoạn

Transport Layer 3-93

Tinh chếHỏi Khi nagraveo việc tăng

tốc trở thagravenh tuyến tiacutenh

Trả lời Khi CongWin đạt đến 12 giaacute trị của noacute trước khi timeout

Hiện thực Ngưỡng thay đổi Tại thời điểm coacute sự cố

mất maacutet ngưỡng được cagravei giaacute trị bằng frac12 của CongWin ngay trước đoacute

Transport Layer 3-94

Tinh chế nhận biết mất maacutet

Sau 3 ACK trugraveng lặp CongWin sẽ giảm 12 kiacutech thước cửa sổ

tăng tuyến tiacutenh nhưng sau sự cố

timeout CongWin thay giaacute trị

bằng 1 MSS kiacutech thước cửa sổ

tăng cấp lũy thừa khi đến một ngưỡng

thigrave tăng tuyến tiacutenh

3 ACK trugraveng nhau chỉ ra khả năng truyền của mạng timeout chỉ thị ldquonhiều cảnh baacuteordquo về tigravenh huống tắc nghẽn

Nguyecircn lyacute

Transport Layer 3-95

Tổng kết TCP điều khiển tắc nghẽn

Khi CongWin dưới Threshold becircn gửi đang trong giai đoạn khởi động chậm kiacutech thước cửa sổ tăng nhanh theo cấp lũy thừa

Khi CongWin trecircn Threshold becircn gửi đang trong giai đoạn traacutenh tắc nghẽn kiacutech thước cửa sổ tăng nhanh theo cấp tuyến tiacutenh

Khi coacute 3 ACK trugraveng lặp xảy ra Threshold = CongWin2 vagrave CongWin = Threshold

Khi timeout xảy ra Threshold = CongWin2 vagrave CongWin = 1 MSS

Transport Layer 3-96

TCP điều khiển tắc nghẽn becircn gửi

Trạng thaacutei Sự kiện TCP becircn gửi hagravenh động Diễn giải

Slow Start (SS)-Khởi động chậm

ACK baacuteo nhận cho dữ liệu chưa ACK trước đoacute

CongWin = CongWin + MSS If (CongWin gt Threshold) cagravei đặt trạng thaacutei ldquoTraacutenh tắc nghẽnrdquo

Hậu quả lagravem tăng gấp đocirci CongWin mỗi RTT

CongestionAvoidance (CA) ndashTraacutenh tắc nghẽn

ACK baacuteo nhận cho dữ liệu chưa ACK trước đoacute

CongWin = CongWin+MSS (MSSCongWin)

Additive tăng lecircn lagravem tăng CongWin lecircn 1 MSS mỗi RTT

SS hoặc CA Sự cố mất maacutet xảy ra khi thấy coacute 3 ACK trugraveng lặp

Threshold = CongWin2 CongWin = Thresholdcagravei đặt trạng thaacutei ldquoTraacutenh tắc nghẽnrdquo

Khocirci phục nhanh hiện thực giảm xuống multiplicative CongWin sẽ khocircng giảm xuống dưới 1 MSS

SS hoặc CA Timeout Threshold = CongWin2 CongWin = 1 MSScagravei đặt trạng thaacutei ldquoKhởi động chậmrdquo

Vagraveo chế độ ldquoKhởi động chậmrdquo

SS hoặc CA ACK trugraveng lặp

Đếm ACK tăng lecircn cho đoạn vừa được ACK

CongWin vagrave Threshold khocircng thay đổi

Transport Layer 3-97

TCP throughput

Throughout trung bigravenh của TCP biểu diễn qua kiacutech thước của sổ vagrave RTT Bỏ qua trạng thaacutei ldquoKhởi động chậmrdquo

Cho W lagrave kiacutech thước cửa sổ khi coacute mất maacutet xảy ra

Khi kiacutech thước cửa sổ = W lưu lượng = WRTT

Chỉ ngay sau khi mất maacutet cửa sổ giảm xuống = W2 lưu lượng = W2RTT

throughout trung bigravenh 075 WRTT

Transport Layer 3-98

TCP tương lai

Viacute dụ caacutec đoạn dagravei 1500 byte RTT 100ms lưu lượng 10 Gbps

Kiacutech thước cửa sổ yecircu cầu W = 83333 đoạn trecircn đường truyền

Lưu lượng trong caacutec trường hợp mất maacutet

L = 210-10

Phiecircn bản mới của TCP dagravenh cho nhu cầu tốc độ cao

LRTT

MSS221

Transport Layer 3-99

Mục tiecircu nếu K phiecircn lagravem việc TCP chia sẻ kết nối cổ chai của băng thocircng lagrave R mỗi phiecircn coacute tốc độ trung bigravenh lagrave RK

TCP kết nối 1

router cổ chaikhả năng R

TCP kết nối 2

TCP tiacutenh cocircng bằng

Transport Layer 3-100

Tại sao phải TCP cocircng bằng

2 phiecircn lagravem việc cạnh tranh nhau Additive tăng lưu lượng tăng multiplicative giảm lưu lượng tương xứng

R

R

chia sẻ băng thocircng bằng nhau

Connection 1 throughputConnect

ion 2

th

roughput

traacutenh tắc nghẽn additive tăng lecircnmất maacutet giảm cửa sổ bằng 12

traacutenh tắc nghẽn additive tăng lecircnmất maacutet giảm cửa sổ bằng 12

Transport Layer 3-101

TCP tiacutenh cocircng bằng (tt)

Tiacutenh cocircng bằng amp UDP nhiều ứng dụng

thường khocircng dugraveng TCP khocircng muốn tốc độ bị

điều tiết do điều khiển tắc nghẽn

Thay bằng dugraveng UDP truyền audiovideo với

tốc độ ổn định chịu được mất maacutet

Nghiecircn cứu giao thức thacircn thiện với TCP

Tiacutenh cocircng bằng amp caacutec kết nối TCP song song

khocircng coacute gigrave ngăn cản việc ứng dụng mở caacutec kết nối song song giữa 2 host

Trigravenh duyệt Web lagravem giống như thế

Viacute dụ tốc độ R hỗ trợ 9 kết nối ứng dụng mới yecircu cầu 1

TCP coacute tốc độ R10 ứng dụng mới yecircu cầu 11

TCP coacute tốc độ R2

Transport Layer 3-102

Mocirc higravenh trễ

Hỏi Mất bao lacircu để nhận 1 đối tượng từ Web server sau khi gửi yecircu cầu

Bỏ qua tắc nghẽn trễ bị ảnh hưởng bởi

thiết lập kết nối TCP trễ truyền dữ liệu khởi động chậm

Notation caacutec giả định Giả sử một kết nối giữa

client vagrave server coacute tốc độ R

S MSS (bits) O kiacutech thước đối tượng

(bits) khocircng truyền lại (khocircng

mất maacutet khocircng hỏng)

Kiacutech thước cửa sổ Giả định 1 cửa sổ tắc

nghẽn cố định coacute W đoạn Sau đoacute cửa sổ thay đổi

mocirc higravenh khởi động chậm

Transport Layer 3-103

Cửa sổ tắc nghẽn cố định (1)

Trường hợp đầu tiecircnWSR gt RTT + SR cho

đoạn đầu tiecircn trong cửa sổ trả về trước khi cửa sổ dữ liệu gửi ACK

trễ = 2RTT + OR

Transport Layer 3-104

Cửa sổ tắc nghẽn cố định (2)

Trường hợp thứ hai WSR lt RTT + SR sent

chờ cho ACK sau khi gửi dữ liệu

trễ = 2RTT + OR+ (K-1)[SR + RTT - WSR]

Transport Layer 3-105

TCP Mocirc higravenh trễ Khởi động chậm (1)

Bacircy giờ giả sử kiacutech thước cửa sổ tăng lecircn tugravey theo quaacute trigravenh khởi động chậm

Độ trễ của một đối tượng sẽ lagrave

R

S

R

SRTTP

R

ORTTLatency P )12(2

trong đoacute P lagrave số lần TCP rảnh ở tại server

1min KQP

- trong đoacute Q lagrave số lần server rảnh nếu đối tượng đatilde khởi tạo kiacutech thước

- vagrave K lagrave số lượng cửa sổ bao trugravem đối tượng

Transport Layer 3-106

TCP Mocirc higravenh trễ Khởi động chậm (2)

RTT

initia te TCPconnection

requestobject

first w indow= S R

second w indow= 2S R

third w indow= 4S R

fourth w indow= 8S R

com pletetransm issionobject

delivered

tim e atc lient

tim e atserver

Viacute dụbull OS = 15 đoạnbull K = 4 cửa sổbull Q = 2bull P = minK-1Q = 2

Server rảnh P=2 lần

Caacutec thagravenh phần trễbull 2 RTT dagravenh cho thiết lập kết nối vagrave yecircu cầubull OR để truyền đối tượngbullthời gian server rảnh bởi vigrave khởi động chậm

Server rảnh P = minK-1Q lần

Transport Layer 3-107

TCP Mocirc higravenh trễ(3)

R

S

R

SRTTPRTT

R

O

R

SRTT

R

SRTT

R

O

idleTimeRTTR

O

P

kP

k

P

pp

)12(][2

]2[2

2delay

1

1

1

th window after the timeidle 2 1 kR

SRTT

R

S k

ementacknowledg receivesserver until

segment send tostartsserver when from time RTTR

S

window kth the transmit totime2 1

R

Sk

RTT

initia te TCPconnection

requestobject

first w indow= S R

second w indow= 2S R

third w indow= 4S R

fourth w indow= 8S R

com pletetransm issionobject

delivered

tim e atc lient

tim e atserver

Transport Layer 3-108

TCP Mocirc higravenh trễ (4)

)1(log

)1(logmin

12min

222min

222min

2

2

110

110

S

OS

Okk

S

Ok

SOk

OSSSkK

k

k

k

caacutech tiacutenh toaacuten Q tương tự (xem HW)

K = số lượng cửa sổ bao trugravem đối tượngLagravem thế nagraveo tiacutenh được K

Transport Layer 3-109

HTTP Mocirc higravenh Giả sử trang Web chứa

1 trang HTML (kiacutech thước O bits) M higravenh ảnh (mỗi caacutei kiacutech thướcO bits)

HTTP khocircng bền vững M+1 TCP kết nối Thời gian đaacutep ứng = (M+1)OR + (M+1)2RTT + tổng số thời

gian rảnh HTTP bền vững

2 RTT để yecircu cầu vagrave nhận file HTML 1 RTT để yecircu cầu vagrave nhận M higravenh ảnh Thời gian đaacutep ứng = (M+1)OR + 3RTT + tổng số thời gian

rảnh HTTP khocircng bền vững với X kết nối song song

Giả sử MX lagrave số nguyecircn 1 TCP kết nối cho file MX thiết lập caacutec kết nối song song cho caacutec higravenh ảnh Thời gian đaacutep ứng = (M+1)OR + (MX + 1)2RTT + tổng số

thời gian rảnh

Transport Layer 3-110

02468

101214161820

28Kbps

100Kbps

1Mbps

10Mbps

non-persistent

persistent

parallel non-persistent

HTTP thời gian đaacutep ứng (giacircy)RTT = 100 msec O = 5 Kbytes M=10 vagrave X=5

Với băng thocircng thấp thời gian kết nối amp đaacutep ứng trội hơn thời gian truyền

Caacutec kết nối bền vững chỉ cho sự cải thiện khocircng đaacuteng kể trecircn caacutec kết nối song song

Transport Layer 3-111

0

10

20

30

40

50

60

70

28Kbps

100Kbps

1Mbps

10Mbps

non-persistent

persistent

parallel non-persistent

HTTP thời gian đaacutep ứng (giacircy)

RTT =1 sec O = 5 Kbytes M=10 and X=5

Với RTT lớn hơn thời gian đaacutep ứng trội hơn thời gian trễ chờ thiết lập kết nốiTCP amp khởi động chậm Caacutec kết nối bền vững bacircy giờ cho thấy cải thiện rotilde rệt đặc biệtvới caacutec mạng băng thocircng cao

Transport Layer 3-112

Chương 3 Tổng kết caacutec nguyecircn lyacute của caacutec

dịch vụ lớp transport multiplexing

demultiplexing truyền dữ liệu tin cậy điều khiển luồng điều khiển tắc nghẽn

khởi tạo vagrave hiện thực trong Internet UDP TCP

Tiếp theo nghiecircn cứu xong

caacutec vấn đề ldquongoagravei biecircnrdquo (caacutec lớp application transport)

chuẩn bị vagraveo phần ldquolotildeirdquo của mạng

  • Slide 1
  • Chương 3 Lớp Transport
  • Chương 3 Nội dung trigravenh bagravey
  • Caacutec dịch vụ vagrave giao thức Transport
  • Lớp Transport với lớp network
  • Caacutec giao thức lớp transport trecircn Internet
  • Slide 7
  • Multiplexingdemultiplexing
  • Demultiplexing lagravem việc như thế nagraveo
  • Demultiplexing khocircng kết nối
  • Demultiplexing khocircng kết nối (tiếp)
  • Demultiplexing hướng kết nối
  • Demultiplexing hướng kết nối (tiếp)
  • Demultiplexing hướng kết nối Threaded Web Server
  • Slide 15
  • UDP User Datagram Protocol [RFC 768]
  • UDP (tt)
  • UDP checksum
  • Viacute dụ Checksum
  • Slide 20
  • Caacutec nguyecircn lyacute truyền dữ liệu tin cậy
  • Slide 22
  • Slide 23
  • Truyền dữ liệu tin cậy
  • Slide 25
  • Rdt10 truyền dữ liệu tin cậy trecircn 1 kecircnh truyền tin cậy
  • Rdt20 kecircnh với caacutec lỗi
  • rdt20 đặc tả FSM
  • rdt20 hoạt động khi khocircng lỗi
  • rdt20 hoạt động khi coacute lỗi
  • rdt20 coacute lỗ hổng nghiecircm trọng
  • rdt21 người gửi quản lyacute caacutec ACKNAK bị hỏng
  • Slide 33
  • rdt21 thảo luận
  • rdt22 một giao thức khocircng cần NAK
  • rdt22 gửi nhận caacutec mảnh
  • rdt30 caacutec kecircnh với lỗi vagrave mất maacutet
  • rdt30 gửi
  • hagravenh động của rdt30
  • Slide 40
  • Hiệu suất của rdt30
  • rdt30 hoạt động dừng-vagrave-chờ
  • Caacutec giao thức Pipelined
  • Pipelining độ khả dụng tăng
  • Go-Back-N
  • GBN becircn gửi mở rộng FSM
  • GBN becircn nhận mở rộng FSM
  • GBN hoạt động
  • Lặp coacute lựa chọn
  • Lặp coacute lựa chọn caacutec cửa sổ gửi nhận
  • Slide 51
  • Hoạt động của lặp coacute lựa chọn
  • Lặp coacute lựa chọn tigravenh trạng khoacute giải quyết
  • Slide 54
  • TCP Tổng quan RFCs 793 1122 1323 2018 2581
  • TCP cấu truacutec đoạn
  • Caacutec số thứ tự TCP vagrave ACK
  • TCP Round Trip Time vagraveTimeout
  • TCP Round Trip Time vagrave Timeout
  • Viacute dụ đaacutenh giaacute RTT
  • Slide 61
  • TCP truyền dữ liệu tin cậy
  • TCP caacutec sự kiện
  • TCP becircn gửi (đơn giản)
  • TCP caacutec tigravenh huống truyền lại
  • TCP caacutec tigravenh huống truyền lại (tt)
  • TCP sinh ra ACK [RFC 1122 RFC 2581]
  • Truyền lại nhanh
  • Giải thuật truyền lại nhanh
  • Slide 70
  • TCP điều khiển luồng
  • TCP điều khiển luồng caacutech lagravem
  • Slide 73
  • TCP quản lyacute kết nối
  • TCP quản lyacute kết nối (tt)
  • Slide 76
  • Slide 77
  • Slide 78
  • Caacutec nguyecircn lyacute điều khiển tắc nghẽn
  • Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 1
  • Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 2
  • Slide 82
  • Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 3
  • Slide 84
  • Caacutec caacutech tiếp cận đối với điều khiển tắc nghẽn
  • Viacute dụ điều khiển tắc nghẽn ATM ABR
  • Slide 87
  • Slide 88
  • TCP điều khiển tắc nghẽn additive tăng lecircn multiplicative giảm xuống
  • TCP điều khiển tắc nghẽn chi tiết
  • TCP khởi động chậm
  • TCP khởi động chậm (tt)
  • Tinh chế
  • Tinh chế nhận biết mất maacutet
  • Tổng kết TCP điều khiển tắc nghẽn
  • TCP điều khiển tắc nghẽn becircn gửi
  • TCP throughput
  • TCP tương lai
  • TCP tiacutenh cocircng bằng
  • Tại sao phải TCP cocircng bằng
  • TCP tiacutenh cocircng bằng (tt)
  • Mocirc higravenh trễ
  • Cửa sổ tắc nghẽn cố định (1)
  • Cửa sổ tắc nghẽn cố định (2)
  • TCP Mocirc higravenh trễ Khởi động chậm (1)
  • TCP Mocirc higravenh trễ Khởi động chậm (2)
  • TCP Mocirc higravenh trễ(3)
  • TCP Mocirc higravenh trễ (4)
  • HTTP Mocirc higravenh
  • Slide 110
  • Slide 111
  • Chương 3 Tổng kết

Transport Layer 3-50

Lặp coacute lựa chọn caacutec cửa sổ gửi nhận

Transport Layer 3-51

Lặp coacute lựa chọn

dữ liệu từ lớp trecircn nếu số thứ tự kế tiếp sẵn

sagraveng trong cửa sổ gửi goacutei

timeout(n) gửi lại goacutei n taacutei khởi tạo

bộ định thigrave

ACK(n) trong [sendbasesendbase+N]

đaacutenh dấu goacutei n lagrave đatilde nhận nếu goacutei khocircng ACK coacute n

nhỏ nhất dịch chuyển cửa sổ base đến số thứ tự khocircng ACK kế tiếp

Gửigoacutei n trong [rcvbase

rcvbase+N-1]

gửi ACK(n) khocircng thứ tự đệm

(buffer) coacute thứ tự truyền (cũng

truyền caacutec goacutei đatilde đệm coacute thứ tự) dịch chuyển cửa sổ đến goacutei chưa nhận kế tiếp

goacutei n trong [rcvbase-Nrcvbase-1]

ACK(n)

ngược lại lờ đi

Nhận

Transport Layer 3-52

Hoạt động của lặp coacute lựa chọn

Transport Layer 3-53

Lặp coacute lựa chọntigravenh trạng khoacute giải quyếtViacute dụ Số thứ tự 0 1 2 3 Kiacutech thước cửa sổ = 3

becircn nhận khocircng thấy sự khaacutec nhau trong 2 tigravenh huống

chuyển khocircng chiacutenh xaacutec dữ liệu trugraveng lặp như dữ liệu mới trong (a)

Hỏi quan hệ giữa datildey số thứ tự vagrave kiacutech thước cửa sổ

Transport Layer 3-54

Chương 3 Nội dung trigravenh bagravey

31 Caacutec dịch vụ lớp Transport

32 Multiplexing vagrave demultiplexing

33 Vận chuyển khocircng kết nối UDP

34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy

35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối

36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn

37 Điều khiển tắc nghẽn TCP

Transport Layer 3-55

TCP Tổng quan RFCs 793 1122 1323 2018 2581

dữ liệu full duplex luồng dữ liệu đi 2 chiều

trong cugraveng một kết nối MSS maximum

segment size ndash kiacutech thước đoạn tối đa

hướng kết nối bắt tay (trao đổi caacutec

thocircng điệp điều khiển) trạng thaacutei becircn gửi becircn nhận trước khi trao đổi dữ liệu

điều khiển luồng becircn gửi sẽ khocircng lấn aacutet

becircn nhận

point-to-point một becircn gửi một becircn

nhận tin cậy dograveng byte coacute

thứ tự khocircng ldquoranh giới thocircng

điệprdquo kecircnh liecircn lạc

TCP điều khiển luồng vagrave tắc nghẽn thiết lập kiacutech thước cửa sổ

caacutec bộ đệm gửi amp nhận

socketdoor

T C Psend buffer

T C Preceive buffer

socketdoor

segm ent

applicationwrites data

applicationreads data

Transport Layer 3-56

TCP cấu truacutec đoạn

port nguồn port điacutech

32 bits

dữ liệu ứng dụng(độ dagravei thay đổi)

số thứ tự

số ACKcửa sổ nhận

con trỏ URGchecksum

FSRPAUheadlen

notused

Tugravey chọn (độ dagravei thay đổi)

URG dữ liệu khẩn cấp(thường khocircng dugraveng)

ACK ACK hợp lệ

PSH push data now(thường khocircng dugraveng)

RST SYN FINthiết lập kết nối

(caacutec lệnh thiết lậpchia nhỏ)

số byte becircn nhận sẵn sagraveng chấp nhận

đếm bởi số bytecủa dữ liệu

Internetchecksum

(giống UDP)

Transport Layer 3-57

Caacutec số thứ tự TCP vagrave ACKCaacutec số thứ tự

dograveng byte ldquođaacutenh sốrdquo byte đầu tiecircn trong dữ liệu của đoạn

caacutec ACK số thứ tự của byte

kế tiếp được chờ đợi từ phiacutea becircn kia

ACK tiacutech lũyHỏi lagravem thế nagraveo becircn

nhận quản lyacute caacutec đoạn khocircng thứ tự Trả lời TCP khocircng

đề cập tugravey thuộc người hiện thực

Host A Host B

Seq=42 ACK=79 data = lsquoCrsquo

Seq=79 ACK=43 data = lsquoCrsquo

Seq=43 ACK=80

UsernhậplsquoCrsquo

host ACKsnhận phản hồi

lsquoCrsquo

host ACKsbaacuteo nhận

lsquoCrsquo phản hồingược lại lsquoCrsquo

timetigravenh huống telnet đơn giản

Transport Layer 3-58

TCP Round Trip Time vagraveTimeout

Hỏi Lagravem thế nagraveo để thiết lập giaacute trị TCP timeout

dagravei hơn RTT khaacutec với RTT

quaacute ngắn timeout sớm truyền lại khocircng

cần thiết quaacute dagravei phản ứng

chậm đối với việc mất maacutet goacutei

Hỏi Lagravem thế nagraveo để thiết lập RTT

SampleRTT thời gian được đo từ khi truyền đoạn đến khi baacuteo nhận ACK lờ đi việc truyền lại

SampleRTT sẽ thay đổi muốn ước lượng RTT ldquomượt hơnrdquo tiacutenh trung bigravenh một số giaacute

trị đo được gần đoacute khocircng chỉ SampleRTT hiện tại

Transport Layer 3-59

TCP Round Trip Time vagrave Timeout

EstimatedRTT = (1- )EstimatedRTT + SampleRTT

giaacute trị đặc trưng = 0125

Transport Layer 3-60

Viacute dụ đaacutenh giaacute RTTRTT gaiacsumassedu to fantasiaeurecomfr

100

150

200

250

300

350

1 8 15 22 29 36 43 50 57 64 71 78 85 92 99 106

time (seconnds)

RTT

(mill

isec

onds

)

SampleRTT Estimated RTT

Transport Layer 3-61

TCP Round Trip Time vagrave Timeout

Thiết lập timeout EstimtedRTT cộng ldquohệ số dự trữ an toagravenrdquo

sự biến thiecircn lớn trong EstimatedRTT -gt hệ số dự trữ an toagraven lớn hơn ước lượng đầu tiecircn về sự biến thiecircn của SampleRTT từ EstimatedRTT

TimeoutInterval = EstimatedRTT + 4DevRTT

DevRTT = (1-)DevRTT + |SampleRTT-EstimatedRTT|

(tiecircu biểu = 025)

Sau đoacute thiết lập timeout interval

Transport Layer 3-62

TCP truyền dữ liệu tin cậy

TCP tạo dịch vụ rdt trecircn dịch vụ khocircng tin cậy IP

caacutec đoạn Pipelined caacutec ACK tiacutech lũy TCP dugraveng bộ định thigrave

truyền lại đơn

Truyền lại được kiacutech hoạt bởi caacutec sự kiện timeout caacutec ack trugraveng lặp

luacutec đầu khảo saacutet caacutec becircn gửi TCP đơn giản lờ đi caacutec ack trugraveng lặp lờ đi điều khiển luồng

điều khiển tắc nghẽn

Transport Layer 3-63

TCP caacutec sự kiệndữ liệu đatilde nhận từ ứng

dụng tạo đoạn với số thứ

tự của noacute số thứ tự lagrave số theo

byte dữ liệu đầu tiecircn khởi động bộ định thigrave

nếu chưa chạy khoảng thời gian hết

hạn TimeOutInterval

timeout gửi lại đoạn nagraveo gacircy

ra timeout khởi động lại bộ định

thigrave Ack đatilde nhận

cập nhật caacutei gigrave sẽ được ACK

khởi động bộ định thigrave nếu coacute caacutec đoạn cograven chờ

Transport Layer 3-64

TCP becircn gửi(đơn giản)

NextSeqNum = InitialSeqNum SendBase = InitialSeqNum

loop (forever) switch(event)

event data received from application above create TCP segment with sequence number NextSeqNum if (timer currently not running) start timer pass segment to IP NextSeqNum = NextSeqNum + length(data)

event timer timeout retransmit not-yet-acknowledged segment with smallest sequence number start timer

event ACK received with ACK field value of y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer

end of loop forever

Chuacute thiacutechbull SendBase-1 byte vừa được ACK tiacutech lũy Viacute dụbull SendBase-1 = 71y= 73 vigrave thế becircn nhận muốn 73+ y gt SendBase vigrave thế dữ liệu mới được chấp nhận

Transport Layer 3-65

TCP caacutec tigravenh huống truyền lại

Host A

Seq=100 20 bytes data

ACK=100

timetimeout sớm

Host B

Seq=92 8 bytes data

ACK=120

Seq=92 8 bytes data

Seq=

92

tim

eout

ACK=120

Host A

Seq=92 8 bytes data

ACK=100

loss

tim

eout

tigravenh huống mất ACK

Host B

X

Seq=92 8 bytes data

ACK=100

time

Seq=

92

tim

eout

SendBase= 100

SendBase= 120

SendBase= 120

Sendbase= 100

Transport Layer 3-66

TCP caacutec tigravenh huống truyền lại (tt)Host A

Seq=92 8 bytes data

ACK=100

loss

tim

eout

Cumulative ACK scenario

Host B

X

Seq=100 20 bytes data

ACK=120

time

SendBase= 120

Transport Layer 3-67

TCP sinh ra ACK [RFC 1122 RFC 2581]

Sự kiện tại becircn nhận

Đoạn đến với đuacuteng số thứ tự mong muốn Tất cả dữ liệu đếnđatilde được ACK

Đoạn đến với đuacuteng số thứ tự mong muốn Một đoạn khaacutec đangchờ ACK

Caacutec đoạn đến khocircng thứ tựlớn hơn số thứ tự đoạn mong muốnCoacute khoảng trống

Đoạn đếnlấp đầy từng phần hoặc toagraven bộkhoảng trống

TCP becircn nhận hagravenh động

ACK trễ Chờ đến 500mscho đoạn kế tiếp Nếu khocircng coacute đoạnkế tiếp gửi ACK

Gửi ngay một ACK tiacutech lũy chấp nhậncho cả caacutec đoạn theo thứ tự

Gửi ngay ACK trugraveng lặp chỉ thị số thứ tựđoạn của byte kế tiếp đang mong chờ

Gửi ngay ACK với điều kiện lagrave đoạnbắt đầu ngay điểm coacute khoảng trống

Transport Layer 3-68

Truyền lại nhanh

Chu kỳ Time-out thường tương đối dagravei độ trễ dagravei trước khi gửi

lại goacutei đatilde mất

Xaacutec nhận caacutec đoạn đatilde mất bằng caacutec ACK trugraveng lặp becircn gửi thường gửi

nhiều đoạn song song Nếu đoạn bị mất sẽ

xảy ra tigravenh trạng giống như nhiều ACK trugraveng nhau

Nếu becircn gửi nhận 3 ACK của cugraveng một dữ liệu noacute cho lagrave đoạn sau dữ liệu đatilde ACK bị mất Truyền lại nhanh gửi

lại đoạn trước khi bộ định thigrave hết hạn

Transport Layer 3-69

sự kiện ACK đatilde nhận với trường lagrave y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer else increment count of dup ACKs received for y if (count of dup ACKs received for y = 3) resend segment with sequence number y

Giải thuật truyền lại nhanh

một ACK trugraveng lặp cho đoạn đatilde được ACK

Truyền lại nhanh

Transport Layer 3-70

Chương 3 Nội dung trigravenh bagravey

31 Caacutec dịch vụ lớp Transport

32 Multiplexing vagrave demultiplexing

33 Vận chuyển khocircng kết nối UDP

34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy

35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối

36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn

37 Điều khiển tắc nghẽn TCP

Transport Layer 3-71

TCP điều khiển luồng

becircn nhận của kết nối TCP coacute một bộ đệm nhận

dịch vụ so trugraveng tốc độ so trugraveng tốc độ gửi với tốc độ nhận của ứng dụng

tiến trigravenh ứng dụng coacute thể chậm tại luacutec đọc bộ đệm

becircn gửi sẽ khocircng lagravem tragraven bộ đệm vigrave truyền quaacute nhiều vagrave

quaacute nhanh

điều khiển luồng

Transport Layer 3-72

TCP điều khiển luồng caacutech lagravem

(Giả sử becircn nhận TCP loại bỏ caacutec đoạn khocircng coacute thứ tự)

dự phograveng trong bộ đệm= RcvWindow

= RcvBuffer-[LastByteRcvd - LastByteRead]

Becircn nhận thocircng baacuteo khoảng dự trữ nhờ giaacute trị RcvWindow trong caacutec đoạn

Becircn gửi hạn chế dữ liệu khocircng được ACK vagraveo RcvWindow bảo đảm bộ đệm nhận

khocircng tragraven

Transport Layer 3-73

Chương 3 Nội dung trigravenh bagravey

31 Caacutec dịch vụ lớp Transport

32 Multiplexing vagrave demultiplexing

33 Vận chuyển khocircng kết nối UDP

34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy

35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối

36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn

37 Điều khiển tắc nghẽn TCP

Transport Layer 3-74

TCP quản lyacute kết nối

Chuacute yacute Becircn gửi vagrave becircn nhận TCP thiết lập ldquokết nốirdquo trước khi trao đổi dữ liệu

khởi tạo caacutec biến TCP caacutec số thứ tự đoạn thocircng tin caacutec bộ đệm điều

khiển luồng (như RcvWindow)

client người khởi xướng kết nối

Socket clientSocket = new Socket(hostnameport

number) server được tiếp xuacutec bởi

client Socket connectionSocket =

welcomeSocketaccept()

3 phương phaacutep bắt tay

Bước 1 client host gửi đoạnTCP SYN đến server xaacutec định số thứ tự khởi đầu khocircng phải dữ liệu

Bước 2 server host nhận SYN trả lời với đoạn SYNACK

server cấp phaacutet caacutec bộ đệm

xaacutec định số thứ tự khởi đầuBước 3 client nhận SYNACK trả

lời với đoạn ACK (coacute thể chứa dữ liệu)

Transport Layer 3-75

TCP quản lyacute kết nối (tt)

Đoacuteng một kết nối

client đoacuteng socket clientSocketclose()

Bước 1 client gửi đoạn điều khiển TCP FIN đến server

Bước 2 server nhận FIN trả lời với ACK Đoacuteng kết nối gửi FIN

client

FIN

server

ACK

ACK

FIN

đoacuteng

đoacuteng

đatilde đoacutengthời g

ian c

hờ

Transport Layer 3-76

TCP quản lyacute kết nối (tt)

Bước 3 client nhận FIN trả lời với ACK

Trong khoảng ldquothời gian chờrdquo ndash sẽ phản hồi với ACK để nhận caacutec FIN

Bước 4 server nhận ACK Kết nối đatilde đoacuteng

Chuacute yacute với một sửa đổi nhỏ coacute thể quản lyacute nhiều FIN đồng thời

client

FIN

server

ACK

ACK

FIN

đang đoacuteng

đang đoacuteng

đatilde đoacuteng

thời g

ian c

hờ

đatilde đoacuteng

Transport Layer 3-77

TCP quản lyacute kết nối (tt)

chu kỳ sống củaTCP client

chu kỳ sống củaTCP server

Transport Layer 3-78

Chương 3 Nội dung trigravenh bagravey

31 Caacutec dịch vụ lớp Transport

32 Multiplexing vagrave demultiplexing

33 Vận chuyển khocircng kết nối UDP

34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy

35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối

36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn

37 Điều khiển tắc nghẽn TCP

Transport Layer 3-79

Caacutec nguyecircn lyacute điều khiển tắc nghẽn

Tắc nghẽn ldquoquaacute nhiều nguồn gửi quaacute nhanh vagrave quaacute nhiều

dữ liệu đến mạngrdquo khaacutec với điều khiển luồng caacutec biểu hiện

caacutec goacutei bị mất (tragraven bộ đệm tại caacutec router) caacutec độ trễ quaacute dagravei (xếp hagraveng trong bộ đệm

của router) lagrave 1 trong 10 vấn đề nan giải nhất

Transport Layer 3-80

Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 1

2 gửi 2 nhận 1 router caacutec bộ

đệm khocircng giới hạn

khocircng coacute truyền lại

caacutec độ trễ lớn hơn khi tắc nghẽn

năng suất coacute thể đạt tối đa

unlimited shared output link buffers

Host Ain original data

Host B

out

Transport Layer 3-81

Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 2

1 router caacutec bộ đệm coacute giới hạn becircn gửi truyền lại caacutec goacutei đatilde mất

chia sẻ vocirc hạncaacutec bộ đệm ouput

Host A in dữ liệu gốc

Host B

out

in dữ liệu gốc cugraveng với dữ liệu truyền lại

Transport Layer 3-82

Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 2 luocircn luocircn

truyền lại ldquohoagraven toagravenrdquo chỉ khi mất maacutet

truyền lại vigrave trễ (khocircng mất) lagravem cho lớn hơn với cugraveng

in

out

=

in

out

gt

in

out

ldquocaacutec chi phiacuterdquo của tắc nghẽn nhiều việc (truyền lại) caacutec truyền lại khocircng cần thiết liecircn kết nhiều bản sao của

goacutei

R2

R2in

ou

t

b

R2

R2in

ou

t

a

R2

R2in

ou

t

c

R4

R3

Transport Layer 3-83

Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 3 4 người gửi caacutec đường qua nhiều hop timeouttruyền lại

in

Hỏi điều gigrave xảy ra nếu vagrave tăng lecircn

in

chia sẻ vocirc hạncaacutec bộ đệm ouput

Host Ain dữ liệu gốc

Host B

out

in dữ liệu gốc cugraveng với dữ liệu truyền lại

Transport Layer 3-84

Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 3

ldquochi phiacuterdquo khaacutec của tắc nghẽn khi caacutec goacutei bị bỏ bất kỳ ldquokhả năng truyền

upstream dugraveng cho goacutei đoacute sẽ bị latildeng phiacuterdquo

Host A

Host B

o

u

t

Transport Layer 3-85

Caacutec caacutech tiếp cận đối với điều khiển tắc nghẽn

điều khiển tắc nghẽn end-end

khocircng coacute phản hồi rotilde ragraveng từ mạng

tắc nghẽn được suy ra từ việc quan saacutet caacutec hệ thống đầu cuối coacute mất maacutet trễ

tiếp cận được quản lyacute bởi TCP

điều khiển tắc nghẽn coacute sự hỗ trợ của mạng

caacutec router cung cấp phản hồi về caacutec hệ thống đầu cuối 1 bit duy nhất chỉ thị

tắc nghẽn (SNA DECbit TCPIP ECN ATM)

tốc độ sẽ gửi được xaacutec định rotilde ragraveng

2 caacutech

Transport Layer 3-86

Viacute dụ điều khiển tắc nghẽn ATM ABR

ABR tốc độ bit sẵn sagraveng

ldquodịch vụ mềm dẻordquo nếu đường gửi ldquochưa

hếtrdquo becircn gửi sẽ dugraveng

băng thocircng sẵn sagraveng nếu đường gửi tắc

nghẽn becircn gửi điều tiết với

tốc độ tối thiểu

RM (resource management)

gửi bởi becircn gửi rải raacutec với caacutec ocirc dữ liệu

caacutec bit trong ocirc thiết lập bởi caacutec switch bit NI khocircng tăng tốc độ

(tắc nghẽn nhẹ) bit CI tắc nghẽn rotilde rệt

Caacutec ocirc RM được trả về becircn gửi từ becircn nhận với nguyecircn vẹn caacutec bit

Transport Layer 3-87

Viacute dụ điều khiển tắc nghẽn ATM ABR

trường 2-byte ER trong ocirc RM switch đatilde tắc nghẽn coacute thể coacute giaacute trị ER thấp hơn trong ocirc tốc độ gửi do đoacute coacute thể được hỗ trợ tối đa trecircn đường

EFCI bit trong caacutec ocirc dữ liệu được cagravei giaacute trị 1 trong switch đatilde tắc nghẽn nếu ocirc dữ liệu đứng trước ocirc RM coacute cagravei EFCI becircn gửi sẽ cagravei

bit CI trong ocirc RM trả về

Transport Layer 3-88

Chương 3 Nội dung trigravenh bagravey

31 Caacutec dịch vụ lớp Transport

32 Multiplexing vagrave demultiplexing

33 Vận chuyển khocircng kết nối UDP

34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy

35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối

36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn

37 Điều khiển tắc nghẽn TCP

Transport Layer 3-89

TCP điều khiển tắc nghẽn additive tăng lecircn multiplicative giảm xuống

8 Kbytes

16 Kbytes

24 Kbytes

time

congestionwindow

Caacutech tiếp cận tăng tốc độ truyền (kiacutech thước cửa sổ) tigravem khả năng băng thocircng coacute thể cho đến khi coacute mất maacutet xảy ra additive tăng lecircn tăng CongWin bởi 1 MSS

mỗi RTT cho đến khi coacute mất maacutet xảy ra multiplicative giảm xuống bỏ CongWin trong

nửa giai đoạn sau khi mất maacutet

timekiacutech

thư

ớc

cửa

sổ

tắc

nghẽ

n

Tigravem kiếm băng thocircng

Transport Layer 3-90

TCP điều khiển tắc nghẽn chi tiết

becircn gửi hạn chế việc truyền LastByteSent-LastByteAcked

CongWin Cocircng thức

CongWin thay đổi chức năng lagrave nhận biết tắc nghẽn trecircn mạng

Lagravem thế nagraveo becircn gửi nhận biết tắc nghẽn

mất maacutet xảy ra = timeout hoặc 3 ack trugraveng lặp

becircn gửi giảm tốc độ (CongWin) sau khi mất maacutet xảy ra

3 cơ chế AIMD khởi động chậm thận trọng sau khi coacute

caacutec sự kiện timeout

tốc độ = CongWin

RTT Bytess

Transport Layer 3-91

TCP khởi động chậm

Khi kết nối bắt đầu CongWin = 1 MSS Viacute dụ MSS = 500 bytes

amp RTT = 200 ms tốc độ khởi tạo = 20

kbps

băng thocircng sẵn sagraveng coacute thể gtgt MSSRTT mong muốn nhanh

choacuteng tăng tốc lecircn tốc độ coacute thể đaacutep ứng

Khi kết nối bắt đầu tăng tốc lecircn rất nhanh cho đến khi sự cố mất maacutet xảy ra đầu tiecircn

Transport Layer 3-92

TCP khởi động chậm (tt)

Khi kết nối bắt đầu tăng tốc lecircn rất nhanh cho đến khi sự cố mất maacutet xảy ra đầu tiecircn nhacircn đocirci CongWin mỗi

RTT hoagraven thagravenh nhờ tăng CongWin ứng với mỗi ACK đatilde nhận

Tổng kết tốc độ khởi đầu lagrave chậm nhưng sau đoacute tăng tốc rất nhanh

Host A

1 đoạn

RTT

Host B

thời gian

2 đoạn

4 đoạn

Transport Layer 3-93

Tinh chếHỏi Khi nagraveo việc tăng

tốc trở thagravenh tuyến tiacutenh

Trả lời Khi CongWin đạt đến 12 giaacute trị của noacute trước khi timeout

Hiện thực Ngưỡng thay đổi Tại thời điểm coacute sự cố

mất maacutet ngưỡng được cagravei giaacute trị bằng frac12 của CongWin ngay trước đoacute

Transport Layer 3-94

Tinh chế nhận biết mất maacutet

Sau 3 ACK trugraveng lặp CongWin sẽ giảm 12 kiacutech thước cửa sổ

tăng tuyến tiacutenh nhưng sau sự cố

timeout CongWin thay giaacute trị

bằng 1 MSS kiacutech thước cửa sổ

tăng cấp lũy thừa khi đến một ngưỡng

thigrave tăng tuyến tiacutenh

3 ACK trugraveng nhau chỉ ra khả năng truyền của mạng timeout chỉ thị ldquonhiều cảnh baacuteordquo về tigravenh huống tắc nghẽn

Nguyecircn lyacute

Transport Layer 3-95

Tổng kết TCP điều khiển tắc nghẽn

Khi CongWin dưới Threshold becircn gửi đang trong giai đoạn khởi động chậm kiacutech thước cửa sổ tăng nhanh theo cấp lũy thừa

Khi CongWin trecircn Threshold becircn gửi đang trong giai đoạn traacutenh tắc nghẽn kiacutech thước cửa sổ tăng nhanh theo cấp tuyến tiacutenh

Khi coacute 3 ACK trugraveng lặp xảy ra Threshold = CongWin2 vagrave CongWin = Threshold

Khi timeout xảy ra Threshold = CongWin2 vagrave CongWin = 1 MSS

Transport Layer 3-96

TCP điều khiển tắc nghẽn becircn gửi

Trạng thaacutei Sự kiện TCP becircn gửi hagravenh động Diễn giải

Slow Start (SS)-Khởi động chậm

ACK baacuteo nhận cho dữ liệu chưa ACK trước đoacute

CongWin = CongWin + MSS If (CongWin gt Threshold) cagravei đặt trạng thaacutei ldquoTraacutenh tắc nghẽnrdquo

Hậu quả lagravem tăng gấp đocirci CongWin mỗi RTT

CongestionAvoidance (CA) ndashTraacutenh tắc nghẽn

ACK baacuteo nhận cho dữ liệu chưa ACK trước đoacute

CongWin = CongWin+MSS (MSSCongWin)

Additive tăng lecircn lagravem tăng CongWin lecircn 1 MSS mỗi RTT

SS hoặc CA Sự cố mất maacutet xảy ra khi thấy coacute 3 ACK trugraveng lặp

Threshold = CongWin2 CongWin = Thresholdcagravei đặt trạng thaacutei ldquoTraacutenh tắc nghẽnrdquo

Khocirci phục nhanh hiện thực giảm xuống multiplicative CongWin sẽ khocircng giảm xuống dưới 1 MSS

SS hoặc CA Timeout Threshold = CongWin2 CongWin = 1 MSScagravei đặt trạng thaacutei ldquoKhởi động chậmrdquo

Vagraveo chế độ ldquoKhởi động chậmrdquo

SS hoặc CA ACK trugraveng lặp

Đếm ACK tăng lecircn cho đoạn vừa được ACK

CongWin vagrave Threshold khocircng thay đổi

Transport Layer 3-97

TCP throughput

Throughout trung bigravenh của TCP biểu diễn qua kiacutech thước của sổ vagrave RTT Bỏ qua trạng thaacutei ldquoKhởi động chậmrdquo

Cho W lagrave kiacutech thước cửa sổ khi coacute mất maacutet xảy ra

Khi kiacutech thước cửa sổ = W lưu lượng = WRTT

Chỉ ngay sau khi mất maacutet cửa sổ giảm xuống = W2 lưu lượng = W2RTT

throughout trung bigravenh 075 WRTT

Transport Layer 3-98

TCP tương lai

Viacute dụ caacutec đoạn dagravei 1500 byte RTT 100ms lưu lượng 10 Gbps

Kiacutech thước cửa sổ yecircu cầu W = 83333 đoạn trecircn đường truyền

Lưu lượng trong caacutec trường hợp mất maacutet

L = 210-10

Phiecircn bản mới của TCP dagravenh cho nhu cầu tốc độ cao

LRTT

MSS221

Transport Layer 3-99

Mục tiecircu nếu K phiecircn lagravem việc TCP chia sẻ kết nối cổ chai của băng thocircng lagrave R mỗi phiecircn coacute tốc độ trung bigravenh lagrave RK

TCP kết nối 1

router cổ chaikhả năng R

TCP kết nối 2

TCP tiacutenh cocircng bằng

Transport Layer 3-100

Tại sao phải TCP cocircng bằng

2 phiecircn lagravem việc cạnh tranh nhau Additive tăng lưu lượng tăng multiplicative giảm lưu lượng tương xứng

R

R

chia sẻ băng thocircng bằng nhau

Connection 1 throughputConnect

ion 2

th

roughput

traacutenh tắc nghẽn additive tăng lecircnmất maacutet giảm cửa sổ bằng 12

traacutenh tắc nghẽn additive tăng lecircnmất maacutet giảm cửa sổ bằng 12

Transport Layer 3-101

TCP tiacutenh cocircng bằng (tt)

Tiacutenh cocircng bằng amp UDP nhiều ứng dụng

thường khocircng dugraveng TCP khocircng muốn tốc độ bị

điều tiết do điều khiển tắc nghẽn

Thay bằng dugraveng UDP truyền audiovideo với

tốc độ ổn định chịu được mất maacutet

Nghiecircn cứu giao thức thacircn thiện với TCP

Tiacutenh cocircng bằng amp caacutec kết nối TCP song song

khocircng coacute gigrave ngăn cản việc ứng dụng mở caacutec kết nối song song giữa 2 host

Trigravenh duyệt Web lagravem giống như thế

Viacute dụ tốc độ R hỗ trợ 9 kết nối ứng dụng mới yecircu cầu 1

TCP coacute tốc độ R10 ứng dụng mới yecircu cầu 11

TCP coacute tốc độ R2

Transport Layer 3-102

Mocirc higravenh trễ

Hỏi Mất bao lacircu để nhận 1 đối tượng từ Web server sau khi gửi yecircu cầu

Bỏ qua tắc nghẽn trễ bị ảnh hưởng bởi

thiết lập kết nối TCP trễ truyền dữ liệu khởi động chậm

Notation caacutec giả định Giả sử một kết nối giữa

client vagrave server coacute tốc độ R

S MSS (bits) O kiacutech thước đối tượng

(bits) khocircng truyền lại (khocircng

mất maacutet khocircng hỏng)

Kiacutech thước cửa sổ Giả định 1 cửa sổ tắc

nghẽn cố định coacute W đoạn Sau đoacute cửa sổ thay đổi

mocirc higravenh khởi động chậm

Transport Layer 3-103

Cửa sổ tắc nghẽn cố định (1)

Trường hợp đầu tiecircnWSR gt RTT + SR cho

đoạn đầu tiecircn trong cửa sổ trả về trước khi cửa sổ dữ liệu gửi ACK

trễ = 2RTT + OR

Transport Layer 3-104

Cửa sổ tắc nghẽn cố định (2)

Trường hợp thứ hai WSR lt RTT + SR sent

chờ cho ACK sau khi gửi dữ liệu

trễ = 2RTT + OR+ (K-1)[SR + RTT - WSR]

Transport Layer 3-105

TCP Mocirc higravenh trễ Khởi động chậm (1)

Bacircy giờ giả sử kiacutech thước cửa sổ tăng lecircn tugravey theo quaacute trigravenh khởi động chậm

Độ trễ của một đối tượng sẽ lagrave

R

S

R

SRTTP

R

ORTTLatency P )12(2

trong đoacute P lagrave số lần TCP rảnh ở tại server

1min KQP

- trong đoacute Q lagrave số lần server rảnh nếu đối tượng đatilde khởi tạo kiacutech thước

- vagrave K lagrave số lượng cửa sổ bao trugravem đối tượng

Transport Layer 3-106

TCP Mocirc higravenh trễ Khởi động chậm (2)

RTT

initia te TCPconnection

requestobject

first w indow= S R

second w indow= 2S R

third w indow= 4S R

fourth w indow= 8S R

com pletetransm issionobject

delivered

tim e atc lient

tim e atserver

Viacute dụbull OS = 15 đoạnbull K = 4 cửa sổbull Q = 2bull P = minK-1Q = 2

Server rảnh P=2 lần

Caacutec thagravenh phần trễbull 2 RTT dagravenh cho thiết lập kết nối vagrave yecircu cầubull OR để truyền đối tượngbullthời gian server rảnh bởi vigrave khởi động chậm

Server rảnh P = minK-1Q lần

Transport Layer 3-107

TCP Mocirc higravenh trễ(3)

R

S

R

SRTTPRTT

R

O

R

SRTT

R

SRTT

R

O

idleTimeRTTR

O

P

kP

k

P

pp

)12(][2

]2[2

2delay

1

1

1

th window after the timeidle 2 1 kR

SRTT

R

S k

ementacknowledg receivesserver until

segment send tostartsserver when from time RTTR

S

window kth the transmit totime2 1

R

Sk

RTT

initia te TCPconnection

requestobject

first w indow= S R

second w indow= 2S R

third w indow= 4S R

fourth w indow= 8S R

com pletetransm issionobject

delivered

tim e atc lient

tim e atserver

Transport Layer 3-108

TCP Mocirc higravenh trễ (4)

)1(log

)1(logmin

12min

222min

222min

2

2

110

110

S

OS

Okk

S

Ok

SOk

OSSSkK

k

k

k

caacutech tiacutenh toaacuten Q tương tự (xem HW)

K = số lượng cửa sổ bao trugravem đối tượngLagravem thế nagraveo tiacutenh được K

Transport Layer 3-109

HTTP Mocirc higravenh Giả sử trang Web chứa

1 trang HTML (kiacutech thước O bits) M higravenh ảnh (mỗi caacutei kiacutech thướcO bits)

HTTP khocircng bền vững M+1 TCP kết nối Thời gian đaacutep ứng = (M+1)OR + (M+1)2RTT + tổng số thời

gian rảnh HTTP bền vững

2 RTT để yecircu cầu vagrave nhận file HTML 1 RTT để yecircu cầu vagrave nhận M higravenh ảnh Thời gian đaacutep ứng = (M+1)OR + 3RTT + tổng số thời gian

rảnh HTTP khocircng bền vững với X kết nối song song

Giả sử MX lagrave số nguyecircn 1 TCP kết nối cho file MX thiết lập caacutec kết nối song song cho caacutec higravenh ảnh Thời gian đaacutep ứng = (M+1)OR + (MX + 1)2RTT + tổng số

thời gian rảnh

Transport Layer 3-110

02468

101214161820

28Kbps

100Kbps

1Mbps

10Mbps

non-persistent

persistent

parallel non-persistent

HTTP thời gian đaacutep ứng (giacircy)RTT = 100 msec O = 5 Kbytes M=10 vagrave X=5

Với băng thocircng thấp thời gian kết nối amp đaacutep ứng trội hơn thời gian truyền

Caacutec kết nối bền vững chỉ cho sự cải thiện khocircng đaacuteng kể trecircn caacutec kết nối song song

Transport Layer 3-111

0

10

20

30

40

50

60

70

28Kbps

100Kbps

1Mbps

10Mbps

non-persistent

persistent

parallel non-persistent

HTTP thời gian đaacutep ứng (giacircy)

RTT =1 sec O = 5 Kbytes M=10 and X=5

Với RTT lớn hơn thời gian đaacutep ứng trội hơn thời gian trễ chờ thiết lập kết nốiTCP amp khởi động chậm Caacutec kết nối bền vững bacircy giờ cho thấy cải thiện rotilde rệt đặc biệtvới caacutec mạng băng thocircng cao

Transport Layer 3-112

Chương 3 Tổng kết caacutec nguyecircn lyacute của caacutec

dịch vụ lớp transport multiplexing

demultiplexing truyền dữ liệu tin cậy điều khiển luồng điều khiển tắc nghẽn

khởi tạo vagrave hiện thực trong Internet UDP TCP

Tiếp theo nghiecircn cứu xong

caacutec vấn đề ldquongoagravei biecircnrdquo (caacutec lớp application transport)

chuẩn bị vagraveo phần ldquolotildeirdquo của mạng

  • Slide 1
  • Chương 3 Lớp Transport
  • Chương 3 Nội dung trigravenh bagravey
  • Caacutec dịch vụ vagrave giao thức Transport
  • Lớp Transport với lớp network
  • Caacutec giao thức lớp transport trecircn Internet
  • Slide 7
  • Multiplexingdemultiplexing
  • Demultiplexing lagravem việc như thế nagraveo
  • Demultiplexing khocircng kết nối
  • Demultiplexing khocircng kết nối (tiếp)
  • Demultiplexing hướng kết nối
  • Demultiplexing hướng kết nối (tiếp)
  • Demultiplexing hướng kết nối Threaded Web Server
  • Slide 15
  • UDP User Datagram Protocol [RFC 768]
  • UDP (tt)
  • UDP checksum
  • Viacute dụ Checksum
  • Slide 20
  • Caacutec nguyecircn lyacute truyền dữ liệu tin cậy
  • Slide 22
  • Slide 23
  • Truyền dữ liệu tin cậy
  • Slide 25
  • Rdt10 truyền dữ liệu tin cậy trecircn 1 kecircnh truyền tin cậy
  • Rdt20 kecircnh với caacutec lỗi
  • rdt20 đặc tả FSM
  • rdt20 hoạt động khi khocircng lỗi
  • rdt20 hoạt động khi coacute lỗi
  • rdt20 coacute lỗ hổng nghiecircm trọng
  • rdt21 người gửi quản lyacute caacutec ACKNAK bị hỏng
  • Slide 33
  • rdt21 thảo luận
  • rdt22 một giao thức khocircng cần NAK
  • rdt22 gửi nhận caacutec mảnh
  • rdt30 caacutec kecircnh với lỗi vagrave mất maacutet
  • rdt30 gửi
  • hagravenh động của rdt30
  • Slide 40
  • Hiệu suất của rdt30
  • rdt30 hoạt động dừng-vagrave-chờ
  • Caacutec giao thức Pipelined
  • Pipelining độ khả dụng tăng
  • Go-Back-N
  • GBN becircn gửi mở rộng FSM
  • GBN becircn nhận mở rộng FSM
  • GBN hoạt động
  • Lặp coacute lựa chọn
  • Lặp coacute lựa chọn caacutec cửa sổ gửi nhận
  • Slide 51
  • Hoạt động của lặp coacute lựa chọn
  • Lặp coacute lựa chọn tigravenh trạng khoacute giải quyết
  • Slide 54
  • TCP Tổng quan RFCs 793 1122 1323 2018 2581
  • TCP cấu truacutec đoạn
  • Caacutec số thứ tự TCP vagrave ACK
  • TCP Round Trip Time vagraveTimeout
  • TCP Round Trip Time vagrave Timeout
  • Viacute dụ đaacutenh giaacute RTT
  • Slide 61
  • TCP truyền dữ liệu tin cậy
  • TCP caacutec sự kiện
  • TCP becircn gửi (đơn giản)
  • TCP caacutec tigravenh huống truyền lại
  • TCP caacutec tigravenh huống truyền lại (tt)
  • TCP sinh ra ACK [RFC 1122 RFC 2581]
  • Truyền lại nhanh
  • Giải thuật truyền lại nhanh
  • Slide 70
  • TCP điều khiển luồng
  • TCP điều khiển luồng caacutech lagravem
  • Slide 73
  • TCP quản lyacute kết nối
  • TCP quản lyacute kết nối (tt)
  • Slide 76
  • Slide 77
  • Slide 78
  • Caacutec nguyecircn lyacute điều khiển tắc nghẽn
  • Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 1
  • Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 2
  • Slide 82
  • Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 3
  • Slide 84
  • Caacutec caacutech tiếp cận đối với điều khiển tắc nghẽn
  • Viacute dụ điều khiển tắc nghẽn ATM ABR
  • Slide 87
  • Slide 88
  • TCP điều khiển tắc nghẽn additive tăng lecircn multiplicative giảm xuống
  • TCP điều khiển tắc nghẽn chi tiết
  • TCP khởi động chậm
  • TCP khởi động chậm (tt)
  • Tinh chế
  • Tinh chế nhận biết mất maacutet
  • Tổng kết TCP điều khiển tắc nghẽn
  • TCP điều khiển tắc nghẽn becircn gửi
  • TCP throughput
  • TCP tương lai
  • TCP tiacutenh cocircng bằng
  • Tại sao phải TCP cocircng bằng
  • TCP tiacutenh cocircng bằng (tt)
  • Mocirc higravenh trễ
  • Cửa sổ tắc nghẽn cố định (1)
  • Cửa sổ tắc nghẽn cố định (2)
  • TCP Mocirc higravenh trễ Khởi động chậm (1)
  • TCP Mocirc higravenh trễ Khởi động chậm (2)
  • TCP Mocirc higravenh trễ(3)
  • TCP Mocirc higravenh trễ (4)
  • HTTP Mocirc higravenh
  • Slide 110
  • Slide 111
  • Chương 3 Tổng kết

Transport Layer 3-51

Lặp coacute lựa chọn

dữ liệu từ lớp trecircn nếu số thứ tự kế tiếp sẵn

sagraveng trong cửa sổ gửi goacutei

timeout(n) gửi lại goacutei n taacutei khởi tạo

bộ định thigrave

ACK(n) trong [sendbasesendbase+N]

đaacutenh dấu goacutei n lagrave đatilde nhận nếu goacutei khocircng ACK coacute n

nhỏ nhất dịch chuyển cửa sổ base đến số thứ tự khocircng ACK kế tiếp

Gửigoacutei n trong [rcvbase

rcvbase+N-1]

gửi ACK(n) khocircng thứ tự đệm

(buffer) coacute thứ tự truyền (cũng

truyền caacutec goacutei đatilde đệm coacute thứ tự) dịch chuyển cửa sổ đến goacutei chưa nhận kế tiếp

goacutei n trong [rcvbase-Nrcvbase-1]

ACK(n)

ngược lại lờ đi

Nhận

Transport Layer 3-52

Hoạt động của lặp coacute lựa chọn

Transport Layer 3-53

Lặp coacute lựa chọntigravenh trạng khoacute giải quyếtViacute dụ Số thứ tự 0 1 2 3 Kiacutech thước cửa sổ = 3

becircn nhận khocircng thấy sự khaacutec nhau trong 2 tigravenh huống

chuyển khocircng chiacutenh xaacutec dữ liệu trugraveng lặp như dữ liệu mới trong (a)

Hỏi quan hệ giữa datildey số thứ tự vagrave kiacutech thước cửa sổ

Transport Layer 3-54

Chương 3 Nội dung trigravenh bagravey

31 Caacutec dịch vụ lớp Transport

32 Multiplexing vagrave demultiplexing

33 Vận chuyển khocircng kết nối UDP

34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy

35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối

36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn

37 Điều khiển tắc nghẽn TCP

Transport Layer 3-55

TCP Tổng quan RFCs 793 1122 1323 2018 2581

dữ liệu full duplex luồng dữ liệu đi 2 chiều

trong cugraveng một kết nối MSS maximum

segment size ndash kiacutech thước đoạn tối đa

hướng kết nối bắt tay (trao đổi caacutec

thocircng điệp điều khiển) trạng thaacutei becircn gửi becircn nhận trước khi trao đổi dữ liệu

điều khiển luồng becircn gửi sẽ khocircng lấn aacutet

becircn nhận

point-to-point một becircn gửi một becircn

nhận tin cậy dograveng byte coacute

thứ tự khocircng ldquoranh giới thocircng

điệprdquo kecircnh liecircn lạc

TCP điều khiển luồng vagrave tắc nghẽn thiết lập kiacutech thước cửa sổ

caacutec bộ đệm gửi amp nhận

socketdoor

T C Psend buffer

T C Preceive buffer

socketdoor

segm ent

applicationwrites data

applicationreads data

Transport Layer 3-56

TCP cấu truacutec đoạn

port nguồn port điacutech

32 bits

dữ liệu ứng dụng(độ dagravei thay đổi)

số thứ tự

số ACKcửa sổ nhận

con trỏ URGchecksum

FSRPAUheadlen

notused

Tugravey chọn (độ dagravei thay đổi)

URG dữ liệu khẩn cấp(thường khocircng dugraveng)

ACK ACK hợp lệ

PSH push data now(thường khocircng dugraveng)

RST SYN FINthiết lập kết nối

(caacutec lệnh thiết lậpchia nhỏ)

số byte becircn nhận sẵn sagraveng chấp nhận

đếm bởi số bytecủa dữ liệu

Internetchecksum

(giống UDP)

Transport Layer 3-57

Caacutec số thứ tự TCP vagrave ACKCaacutec số thứ tự

dograveng byte ldquođaacutenh sốrdquo byte đầu tiecircn trong dữ liệu của đoạn

caacutec ACK số thứ tự của byte

kế tiếp được chờ đợi từ phiacutea becircn kia

ACK tiacutech lũyHỏi lagravem thế nagraveo becircn

nhận quản lyacute caacutec đoạn khocircng thứ tự Trả lời TCP khocircng

đề cập tugravey thuộc người hiện thực

Host A Host B

Seq=42 ACK=79 data = lsquoCrsquo

Seq=79 ACK=43 data = lsquoCrsquo

Seq=43 ACK=80

UsernhậplsquoCrsquo

host ACKsnhận phản hồi

lsquoCrsquo

host ACKsbaacuteo nhận

lsquoCrsquo phản hồingược lại lsquoCrsquo

timetigravenh huống telnet đơn giản

Transport Layer 3-58

TCP Round Trip Time vagraveTimeout

Hỏi Lagravem thế nagraveo để thiết lập giaacute trị TCP timeout

dagravei hơn RTT khaacutec với RTT

quaacute ngắn timeout sớm truyền lại khocircng

cần thiết quaacute dagravei phản ứng

chậm đối với việc mất maacutet goacutei

Hỏi Lagravem thế nagraveo để thiết lập RTT

SampleRTT thời gian được đo từ khi truyền đoạn đến khi baacuteo nhận ACK lờ đi việc truyền lại

SampleRTT sẽ thay đổi muốn ước lượng RTT ldquomượt hơnrdquo tiacutenh trung bigravenh một số giaacute

trị đo được gần đoacute khocircng chỉ SampleRTT hiện tại

Transport Layer 3-59

TCP Round Trip Time vagrave Timeout

EstimatedRTT = (1- )EstimatedRTT + SampleRTT

giaacute trị đặc trưng = 0125

Transport Layer 3-60

Viacute dụ đaacutenh giaacute RTTRTT gaiacsumassedu to fantasiaeurecomfr

100

150

200

250

300

350

1 8 15 22 29 36 43 50 57 64 71 78 85 92 99 106

time (seconnds)

RTT

(mill

isec

onds

)

SampleRTT Estimated RTT

Transport Layer 3-61

TCP Round Trip Time vagrave Timeout

Thiết lập timeout EstimtedRTT cộng ldquohệ số dự trữ an toagravenrdquo

sự biến thiecircn lớn trong EstimatedRTT -gt hệ số dự trữ an toagraven lớn hơn ước lượng đầu tiecircn về sự biến thiecircn của SampleRTT từ EstimatedRTT

TimeoutInterval = EstimatedRTT + 4DevRTT

DevRTT = (1-)DevRTT + |SampleRTT-EstimatedRTT|

(tiecircu biểu = 025)

Sau đoacute thiết lập timeout interval

Transport Layer 3-62

TCP truyền dữ liệu tin cậy

TCP tạo dịch vụ rdt trecircn dịch vụ khocircng tin cậy IP

caacutec đoạn Pipelined caacutec ACK tiacutech lũy TCP dugraveng bộ định thigrave

truyền lại đơn

Truyền lại được kiacutech hoạt bởi caacutec sự kiện timeout caacutec ack trugraveng lặp

luacutec đầu khảo saacutet caacutec becircn gửi TCP đơn giản lờ đi caacutec ack trugraveng lặp lờ đi điều khiển luồng

điều khiển tắc nghẽn

Transport Layer 3-63

TCP caacutec sự kiệndữ liệu đatilde nhận từ ứng

dụng tạo đoạn với số thứ

tự của noacute số thứ tự lagrave số theo

byte dữ liệu đầu tiecircn khởi động bộ định thigrave

nếu chưa chạy khoảng thời gian hết

hạn TimeOutInterval

timeout gửi lại đoạn nagraveo gacircy

ra timeout khởi động lại bộ định

thigrave Ack đatilde nhận

cập nhật caacutei gigrave sẽ được ACK

khởi động bộ định thigrave nếu coacute caacutec đoạn cograven chờ

Transport Layer 3-64

TCP becircn gửi(đơn giản)

NextSeqNum = InitialSeqNum SendBase = InitialSeqNum

loop (forever) switch(event)

event data received from application above create TCP segment with sequence number NextSeqNum if (timer currently not running) start timer pass segment to IP NextSeqNum = NextSeqNum + length(data)

event timer timeout retransmit not-yet-acknowledged segment with smallest sequence number start timer

event ACK received with ACK field value of y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer

end of loop forever

Chuacute thiacutechbull SendBase-1 byte vừa được ACK tiacutech lũy Viacute dụbull SendBase-1 = 71y= 73 vigrave thế becircn nhận muốn 73+ y gt SendBase vigrave thế dữ liệu mới được chấp nhận

Transport Layer 3-65

TCP caacutec tigravenh huống truyền lại

Host A

Seq=100 20 bytes data

ACK=100

timetimeout sớm

Host B

Seq=92 8 bytes data

ACK=120

Seq=92 8 bytes data

Seq=

92

tim

eout

ACK=120

Host A

Seq=92 8 bytes data

ACK=100

loss

tim

eout

tigravenh huống mất ACK

Host B

X

Seq=92 8 bytes data

ACK=100

time

Seq=

92

tim

eout

SendBase= 100

SendBase= 120

SendBase= 120

Sendbase= 100

Transport Layer 3-66

TCP caacutec tigravenh huống truyền lại (tt)Host A

Seq=92 8 bytes data

ACK=100

loss

tim

eout

Cumulative ACK scenario

Host B

X

Seq=100 20 bytes data

ACK=120

time

SendBase= 120

Transport Layer 3-67

TCP sinh ra ACK [RFC 1122 RFC 2581]

Sự kiện tại becircn nhận

Đoạn đến với đuacuteng số thứ tự mong muốn Tất cả dữ liệu đếnđatilde được ACK

Đoạn đến với đuacuteng số thứ tự mong muốn Một đoạn khaacutec đangchờ ACK

Caacutec đoạn đến khocircng thứ tựlớn hơn số thứ tự đoạn mong muốnCoacute khoảng trống

Đoạn đếnlấp đầy từng phần hoặc toagraven bộkhoảng trống

TCP becircn nhận hagravenh động

ACK trễ Chờ đến 500mscho đoạn kế tiếp Nếu khocircng coacute đoạnkế tiếp gửi ACK

Gửi ngay một ACK tiacutech lũy chấp nhậncho cả caacutec đoạn theo thứ tự

Gửi ngay ACK trugraveng lặp chỉ thị số thứ tựđoạn của byte kế tiếp đang mong chờ

Gửi ngay ACK với điều kiện lagrave đoạnbắt đầu ngay điểm coacute khoảng trống

Transport Layer 3-68

Truyền lại nhanh

Chu kỳ Time-out thường tương đối dagravei độ trễ dagravei trước khi gửi

lại goacutei đatilde mất

Xaacutec nhận caacutec đoạn đatilde mất bằng caacutec ACK trugraveng lặp becircn gửi thường gửi

nhiều đoạn song song Nếu đoạn bị mất sẽ

xảy ra tigravenh trạng giống như nhiều ACK trugraveng nhau

Nếu becircn gửi nhận 3 ACK của cugraveng một dữ liệu noacute cho lagrave đoạn sau dữ liệu đatilde ACK bị mất Truyền lại nhanh gửi

lại đoạn trước khi bộ định thigrave hết hạn

Transport Layer 3-69

sự kiện ACK đatilde nhận với trường lagrave y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer else increment count of dup ACKs received for y if (count of dup ACKs received for y = 3) resend segment with sequence number y

Giải thuật truyền lại nhanh

một ACK trugraveng lặp cho đoạn đatilde được ACK

Truyền lại nhanh

Transport Layer 3-70

Chương 3 Nội dung trigravenh bagravey

31 Caacutec dịch vụ lớp Transport

32 Multiplexing vagrave demultiplexing

33 Vận chuyển khocircng kết nối UDP

34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy

35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối

36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn

37 Điều khiển tắc nghẽn TCP

Transport Layer 3-71

TCP điều khiển luồng

becircn nhận của kết nối TCP coacute một bộ đệm nhận

dịch vụ so trugraveng tốc độ so trugraveng tốc độ gửi với tốc độ nhận của ứng dụng

tiến trigravenh ứng dụng coacute thể chậm tại luacutec đọc bộ đệm

becircn gửi sẽ khocircng lagravem tragraven bộ đệm vigrave truyền quaacute nhiều vagrave

quaacute nhanh

điều khiển luồng

Transport Layer 3-72

TCP điều khiển luồng caacutech lagravem

(Giả sử becircn nhận TCP loại bỏ caacutec đoạn khocircng coacute thứ tự)

dự phograveng trong bộ đệm= RcvWindow

= RcvBuffer-[LastByteRcvd - LastByteRead]

Becircn nhận thocircng baacuteo khoảng dự trữ nhờ giaacute trị RcvWindow trong caacutec đoạn

Becircn gửi hạn chế dữ liệu khocircng được ACK vagraveo RcvWindow bảo đảm bộ đệm nhận

khocircng tragraven

Transport Layer 3-73

Chương 3 Nội dung trigravenh bagravey

31 Caacutec dịch vụ lớp Transport

32 Multiplexing vagrave demultiplexing

33 Vận chuyển khocircng kết nối UDP

34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy

35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối

36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn

37 Điều khiển tắc nghẽn TCP

Transport Layer 3-74

TCP quản lyacute kết nối

Chuacute yacute Becircn gửi vagrave becircn nhận TCP thiết lập ldquokết nốirdquo trước khi trao đổi dữ liệu

khởi tạo caacutec biến TCP caacutec số thứ tự đoạn thocircng tin caacutec bộ đệm điều

khiển luồng (như RcvWindow)

client người khởi xướng kết nối

Socket clientSocket = new Socket(hostnameport

number) server được tiếp xuacutec bởi

client Socket connectionSocket =

welcomeSocketaccept()

3 phương phaacutep bắt tay

Bước 1 client host gửi đoạnTCP SYN đến server xaacutec định số thứ tự khởi đầu khocircng phải dữ liệu

Bước 2 server host nhận SYN trả lời với đoạn SYNACK

server cấp phaacutet caacutec bộ đệm

xaacutec định số thứ tự khởi đầuBước 3 client nhận SYNACK trả

lời với đoạn ACK (coacute thể chứa dữ liệu)

Transport Layer 3-75

TCP quản lyacute kết nối (tt)

Đoacuteng một kết nối

client đoacuteng socket clientSocketclose()

Bước 1 client gửi đoạn điều khiển TCP FIN đến server

Bước 2 server nhận FIN trả lời với ACK Đoacuteng kết nối gửi FIN

client

FIN

server

ACK

ACK

FIN

đoacuteng

đoacuteng

đatilde đoacutengthời g

ian c

hờ

Transport Layer 3-76

TCP quản lyacute kết nối (tt)

Bước 3 client nhận FIN trả lời với ACK

Trong khoảng ldquothời gian chờrdquo ndash sẽ phản hồi với ACK để nhận caacutec FIN

Bước 4 server nhận ACK Kết nối đatilde đoacuteng

Chuacute yacute với một sửa đổi nhỏ coacute thể quản lyacute nhiều FIN đồng thời

client

FIN

server

ACK

ACK

FIN

đang đoacuteng

đang đoacuteng

đatilde đoacuteng

thời g

ian c

hờ

đatilde đoacuteng

Transport Layer 3-77

TCP quản lyacute kết nối (tt)

chu kỳ sống củaTCP client

chu kỳ sống củaTCP server

Transport Layer 3-78

Chương 3 Nội dung trigravenh bagravey

31 Caacutec dịch vụ lớp Transport

32 Multiplexing vagrave demultiplexing

33 Vận chuyển khocircng kết nối UDP

34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy

35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối

36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn

37 Điều khiển tắc nghẽn TCP

Transport Layer 3-79

Caacutec nguyecircn lyacute điều khiển tắc nghẽn

Tắc nghẽn ldquoquaacute nhiều nguồn gửi quaacute nhanh vagrave quaacute nhiều

dữ liệu đến mạngrdquo khaacutec với điều khiển luồng caacutec biểu hiện

caacutec goacutei bị mất (tragraven bộ đệm tại caacutec router) caacutec độ trễ quaacute dagravei (xếp hagraveng trong bộ đệm

của router) lagrave 1 trong 10 vấn đề nan giải nhất

Transport Layer 3-80

Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 1

2 gửi 2 nhận 1 router caacutec bộ

đệm khocircng giới hạn

khocircng coacute truyền lại

caacutec độ trễ lớn hơn khi tắc nghẽn

năng suất coacute thể đạt tối đa

unlimited shared output link buffers

Host Ain original data

Host B

out

Transport Layer 3-81

Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 2

1 router caacutec bộ đệm coacute giới hạn becircn gửi truyền lại caacutec goacutei đatilde mất

chia sẻ vocirc hạncaacutec bộ đệm ouput

Host A in dữ liệu gốc

Host B

out

in dữ liệu gốc cugraveng với dữ liệu truyền lại

Transport Layer 3-82

Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 2 luocircn luocircn

truyền lại ldquohoagraven toagravenrdquo chỉ khi mất maacutet

truyền lại vigrave trễ (khocircng mất) lagravem cho lớn hơn với cugraveng

in

out

=

in

out

gt

in

out

ldquocaacutec chi phiacuterdquo của tắc nghẽn nhiều việc (truyền lại) caacutec truyền lại khocircng cần thiết liecircn kết nhiều bản sao của

goacutei

R2

R2in

ou

t

b

R2

R2in

ou

t

a

R2

R2in

ou

t

c

R4

R3

Transport Layer 3-83

Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 3 4 người gửi caacutec đường qua nhiều hop timeouttruyền lại

in

Hỏi điều gigrave xảy ra nếu vagrave tăng lecircn

in

chia sẻ vocirc hạncaacutec bộ đệm ouput

Host Ain dữ liệu gốc

Host B

out

in dữ liệu gốc cugraveng với dữ liệu truyền lại

Transport Layer 3-84

Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 3

ldquochi phiacuterdquo khaacutec của tắc nghẽn khi caacutec goacutei bị bỏ bất kỳ ldquokhả năng truyền

upstream dugraveng cho goacutei đoacute sẽ bị latildeng phiacuterdquo

Host A

Host B

o

u

t

Transport Layer 3-85

Caacutec caacutech tiếp cận đối với điều khiển tắc nghẽn

điều khiển tắc nghẽn end-end

khocircng coacute phản hồi rotilde ragraveng từ mạng

tắc nghẽn được suy ra từ việc quan saacutet caacutec hệ thống đầu cuối coacute mất maacutet trễ

tiếp cận được quản lyacute bởi TCP

điều khiển tắc nghẽn coacute sự hỗ trợ của mạng

caacutec router cung cấp phản hồi về caacutec hệ thống đầu cuối 1 bit duy nhất chỉ thị

tắc nghẽn (SNA DECbit TCPIP ECN ATM)

tốc độ sẽ gửi được xaacutec định rotilde ragraveng

2 caacutech

Transport Layer 3-86

Viacute dụ điều khiển tắc nghẽn ATM ABR

ABR tốc độ bit sẵn sagraveng

ldquodịch vụ mềm dẻordquo nếu đường gửi ldquochưa

hếtrdquo becircn gửi sẽ dugraveng

băng thocircng sẵn sagraveng nếu đường gửi tắc

nghẽn becircn gửi điều tiết với

tốc độ tối thiểu

RM (resource management)

gửi bởi becircn gửi rải raacutec với caacutec ocirc dữ liệu

caacutec bit trong ocirc thiết lập bởi caacutec switch bit NI khocircng tăng tốc độ

(tắc nghẽn nhẹ) bit CI tắc nghẽn rotilde rệt

Caacutec ocirc RM được trả về becircn gửi từ becircn nhận với nguyecircn vẹn caacutec bit

Transport Layer 3-87

Viacute dụ điều khiển tắc nghẽn ATM ABR

trường 2-byte ER trong ocirc RM switch đatilde tắc nghẽn coacute thể coacute giaacute trị ER thấp hơn trong ocirc tốc độ gửi do đoacute coacute thể được hỗ trợ tối đa trecircn đường

EFCI bit trong caacutec ocirc dữ liệu được cagravei giaacute trị 1 trong switch đatilde tắc nghẽn nếu ocirc dữ liệu đứng trước ocirc RM coacute cagravei EFCI becircn gửi sẽ cagravei

bit CI trong ocirc RM trả về

Transport Layer 3-88

Chương 3 Nội dung trigravenh bagravey

31 Caacutec dịch vụ lớp Transport

32 Multiplexing vagrave demultiplexing

33 Vận chuyển khocircng kết nối UDP

34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy

35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối

36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn

37 Điều khiển tắc nghẽn TCP

Transport Layer 3-89

TCP điều khiển tắc nghẽn additive tăng lecircn multiplicative giảm xuống

8 Kbytes

16 Kbytes

24 Kbytes

time

congestionwindow

Caacutech tiếp cận tăng tốc độ truyền (kiacutech thước cửa sổ) tigravem khả năng băng thocircng coacute thể cho đến khi coacute mất maacutet xảy ra additive tăng lecircn tăng CongWin bởi 1 MSS

mỗi RTT cho đến khi coacute mất maacutet xảy ra multiplicative giảm xuống bỏ CongWin trong

nửa giai đoạn sau khi mất maacutet

timekiacutech

thư

ớc

cửa

sổ

tắc

nghẽ

n

Tigravem kiếm băng thocircng

Transport Layer 3-90

TCP điều khiển tắc nghẽn chi tiết

becircn gửi hạn chế việc truyền LastByteSent-LastByteAcked

CongWin Cocircng thức

CongWin thay đổi chức năng lagrave nhận biết tắc nghẽn trecircn mạng

Lagravem thế nagraveo becircn gửi nhận biết tắc nghẽn

mất maacutet xảy ra = timeout hoặc 3 ack trugraveng lặp

becircn gửi giảm tốc độ (CongWin) sau khi mất maacutet xảy ra

3 cơ chế AIMD khởi động chậm thận trọng sau khi coacute

caacutec sự kiện timeout

tốc độ = CongWin

RTT Bytess

Transport Layer 3-91

TCP khởi động chậm

Khi kết nối bắt đầu CongWin = 1 MSS Viacute dụ MSS = 500 bytes

amp RTT = 200 ms tốc độ khởi tạo = 20

kbps

băng thocircng sẵn sagraveng coacute thể gtgt MSSRTT mong muốn nhanh

choacuteng tăng tốc lecircn tốc độ coacute thể đaacutep ứng

Khi kết nối bắt đầu tăng tốc lecircn rất nhanh cho đến khi sự cố mất maacutet xảy ra đầu tiecircn

Transport Layer 3-92

TCP khởi động chậm (tt)

Khi kết nối bắt đầu tăng tốc lecircn rất nhanh cho đến khi sự cố mất maacutet xảy ra đầu tiecircn nhacircn đocirci CongWin mỗi

RTT hoagraven thagravenh nhờ tăng CongWin ứng với mỗi ACK đatilde nhận

Tổng kết tốc độ khởi đầu lagrave chậm nhưng sau đoacute tăng tốc rất nhanh

Host A

1 đoạn

RTT

Host B

thời gian

2 đoạn

4 đoạn

Transport Layer 3-93

Tinh chếHỏi Khi nagraveo việc tăng

tốc trở thagravenh tuyến tiacutenh

Trả lời Khi CongWin đạt đến 12 giaacute trị của noacute trước khi timeout

Hiện thực Ngưỡng thay đổi Tại thời điểm coacute sự cố

mất maacutet ngưỡng được cagravei giaacute trị bằng frac12 của CongWin ngay trước đoacute

Transport Layer 3-94

Tinh chế nhận biết mất maacutet

Sau 3 ACK trugraveng lặp CongWin sẽ giảm 12 kiacutech thước cửa sổ

tăng tuyến tiacutenh nhưng sau sự cố

timeout CongWin thay giaacute trị

bằng 1 MSS kiacutech thước cửa sổ

tăng cấp lũy thừa khi đến một ngưỡng

thigrave tăng tuyến tiacutenh

3 ACK trugraveng nhau chỉ ra khả năng truyền của mạng timeout chỉ thị ldquonhiều cảnh baacuteordquo về tigravenh huống tắc nghẽn

Nguyecircn lyacute

Transport Layer 3-95

Tổng kết TCP điều khiển tắc nghẽn

Khi CongWin dưới Threshold becircn gửi đang trong giai đoạn khởi động chậm kiacutech thước cửa sổ tăng nhanh theo cấp lũy thừa

Khi CongWin trecircn Threshold becircn gửi đang trong giai đoạn traacutenh tắc nghẽn kiacutech thước cửa sổ tăng nhanh theo cấp tuyến tiacutenh

Khi coacute 3 ACK trugraveng lặp xảy ra Threshold = CongWin2 vagrave CongWin = Threshold

Khi timeout xảy ra Threshold = CongWin2 vagrave CongWin = 1 MSS

Transport Layer 3-96

TCP điều khiển tắc nghẽn becircn gửi

Trạng thaacutei Sự kiện TCP becircn gửi hagravenh động Diễn giải

Slow Start (SS)-Khởi động chậm

ACK baacuteo nhận cho dữ liệu chưa ACK trước đoacute

CongWin = CongWin + MSS If (CongWin gt Threshold) cagravei đặt trạng thaacutei ldquoTraacutenh tắc nghẽnrdquo

Hậu quả lagravem tăng gấp đocirci CongWin mỗi RTT

CongestionAvoidance (CA) ndashTraacutenh tắc nghẽn

ACK baacuteo nhận cho dữ liệu chưa ACK trước đoacute

CongWin = CongWin+MSS (MSSCongWin)

Additive tăng lecircn lagravem tăng CongWin lecircn 1 MSS mỗi RTT

SS hoặc CA Sự cố mất maacutet xảy ra khi thấy coacute 3 ACK trugraveng lặp

Threshold = CongWin2 CongWin = Thresholdcagravei đặt trạng thaacutei ldquoTraacutenh tắc nghẽnrdquo

Khocirci phục nhanh hiện thực giảm xuống multiplicative CongWin sẽ khocircng giảm xuống dưới 1 MSS

SS hoặc CA Timeout Threshold = CongWin2 CongWin = 1 MSScagravei đặt trạng thaacutei ldquoKhởi động chậmrdquo

Vagraveo chế độ ldquoKhởi động chậmrdquo

SS hoặc CA ACK trugraveng lặp

Đếm ACK tăng lecircn cho đoạn vừa được ACK

CongWin vagrave Threshold khocircng thay đổi

Transport Layer 3-97

TCP throughput

Throughout trung bigravenh của TCP biểu diễn qua kiacutech thước của sổ vagrave RTT Bỏ qua trạng thaacutei ldquoKhởi động chậmrdquo

Cho W lagrave kiacutech thước cửa sổ khi coacute mất maacutet xảy ra

Khi kiacutech thước cửa sổ = W lưu lượng = WRTT

Chỉ ngay sau khi mất maacutet cửa sổ giảm xuống = W2 lưu lượng = W2RTT

throughout trung bigravenh 075 WRTT

Transport Layer 3-98

TCP tương lai

Viacute dụ caacutec đoạn dagravei 1500 byte RTT 100ms lưu lượng 10 Gbps

Kiacutech thước cửa sổ yecircu cầu W = 83333 đoạn trecircn đường truyền

Lưu lượng trong caacutec trường hợp mất maacutet

L = 210-10

Phiecircn bản mới của TCP dagravenh cho nhu cầu tốc độ cao

LRTT

MSS221

Transport Layer 3-99

Mục tiecircu nếu K phiecircn lagravem việc TCP chia sẻ kết nối cổ chai của băng thocircng lagrave R mỗi phiecircn coacute tốc độ trung bigravenh lagrave RK

TCP kết nối 1

router cổ chaikhả năng R

TCP kết nối 2

TCP tiacutenh cocircng bằng

Transport Layer 3-100

Tại sao phải TCP cocircng bằng

2 phiecircn lagravem việc cạnh tranh nhau Additive tăng lưu lượng tăng multiplicative giảm lưu lượng tương xứng

R

R

chia sẻ băng thocircng bằng nhau

Connection 1 throughputConnect

ion 2

th

roughput

traacutenh tắc nghẽn additive tăng lecircnmất maacutet giảm cửa sổ bằng 12

traacutenh tắc nghẽn additive tăng lecircnmất maacutet giảm cửa sổ bằng 12

Transport Layer 3-101

TCP tiacutenh cocircng bằng (tt)

Tiacutenh cocircng bằng amp UDP nhiều ứng dụng

thường khocircng dugraveng TCP khocircng muốn tốc độ bị

điều tiết do điều khiển tắc nghẽn

Thay bằng dugraveng UDP truyền audiovideo với

tốc độ ổn định chịu được mất maacutet

Nghiecircn cứu giao thức thacircn thiện với TCP

Tiacutenh cocircng bằng amp caacutec kết nối TCP song song

khocircng coacute gigrave ngăn cản việc ứng dụng mở caacutec kết nối song song giữa 2 host

Trigravenh duyệt Web lagravem giống như thế

Viacute dụ tốc độ R hỗ trợ 9 kết nối ứng dụng mới yecircu cầu 1

TCP coacute tốc độ R10 ứng dụng mới yecircu cầu 11

TCP coacute tốc độ R2

Transport Layer 3-102

Mocirc higravenh trễ

Hỏi Mất bao lacircu để nhận 1 đối tượng từ Web server sau khi gửi yecircu cầu

Bỏ qua tắc nghẽn trễ bị ảnh hưởng bởi

thiết lập kết nối TCP trễ truyền dữ liệu khởi động chậm

Notation caacutec giả định Giả sử một kết nối giữa

client vagrave server coacute tốc độ R

S MSS (bits) O kiacutech thước đối tượng

(bits) khocircng truyền lại (khocircng

mất maacutet khocircng hỏng)

Kiacutech thước cửa sổ Giả định 1 cửa sổ tắc

nghẽn cố định coacute W đoạn Sau đoacute cửa sổ thay đổi

mocirc higravenh khởi động chậm

Transport Layer 3-103

Cửa sổ tắc nghẽn cố định (1)

Trường hợp đầu tiecircnWSR gt RTT + SR cho

đoạn đầu tiecircn trong cửa sổ trả về trước khi cửa sổ dữ liệu gửi ACK

trễ = 2RTT + OR

Transport Layer 3-104

Cửa sổ tắc nghẽn cố định (2)

Trường hợp thứ hai WSR lt RTT + SR sent

chờ cho ACK sau khi gửi dữ liệu

trễ = 2RTT + OR+ (K-1)[SR + RTT - WSR]

Transport Layer 3-105

TCP Mocirc higravenh trễ Khởi động chậm (1)

Bacircy giờ giả sử kiacutech thước cửa sổ tăng lecircn tugravey theo quaacute trigravenh khởi động chậm

Độ trễ của một đối tượng sẽ lagrave

R

S

R

SRTTP

R

ORTTLatency P )12(2

trong đoacute P lagrave số lần TCP rảnh ở tại server

1min KQP

- trong đoacute Q lagrave số lần server rảnh nếu đối tượng đatilde khởi tạo kiacutech thước

- vagrave K lagrave số lượng cửa sổ bao trugravem đối tượng

Transport Layer 3-106

TCP Mocirc higravenh trễ Khởi động chậm (2)

RTT

initia te TCPconnection

requestobject

first w indow= S R

second w indow= 2S R

third w indow= 4S R

fourth w indow= 8S R

com pletetransm issionobject

delivered

tim e atc lient

tim e atserver

Viacute dụbull OS = 15 đoạnbull K = 4 cửa sổbull Q = 2bull P = minK-1Q = 2

Server rảnh P=2 lần

Caacutec thagravenh phần trễbull 2 RTT dagravenh cho thiết lập kết nối vagrave yecircu cầubull OR để truyền đối tượngbullthời gian server rảnh bởi vigrave khởi động chậm

Server rảnh P = minK-1Q lần

Transport Layer 3-107

TCP Mocirc higravenh trễ(3)

R

S

R

SRTTPRTT

R

O

R

SRTT

R

SRTT

R

O

idleTimeRTTR

O

P

kP

k

P

pp

)12(][2

]2[2

2delay

1

1

1

th window after the timeidle 2 1 kR

SRTT

R

S k

ementacknowledg receivesserver until

segment send tostartsserver when from time RTTR

S

window kth the transmit totime2 1

R

Sk

RTT

initia te TCPconnection

requestobject

first w indow= S R

second w indow= 2S R

third w indow= 4S R

fourth w indow= 8S R

com pletetransm issionobject

delivered

tim e atc lient

tim e atserver

Transport Layer 3-108

TCP Mocirc higravenh trễ (4)

)1(log

)1(logmin

12min

222min

222min

2

2

110

110

S

OS

Okk

S

Ok

SOk

OSSSkK

k

k

k

caacutech tiacutenh toaacuten Q tương tự (xem HW)

K = số lượng cửa sổ bao trugravem đối tượngLagravem thế nagraveo tiacutenh được K

Transport Layer 3-109

HTTP Mocirc higravenh Giả sử trang Web chứa

1 trang HTML (kiacutech thước O bits) M higravenh ảnh (mỗi caacutei kiacutech thướcO bits)

HTTP khocircng bền vững M+1 TCP kết nối Thời gian đaacutep ứng = (M+1)OR + (M+1)2RTT + tổng số thời

gian rảnh HTTP bền vững

2 RTT để yecircu cầu vagrave nhận file HTML 1 RTT để yecircu cầu vagrave nhận M higravenh ảnh Thời gian đaacutep ứng = (M+1)OR + 3RTT + tổng số thời gian

rảnh HTTP khocircng bền vững với X kết nối song song

Giả sử MX lagrave số nguyecircn 1 TCP kết nối cho file MX thiết lập caacutec kết nối song song cho caacutec higravenh ảnh Thời gian đaacutep ứng = (M+1)OR + (MX + 1)2RTT + tổng số

thời gian rảnh

Transport Layer 3-110

02468

101214161820

28Kbps

100Kbps

1Mbps

10Mbps

non-persistent

persistent

parallel non-persistent

HTTP thời gian đaacutep ứng (giacircy)RTT = 100 msec O = 5 Kbytes M=10 vagrave X=5

Với băng thocircng thấp thời gian kết nối amp đaacutep ứng trội hơn thời gian truyền

Caacutec kết nối bền vững chỉ cho sự cải thiện khocircng đaacuteng kể trecircn caacutec kết nối song song

Transport Layer 3-111

0

10

20

30

40

50

60

70

28Kbps

100Kbps

1Mbps

10Mbps

non-persistent

persistent

parallel non-persistent

HTTP thời gian đaacutep ứng (giacircy)

RTT =1 sec O = 5 Kbytes M=10 and X=5

Với RTT lớn hơn thời gian đaacutep ứng trội hơn thời gian trễ chờ thiết lập kết nốiTCP amp khởi động chậm Caacutec kết nối bền vững bacircy giờ cho thấy cải thiện rotilde rệt đặc biệtvới caacutec mạng băng thocircng cao

Transport Layer 3-112

Chương 3 Tổng kết caacutec nguyecircn lyacute của caacutec

dịch vụ lớp transport multiplexing

demultiplexing truyền dữ liệu tin cậy điều khiển luồng điều khiển tắc nghẽn

khởi tạo vagrave hiện thực trong Internet UDP TCP

Tiếp theo nghiecircn cứu xong

caacutec vấn đề ldquongoagravei biecircnrdquo (caacutec lớp application transport)

chuẩn bị vagraveo phần ldquolotildeirdquo của mạng

  • Slide 1
  • Chương 3 Lớp Transport
  • Chương 3 Nội dung trigravenh bagravey
  • Caacutec dịch vụ vagrave giao thức Transport
  • Lớp Transport với lớp network
  • Caacutec giao thức lớp transport trecircn Internet
  • Slide 7
  • Multiplexingdemultiplexing
  • Demultiplexing lagravem việc như thế nagraveo
  • Demultiplexing khocircng kết nối
  • Demultiplexing khocircng kết nối (tiếp)
  • Demultiplexing hướng kết nối
  • Demultiplexing hướng kết nối (tiếp)
  • Demultiplexing hướng kết nối Threaded Web Server
  • Slide 15
  • UDP User Datagram Protocol [RFC 768]
  • UDP (tt)
  • UDP checksum
  • Viacute dụ Checksum
  • Slide 20
  • Caacutec nguyecircn lyacute truyền dữ liệu tin cậy
  • Slide 22
  • Slide 23
  • Truyền dữ liệu tin cậy
  • Slide 25
  • Rdt10 truyền dữ liệu tin cậy trecircn 1 kecircnh truyền tin cậy
  • Rdt20 kecircnh với caacutec lỗi
  • rdt20 đặc tả FSM
  • rdt20 hoạt động khi khocircng lỗi
  • rdt20 hoạt động khi coacute lỗi
  • rdt20 coacute lỗ hổng nghiecircm trọng
  • rdt21 người gửi quản lyacute caacutec ACKNAK bị hỏng
  • Slide 33
  • rdt21 thảo luận
  • rdt22 một giao thức khocircng cần NAK
  • rdt22 gửi nhận caacutec mảnh
  • rdt30 caacutec kecircnh với lỗi vagrave mất maacutet
  • rdt30 gửi
  • hagravenh động của rdt30
  • Slide 40
  • Hiệu suất của rdt30
  • rdt30 hoạt động dừng-vagrave-chờ
  • Caacutec giao thức Pipelined
  • Pipelining độ khả dụng tăng
  • Go-Back-N
  • GBN becircn gửi mở rộng FSM
  • GBN becircn nhận mở rộng FSM
  • GBN hoạt động
  • Lặp coacute lựa chọn
  • Lặp coacute lựa chọn caacutec cửa sổ gửi nhận
  • Slide 51
  • Hoạt động của lặp coacute lựa chọn
  • Lặp coacute lựa chọn tigravenh trạng khoacute giải quyết
  • Slide 54
  • TCP Tổng quan RFCs 793 1122 1323 2018 2581
  • TCP cấu truacutec đoạn
  • Caacutec số thứ tự TCP vagrave ACK
  • TCP Round Trip Time vagraveTimeout
  • TCP Round Trip Time vagrave Timeout
  • Viacute dụ đaacutenh giaacute RTT
  • Slide 61
  • TCP truyền dữ liệu tin cậy
  • TCP caacutec sự kiện
  • TCP becircn gửi (đơn giản)
  • TCP caacutec tigravenh huống truyền lại
  • TCP caacutec tigravenh huống truyền lại (tt)
  • TCP sinh ra ACK [RFC 1122 RFC 2581]
  • Truyền lại nhanh
  • Giải thuật truyền lại nhanh
  • Slide 70
  • TCP điều khiển luồng
  • TCP điều khiển luồng caacutech lagravem
  • Slide 73
  • TCP quản lyacute kết nối
  • TCP quản lyacute kết nối (tt)
  • Slide 76
  • Slide 77
  • Slide 78
  • Caacutec nguyecircn lyacute điều khiển tắc nghẽn
  • Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 1
  • Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 2
  • Slide 82
  • Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 3
  • Slide 84
  • Caacutec caacutech tiếp cận đối với điều khiển tắc nghẽn
  • Viacute dụ điều khiển tắc nghẽn ATM ABR
  • Slide 87
  • Slide 88
  • TCP điều khiển tắc nghẽn additive tăng lecircn multiplicative giảm xuống
  • TCP điều khiển tắc nghẽn chi tiết
  • TCP khởi động chậm
  • TCP khởi động chậm (tt)
  • Tinh chế
  • Tinh chế nhận biết mất maacutet
  • Tổng kết TCP điều khiển tắc nghẽn
  • TCP điều khiển tắc nghẽn becircn gửi
  • TCP throughput
  • TCP tương lai
  • TCP tiacutenh cocircng bằng
  • Tại sao phải TCP cocircng bằng
  • TCP tiacutenh cocircng bằng (tt)
  • Mocirc higravenh trễ
  • Cửa sổ tắc nghẽn cố định (1)
  • Cửa sổ tắc nghẽn cố định (2)
  • TCP Mocirc higravenh trễ Khởi động chậm (1)
  • TCP Mocirc higravenh trễ Khởi động chậm (2)
  • TCP Mocirc higravenh trễ(3)
  • TCP Mocirc higravenh trễ (4)
  • HTTP Mocirc higravenh
  • Slide 110
  • Slide 111
  • Chương 3 Tổng kết

Transport Layer 3-52

Hoạt động của lặp coacute lựa chọn

Transport Layer 3-53

Lặp coacute lựa chọntigravenh trạng khoacute giải quyếtViacute dụ Số thứ tự 0 1 2 3 Kiacutech thước cửa sổ = 3

becircn nhận khocircng thấy sự khaacutec nhau trong 2 tigravenh huống

chuyển khocircng chiacutenh xaacutec dữ liệu trugraveng lặp như dữ liệu mới trong (a)

Hỏi quan hệ giữa datildey số thứ tự vagrave kiacutech thước cửa sổ

Transport Layer 3-54

Chương 3 Nội dung trigravenh bagravey

31 Caacutec dịch vụ lớp Transport

32 Multiplexing vagrave demultiplexing

33 Vận chuyển khocircng kết nối UDP

34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy

35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối

36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn

37 Điều khiển tắc nghẽn TCP

Transport Layer 3-55

TCP Tổng quan RFCs 793 1122 1323 2018 2581

dữ liệu full duplex luồng dữ liệu đi 2 chiều

trong cugraveng một kết nối MSS maximum

segment size ndash kiacutech thước đoạn tối đa

hướng kết nối bắt tay (trao đổi caacutec

thocircng điệp điều khiển) trạng thaacutei becircn gửi becircn nhận trước khi trao đổi dữ liệu

điều khiển luồng becircn gửi sẽ khocircng lấn aacutet

becircn nhận

point-to-point một becircn gửi một becircn

nhận tin cậy dograveng byte coacute

thứ tự khocircng ldquoranh giới thocircng

điệprdquo kecircnh liecircn lạc

TCP điều khiển luồng vagrave tắc nghẽn thiết lập kiacutech thước cửa sổ

caacutec bộ đệm gửi amp nhận

socketdoor

T C Psend buffer

T C Preceive buffer

socketdoor

segm ent

applicationwrites data

applicationreads data

Transport Layer 3-56

TCP cấu truacutec đoạn

port nguồn port điacutech

32 bits

dữ liệu ứng dụng(độ dagravei thay đổi)

số thứ tự

số ACKcửa sổ nhận

con trỏ URGchecksum

FSRPAUheadlen

notused

Tugravey chọn (độ dagravei thay đổi)

URG dữ liệu khẩn cấp(thường khocircng dugraveng)

ACK ACK hợp lệ

PSH push data now(thường khocircng dugraveng)

RST SYN FINthiết lập kết nối

(caacutec lệnh thiết lậpchia nhỏ)

số byte becircn nhận sẵn sagraveng chấp nhận

đếm bởi số bytecủa dữ liệu

Internetchecksum

(giống UDP)

Transport Layer 3-57

Caacutec số thứ tự TCP vagrave ACKCaacutec số thứ tự

dograveng byte ldquođaacutenh sốrdquo byte đầu tiecircn trong dữ liệu của đoạn

caacutec ACK số thứ tự của byte

kế tiếp được chờ đợi từ phiacutea becircn kia

ACK tiacutech lũyHỏi lagravem thế nagraveo becircn

nhận quản lyacute caacutec đoạn khocircng thứ tự Trả lời TCP khocircng

đề cập tugravey thuộc người hiện thực

Host A Host B

Seq=42 ACK=79 data = lsquoCrsquo

Seq=79 ACK=43 data = lsquoCrsquo

Seq=43 ACK=80

UsernhậplsquoCrsquo

host ACKsnhận phản hồi

lsquoCrsquo

host ACKsbaacuteo nhận

lsquoCrsquo phản hồingược lại lsquoCrsquo

timetigravenh huống telnet đơn giản

Transport Layer 3-58

TCP Round Trip Time vagraveTimeout

Hỏi Lagravem thế nagraveo để thiết lập giaacute trị TCP timeout

dagravei hơn RTT khaacutec với RTT

quaacute ngắn timeout sớm truyền lại khocircng

cần thiết quaacute dagravei phản ứng

chậm đối với việc mất maacutet goacutei

Hỏi Lagravem thế nagraveo để thiết lập RTT

SampleRTT thời gian được đo từ khi truyền đoạn đến khi baacuteo nhận ACK lờ đi việc truyền lại

SampleRTT sẽ thay đổi muốn ước lượng RTT ldquomượt hơnrdquo tiacutenh trung bigravenh một số giaacute

trị đo được gần đoacute khocircng chỉ SampleRTT hiện tại

Transport Layer 3-59

TCP Round Trip Time vagrave Timeout

EstimatedRTT = (1- )EstimatedRTT + SampleRTT

giaacute trị đặc trưng = 0125

Transport Layer 3-60

Viacute dụ đaacutenh giaacute RTTRTT gaiacsumassedu to fantasiaeurecomfr

100

150

200

250

300

350

1 8 15 22 29 36 43 50 57 64 71 78 85 92 99 106

time (seconnds)

RTT

(mill

isec

onds

)

SampleRTT Estimated RTT

Transport Layer 3-61

TCP Round Trip Time vagrave Timeout

Thiết lập timeout EstimtedRTT cộng ldquohệ số dự trữ an toagravenrdquo

sự biến thiecircn lớn trong EstimatedRTT -gt hệ số dự trữ an toagraven lớn hơn ước lượng đầu tiecircn về sự biến thiecircn của SampleRTT từ EstimatedRTT

TimeoutInterval = EstimatedRTT + 4DevRTT

DevRTT = (1-)DevRTT + |SampleRTT-EstimatedRTT|

(tiecircu biểu = 025)

Sau đoacute thiết lập timeout interval

Transport Layer 3-62

TCP truyền dữ liệu tin cậy

TCP tạo dịch vụ rdt trecircn dịch vụ khocircng tin cậy IP

caacutec đoạn Pipelined caacutec ACK tiacutech lũy TCP dugraveng bộ định thigrave

truyền lại đơn

Truyền lại được kiacutech hoạt bởi caacutec sự kiện timeout caacutec ack trugraveng lặp

luacutec đầu khảo saacutet caacutec becircn gửi TCP đơn giản lờ đi caacutec ack trugraveng lặp lờ đi điều khiển luồng

điều khiển tắc nghẽn

Transport Layer 3-63

TCP caacutec sự kiệndữ liệu đatilde nhận từ ứng

dụng tạo đoạn với số thứ

tự của noacute số thứ tự lagrave số theo

byte dữ liệu đầu tiecircn khởi động bộ định thigrave

nếu chưa chạy khoảng thời gian hết

hạn TimeOutInterval

timeout gửi lại đoạn nagraveo gacircy

ra timeout khởi động lại bộ định

thigrave Ack đatilde nhận

cập nhật caacutei gigrave sẽ được ACK

khởi động bộ định thigrave nếu coacute caacutec đoạn cograven chờ

Transport Layer 3-64

TCP becircn gửi(đơn giản)

NextSeqNum = InitialSeqNum SendBase = InitialSeqNum

loop (forever) switch(event)

event data received from application above create TCP segment with sequence number NextSeqNum if (timer currently not running) start timer pass segment to IP NextSeqNum = NextSeqNum + length(data)

event timer timeout retransmit not-yet-acknowledged segment with smallest sequence number start timer

event ACK received with ACK field value of y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer

end of loop forever

Chuacute thiacutechbull SendBase-1 byte vừa được ACK tiacutech lũy Viacute dụbull SendBase-1 = 71y= 73 vigrave thế becircn nhận muốn 73+ y gt SendBase vigrave thế dữ liệu mới được chấp nhận

Transport Layer 3-65

TCP caacutec tigravenh huống truyền lại

Host A

Seq=100 20 bytes data

ACK=100

timetimeout sớm

Host B

Seq=92 8 bytes data

ACK=120

Seq=92 8 bytes data

Seq=

92

tim

eout

ACK=120

Host A

Seq=92 8 bytes data

ACK=100

loss

tim

eout

tigravenh huống mất ACK

Host B

X

Seq=92 8 bytes data

ACK=100

time

Seq=

92

tim

eout

SendBase= 100

SendBase= 120

SendBase= 120

Sendbase= 100

Transport Layer 3-66

TCP caacutec tigravenh huống truyền lại (tt)Host A

Seq=92 8 bytes data

ACK=100

loss

tim

eout

Cumulative ACK scenario

Host B

X

Seq=100 20 bytes data

ACK=120

time

SendBase= 120

Transport Layer 3-67

TCP sinh ra ACK [RFC 1122 RFC 2581]

Sự kiện tại becircn nhận

Đoạn đến với đuacuteng số thứ tự mong muốn Tất cả dữ liệu đếnđatilde được ACK

Đoạn đến với đuacuteng số thứ tự mong muốn Một đoạn khaacutec đangchờ ACK

Caacutec đoạn đến khocircng thứ tựlớn hơn số thứ tự đoạn mong muốnCoacute khoảng trống

Đoạn đếnlấp đầy từng phần hoặc toagraven bộkhoảng trống

TCP becircn nhận hagravenh động

ACK trễ Chờ đến 500mscho đoạn kế tiếp Nếu khocircng coacute đoạnkế tiếp gửi ACK

Gửi ngay một ACK tiacutech lũy chấp nhậncho cả caacutec đoạn theo thứ tự

Gửi ngay ACK trugraveng lặp chỉ thị số thứ tựđoạn của byte kế tiếp đang mong chờ

Gửi ngay ACK với điều kiện lagrave đoạnbắt đầu ngay điểm coacute khoảng trống

Transport Layer 3-68

Truyền lại nhanh

Chu kỳ Time-out thường tương đối dagravei độ trễ dagravei trước khi gửi

lại goacutei đatilde mất

Xaacutec nhận caacutec đoạn đatilde mất bằng caacutec ACK trugraveng lặp becircn gửi thường gửi

nhiều đoạn song song Nếu đoạn bị mất sẽ

xảy ra tigravenh trạng giống như nhiều ACK trugraveng nhau

Nếu becircn gửi nhận 3 ACK của cugraveng một dữ liệu noacute cho lagrave đoạn sau dữ liệu đatilde ACK bị mất Truyền lại nhanh gửi

lại đoạn trước khi bộ định thigrave hết hạn

Transport Layer 3-69

sự kiện ACK đatilde nhận với trường lagrave y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer else increment count of dup ACKs received for y if (count of dup ACKs received for y = 3) resend segment with sequence number y

Giải thuật truyền lại nhanh

một ACK trugraveng lặp cho đoạn đatilde được ACK

Truyền lại nhanh

Transport Layer 3-70

Chương 3 Nội dung trigravenh bagravey

31 Caacutec dịch vụ lớp Transport

32 Multiplexing vagrave demultiplexing

33 Vận chuyển khocircng kết nối UDP

34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy

35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối

36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn

37 Điều khiển tắc nghẽn TCP

Transport Layer 3-71

TCP điều khiển luồng

becircn nhận của kết nối TCP coacute một bộ đệm nhận

dịch vụ so trugraveng tốc độ so trugraveng tốc độ gửi với tốc độ nhận của ứng dụng

tiến trigravenh ứng dụng coacute thể chậm tại luacutec đọc bộ đệm

becircn gửi sẽ khocircng lagravem tragraven bộ đệm vigrave truyền quaacute nhiều vagrave

quaacute nhanh

điều khiển luồng

Transport Layer 3-72

TCP điều khiển luồng caacutech lagravem

(Giả sử becircn nhận TCP loại bỏ caacutec đoạn khocircng coacute thứ tự)

dự phograveng trong bộ đệm= RcvWindow

= RcvBuffer-[LastByteRcvd - LastByteRead]

Becircn nhận thocircng baacuteo khoảng dự trữ nhờ giaacute trị RcvWindow trong caacutec đoạn

Becircn gửi hạn chế dữ liệu khocircng được ACK vagraveo RcvWindow bảo đảm bộ đệm nhận

khocircng tragraven

Transport Layer 3-73

Chương 3 Nội dung trigravenh bagravey

31 Caacutec dịch vụ lớp Transport

32 Multiplexing vagrave demultiplexing

33 Vận chuyển khocircng kết nối UDP

34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy

35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối

36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn

37 Điều khiển tắc nghẽn TCP

Transport Layer 3-74

TCP quản lyacute kết nối

Chuacute yacute Becircn gửi vagrave becircn nhận TCP thiết lập ldquokết nốirdquo trước khi trao đổi dữ liệu

khởi tạo caacutec biến TCP caacutec số thứ tự đoạn thocircng tin caacutec bộ đệm điều

khiển luồng (như RcvWindow)

client người khởi xướng kết nối

Socket clientSocket = new Socket(hostnameport

number) server được tiếp xuacutec bởi

client Socket connectionSocket =

welcomeSocketaccept()

3 phương phaacutep bắt tay

Bước 1 client host gửi đoạnTCP SYN đến server xaacutec định số thứ tự khởi đầu khocircng phải dữ liệu

Bước 2 server host nhận SYN trả lời với đoạn SYNACK

server cấp phaacutet caacutec bộ đệm

xaacutec định số thứ tự khởi đầuBước 3 client nhận SYNACK trả

lời với đoạn ACK (coacute thể chứa dữ liệu)

Transport Layer 3-75

TCP quản lyacute kết nối (tt)

Đoacuteng một kết nối

client đoacuteng socket clientSocketclose()

Bước 1 client gửi đoạn điều khiển TCP FIN đến server

Bước 2 server nhận FIN trả lời với ACK Đoacuteng kết nối gửi FIN

client

FIN

server

ACK

ACK

FIN

đoacuteng

đoacuteng

đatilde đoacutengthời g

ian c

hờ

Transport Layer 3-76

TCP quản lyacute kết nối (tt)

Bước 3 client nhận FIN trả lời với ACK

Trong khoảng ldquothời gian chờrdquo ndash sẽ phản hồi với ACK để nhận caacutec FIN

Bước 4 server nhận ACK Kết nối đatilde đoacuteng

Chuacute yacute với một sửa đổi nhỏ coacute thể quản lyacute nhiều FIN đồng thời

client

FIN

server

ACK

ACK

FIN

đang đoacuteng

đang đoacuteng

đatilde đoacuteng

thời g

ian c

hờ

đatilde đoacuteng

Transport Layer 3-77

TCP quản lyacute kết nối (tt)

chu kỳ sống củaTCP client

chu kỳ sống củaTCP server

Transport Layer 3-78

Chương 3 Nội dung trigravenh bagravey

31 Caacutec dịch vụ lớp Transport

32 Multiplexing vagrave demultiplexing

33 Vận chuyển khocircng kết nối UDP

34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy

35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối

36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn

37 Điều khiển tắc nghẽn TCP

Transport Layer 3-79

Caacutec nguyecircn lyacute điều khiển tắc nghẽn

Tắc nghẽn ldquoquaacute nhiều nguồn gửi quaacute nhanh vagrave quaacute nhiều

dữ liệu đến mạngrdquo khaacutec với điều khiển luồng caacutec biểu hiện

caacutec goacutei bị mất (tragraven bộ đệm tại caacutec router) caacutec độ trễ quaacute dagravei (xếp hagraveng trong bộ đệm

của router) lagrave 1 trong 10 vấn đề nan giải nhất

Transport Layer 3-80

Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 1

2 gửi 2 nhận 1 router caacutec bộ

đệm khocircng giới hạn

khocircng coacute truyền lại

caacutec độ trễ lớn hơn khi tắc nghẽn

năng suất coacute thể đạt tối đa

unlimited shared output link buffers

Host Ain original data

Host B

out

Transport Layer 3-81

Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 2

1 router caacutec bộ đệm coacute giới hạn becircn gửi truyền lại caacutec goacutei đatilde mất

chia sẻ vocirc hạncaacutec bộ đệm ouput

Host A in dữ liệu gốc

Host B

out

in dữ liệu gốc cugraveng với dữ liệu truyền lại

Transport Layer 3-82

Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 2 luocircn luocircn

truyền lại ldquohoagraven toagravenrdquo chỉ khi mất maacutet

truyền lại vigrave trễ (khocircng mất) lagravem cho lớn hơn với cugraveng

in

out

=

in

out

gt

in

out

ldquocaacutec chi phiacuterdquo của tắc nghẽn nhiều việc (truyền lại) caacutec truyền lại khocircng cần thiết liecircn kết nhiều bản sao của

goacutei

R2

R2in

ou

t

b

R2

R2in

ou

t

a

R2

R2in

ou

t

c

R4

R3

Transport Layer 3-83

Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 3 4 người gửi caacutec đường qua nhiều hop timeouttruyền lại

in

Hỏi điều gigrave xảy ra nếu vagrave tăng lecircn

in

chia sẻ vocirc hạncaacutec bộ đệm ouput

Host Ain dữ liệu gốc

Host B

out

in dữ liệu gốc cugraveng với dữ liệu truyền lại

Transport Layer 3-84

Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 3

ldquochi phiacuterdquo khaacutec của tắc nghẽn khi caacutec goacutei bị bỏ bất kỳ ldquokhả năng truyền

upstream dugraveng cho goacutei đoacute sẽ bị latildeng phiacuterdquo

Host A

Host B

o

u

t

Transport Layer 3-85

Caacutec caacutech tiếp cận đối với điều khiển tắc nghẽn

điều khiển tắc nghẽn end-end

khocircng coacute phản hồi rotilde ragraveng từ mạng

tắc nghẽn được suy ra từ việc quan saacutet caacutec hệ thống đầu cuối coacute mất maacutet trễ

tiếp cận được quản lyacute bởi TCP

điều khiển tắc nghẽn coacute sự hỗ trợ của mạng

caacutec router cung cấp phản hồi về caacutec hệ thống đầu cuối 1 bit duy nhất chỉ thị

tắc nghẽn (SNA DECbit TCPIP ECN ATM)

tốc độ sẽ gửi được xaacutec định rotilde ragraveng

2 caacutech

Transport Layer 3-86

Viacute dụ điều khiển tắc nghẽn ATM ABR

ABR tốc độ bit sẵn sagraveng

ldquodịch vụ mềm dẻordquo nếu đường gửi ldquochưa

hếtrdquo becircn gửi sẽ dugraveng

băng thocircng sẵn sagraveng nếu đường gửi tắc

nghẽn becircn gửi điều tiết với

tốc độ tối thiểu

RM (resource management)

gửi bởi becircn gửi rải raacutec với caacutec ocirc dữ liệu

caacutec bit trong ocirc thiết lập bởi caacutec switch bit NI khocircng tăng tốc độ

(tắc nghẽn nhẹ) bit CI tắc nghẽn rotilde rệt

Caacutec ocirc RM được trả về becircn gửi từ becircn nhận với nguyecircn vẹn caacutec bit

Transport Layer 3-87

Viacute dụ điều khiển tắc nghẽn ATM ABR

trường 2-byte ER trong ocirc RM switch đatilde tắc nghẽn coacute thể coacute giaacute trị ER thấp hơn trong ocirc tốc độ gửi do đoacute coacute thể được hỗ trợ tối đa trecircn đường

EFCI bit trong caacutec ocirc dữ liệu được cagravei giaacute trị 1 trong switch đatilde tắc nghẽn nếu ocirc dữ liệu đứng trước ocirc RM coacute cagravei EFCI becircn gửi sẽ cagravei

bit CI trong ocirc RM trả về

Transport Layer 3-88

Chương 3 Nội dung trigravenh bagravey

31 Caacutec dịch vụ lớp Transport

32 Multiplexing vagrave demultiplexing

33 Vận chuyển khocircng kết nối UDP

34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy

35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối

36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn

37 Điều khiển tắc nghẽn TCP

Transport Layer 3-89

TCP điều khiển tắc nghẽn additive tăng lecircn multiplicative giảm xuống

8 Kbytes

16 Kbytes

24 Kbytes

time

congestionwindow

Caacutech tiếp cận tăng tốc độ truyền (kiacutech thước cửa sổ) tigravem khả năng băng thocircng coacute thể cho đến khi coacute mất maacutet xảy ra additive tăng lecircn tăng CongWin bởi 1 MSS

mỗi RTT cho đến khi coacute mất maacutet xảy ra multiplicative giảm xuống bỏ CongWin trong

nửa giai đoạn sau khi mất maacutet

timekiacutech

thư

ớc

cửa

sổ

tắc

nghẽ

n

Tigravem kiếm băng thocircng

Transport Layer 3-90

TCP điều khiển tắc nghẽn chi tiết

becircn gửi hạn chế việc truyền LastByteSent-LastByteAcked

CongWin Cocircng thức

CongWin thay đổi chức năng lagrave nhận biết tắc nghẽn trecircn mạng

Lagravem thế nagraveo becircn gửi nhận biết tắc nghẽn

mất maacutet xảy ra = timeout hoặc 3 ack trugraveng lặp

becircn gửi giảm tốc độ (CongWin) sau khi mất maacutet xảy ra

3 cơ chế AIMD khởi động chậm thận trọng sau khi coacute

caacutec sự kiện timeout

tốc độ = CongWin

RTT Bytess

Transport Layer 3-91

TCP khởi động chậm

Khi kết nối bắt đầu CongWin = 1 MSS Viacute dụ MSS = 500 bytes

amp RTT = 200 ms tốc độ khởi tạo = 20

kbps

băng thocircng sẵn sagraveng coacute thể gtgt MSSRTT mong muốn nhanh

choacuteng tăng tốc lecircn tốc độ coacute thể đaacutep ứng

Khi kết nối bắt đầu tăng tốc lecircn rất nhanh cho đến khi sự cố mất maacutet xảy ra đầu tiecircn

Transport Layer 3-92

TCP khởi động chậm (tt)

Khi kết nối bắt đầu tăng tốc lecircn rất nhanh cho đến khi sự cố mất maacutet xảy ra đầu tiecircn nhacircn đocirci CongWin mỗi

RTT hoagraven thagravenh nhờ tăng CongWin ứng với mỗi ACK đatilde nhận

Tổng kết tốc độ khởi đầu lagrave chậm nhưng sau đoacute tăng tốc rất nhanh

Host A

1 đoạn

RTT

Host B

thời gian

2 đoạn

4 đoạn

Transport Layer 3-93

Tinh chếHỏi Khi nagraveo việc tăng

tốc trở thagravenh tuyến tiacutenh

Trả lời Khi CongWin đạt đến 12 giaacute trị của noacute trước khi timeout

Hiện thực Ngưỡng thay đổi Tại thời điểm coacute sự cố

mất maacutet ngưỡng được cagravei giaacute trị bằng frac12 của CongWin ngay trước đoacute

Transport Layer 3-94

Tinh chế nhận biết mất maacutet

Sau 3 ACK trugraveng lặp CongWin sẽ giảm 12 kiacutech thước cửa sổ

tăng tuyến tiacutenh nhưng sau sự cố

timeout CongWin thay giaacute trị

bằng 1 MSS kiacutech thước cửa sổ

tăng cấp lũy thừa khi đến một ngưỡng

thigrave tăng tuyến tiacutenh

3 ACK trugraveng nhau chỉ ra khả năng truyền của mạng timeout chỉ thị ldquonhiều cảnh baacuteordquo về tigravenh huống tắc nghẽn

Nguyecircn lyacute

Transport Layer 3-95

Tổng kết TCP điều khiển tắc nghẽn

Khi CongWin dưới Threshold becircn gửi đang trong giai đoạn khởi động chậm kiacutech thước cửa sổ tăng nhanh theo cấp lũy thừa

Khi CongWin trecircn Threshold becircn gửi đang trong giai đoạn traacutenh tắc nghẽn kiacutech thước cửa sổ tăng nhanh theo cấp tuyến tiacutenh

Khi coacute 3 ACK trugraveng lặp xảy ra Threshold = CongWin2 vagrave CongWin = Threshold

Khi timeout xảy ra Threshold = CongWin2 vagrave CongWin = 1 MSS

Transport Layer 3-96

TCP điều khiển tắc nghẽn becircn gửi

Trạng thaacutei Sự kiện TCP becircn gửi hagravenh động Diễn giải

Slow Start (SS)-Khởi động chậm

ACK baacuteo nhận cho dữ liệu chưa ACK trước đoacute

CongWin = CongWin + MSS If (CongWin gt Threshold) cagravei đặt trạng thaacutei ldquoTraacutenh tắc nghẽnrdquo

Hậu quả lagravem tăng gấp đocirci CongWin mỗi RTT

CongestionAvoidance (CA) ndashTraacutenh tắc nghẽn

ACK baacuteo nhận cho dữ liệu chưa ACK trước đoacute

CongWin = CongWin+MSS (MSSCongWin)

Additive tăng lecircn lagravem tăng CongWin lecircn 1 MSS mỗi RTT

SS hoặc CA Sự cố mất maacutet xảy ra khi thấy coacute 3 ACK trugraveng lặp

Threshold = CongWin2 CongWin = Thresholdcagravei đặt trạng thaacutei ldquoTraacutenh tắc nghẽnrdquo

Khocirci phục nhanh hiện thực giảm xuống multiplicative CongWin sẽ khocircng giảm xuống dưới 1 MSS

SS hoặc CA Timeout Threshold = CongWin2 CongWin = 1 MSScagravei đặt trạng thaacutei ldquoKhởi động chậmrdquo

Vagraveo chế độ ldquoKhởi động chậmrdquo

SS hoặc CA ACK trugraveng lặp

Đếm ACK tăng lecircn cho đoạn vừa được ACK

CongWin vagrave Threshold khocircng thay đổi

Transport Layer 3-97

TCP throughput

Throughout trung bigravenh của TCP biểu diễn qua kiacutech thước của sổ vagrave RTT Bỏ qua trạng thaacutei ldquoKhởi động chậmrdquo

Cho W lagrave kiacutech thước cửa sổ khi coacute mất maacutet xảy ra

Khi kiacutech thước cửa sổ = W lưu lượng = WRTT

Chỉ ngay sau khi mất maacutet cửa sổ giảm xuống = W2 lưu lượng = W2RTT

throughout trung bigravenh 075 WRTT

Transport Layer 3-98

TCP tương lai

Viacute dụ caacutec đoạn dagravei 1500 byte RTT 100ms lưu lượng 10 Gbps

Kiacutech thước cửa sổ yecircu cầu W = 83333 đoạn trecircn đường truyền

Lưu lượng trong caacutec trường hợp mất maacutet

L = 210-10

Phiecircn bản mới của TCP dagravenh cho nhu cầu tốc độ cao

LRTT

MSS221

Transport Layer 3-99

Mục tiecircu nếu K phiecircn lagravem việc TCP chia sẻ kết nối cổ chai của băng thocircng lagrave R mỗi phiecircn coacute tốc độ trung bigravenh lagrave RK

TCP kết nối 1

router cổ chaikhả năng R

TCP kết nối 2

TCP tiacutenh cocircng bằng

Transport Layer 3-100

Tại sao phải TCP cocircng bằng

2 phiecircn lagravem việc cạnh tranh nhau Additive tăng lưu lượng tăng multiplicative giảm lưu lượng tương xứng

R

R

chia sẻ băng thocircng bằng nhau

Connection 1 throughputConnect

ion 2

th

roughput

traacutenh tắc nghẽn additive tăng lecircnmất maacutet giảm cửa sổ bằng 12

traacutenh tắc nghẽn additive tăng lecircnmất maacutet giảm cửa sổ bằng 12

Transport Layer 3-101

TCP tiacutenh cocircng bằng (tt)

Tiacutenh cocircng bằng amp UDP nhiều ứng dụng

thường khocircng dugraveng TCP khocircng muốn tốc độ bị

điều tiết do điều khiển tắc nghẽn

Thay bằng dugraveng UDP truyền audiovideo với

tốc độ ổn định chịu được mất maacutet

Nghiecircn cứu giao thức thacircn thiện với TCP

Tiacutenh cocircng bằng amp caacutec kết nối TCP song song

khocircng coacute gigrave ngăn cản việc ứng dụng mở caacutec kết nối song song giữa 2 host

Trigravenh duyệt Web lagravem giống như thế

Viacute dụ tốc độ R hỗ trợ 9 kết nối ứng dụng mới yecircu cầu 1

TCP coacute tốc độ R10 ứng dụng mới yecircu cầu 11

TCP coacute tốc độ R2

Transport Layer 3-102

Mocirc higravenh trễ

Hỏi Mất bao lacircu để nhận 1 đối tượng từ Web server sau khi gửi yecircu cầu

Bỏ qua tắc nghẽn trễ bị ảnh hưởng bởi

thiết lập kết nối TCP trễ truyền dữ liệu khởi động chậm

Notation caacutec giả định Giả sử một kết nối giữa

client vagrave server coacute tốc độ R

S MSS (bits) O kiacutech thước đối tượng

(bits) khocircng truyền lại (khocircng

mất maacutet khocircng hỏng)

Kiacutech thước cửa sổ Giả định 1 cửa sổ tắc

nghẽn cố định coacute W đoạn Sau đoacute cửa sổ thay đổi

mocirc higravenh khởi động chậm

Transport Layer 3-103

Cửa sổ tắc nghẽn cố định (1)

Trường hợp đầu tiecircnWSR gt RTT + SR cho

đoạn đầu tiecircn trong cửa sổ trả về trước khi cửa sổ dữ liệu gửi ACK

trễ = 2RTT + OR

Transport Layer 3-104

Cửa sổ tắc nghẽn cố định (2)

Trường hợp thứ hai WSR lt RTT + SR sent

chờ cho ACK sau khi gửi dữ liệu

trễ = 2RTT + OR+ (K-1)[SR + RTT - WSR]

Transport Layer 3-105

TCP Mocirc higravenh trễ Khởi động chậm (1)

Bacircy giờ giả sử kiacutech thước cửa sổ tăng lecircn tugravey theo quaacute trigravenh khởi động chậm

Độ trễ của một đối tượng sẽ lagrave

R

S

R

SRTTP

R

ORTTLatency P )12(2

trong đoacute P lagrave số lần TCP rảnh ở tại server

1min KQP

- trong đoacute Q lagrave số lần server rảnh nếu đối tượng đatilde khởi tạo kiacutech thước

- vagrave K lagrave số lượng cửa sổ bao trugravem đối tượng

Transport Layer 3-106

TCP Mocirc higravenh trễ Khởi động chậm (2)

RTT

initia te TCPconnection

requestobject

first w indow= S R

second w indow= 2S R

third w indow= 4S R

fourth w indow= 8S R

com pletetransm issionobject

delivered

tim e atc lient

tim e atserver

Viacute dụbull OS = 15 đoạnbull K = 4 cửa sổbull Q = 2bull P = minK-1Q = 2

Server rảnh P=2 lần

Caacutec thagravenh phần trễbull 2 RTT dagravenh cho thiết lập kết nối vagrave yecircu cầubull OR để truyền đối tượngbullthời gian server rảnh bởi vigrave khởi động chậm

Server rảnh P = minK-1Q lần

Transport Layer 3-107

TCP Mocirc higravenh trễ(3)

R

S

R

SRTTPRTT

R

O

R

SRTT

R

SRTT

R

O

idleTimeRTTR

O

P

kP

k

P

pp

)12(][2

]2[2

2delay

1

1

1

th window after the timeidle 2 1 kR

SRTT

R

S k

ementacknowledg receivesserver until

segment send tostartsserver when from time RTTR

S

window kth the transmit totime2 1

R

Sk

RTT

initia te TCPconnection

requestobject

first w indow= S R

second w indow= 2S R

third w indow= 4S R

fourth w indow= 8S R

com pletetransm issionobject

delivered

tim e atc lient

tim e atserver

Transport Layer 3-108

TCP Mocirc higravenh trễ (4)

)1(log

)1(logmin

12min

222min

222min

2

2

110

110

S

OS

Okk

S

Ok

SOk

OSSSkK

k

k

k

caacutech tiacutenh toaacuten Q tương tự (xem HW)

K = số lượng cửa sổ bao trugravem đối tượngLagravem thế nagraveo tiacutenh được K

Transport Layer 3-109

HTTP Mocirc higravenh Giả sử trang Web chứa

1 trang HTML (kiacutech thước O bits) M higravenh ảnh (mỗi caacutei kiacutech thướcO bits)

HTTP khocircng bền vững M+1 TCP kết nối Thời gian đaacutep ứng = (M+1)OR + (M+1)2RTT + tổng số thời

gian rảnh HTTP bền vững

2 RTT để yecircu cầu vagrave nhận file HTML 1 RTT để yecircu cầu vagrave nhận M higravenh ảnh Thời gian đaacutep ứng = (M+1)OR + 3RTT + tổng số thời gian

rảnh HTTP khocircng bền vững với X kết nối song song

Giả sử MX lagrave số nguyecircn 1 TCP kết nối cho file MX thiết lập caacutec kết nối song song cho caacutec higravenh ảnh Thời gian đaacutep ứng = (M+1)OR + (MX + 1)2RTT + tổng số

thời gian rảnh

Transport Layer 3-110

02468

101214161820

28Kbps

100Kbps

1Mbps

10Mbps

non-persistent

persistent

parallel non-persistent

HTTP thời gian đaacutep ứng (giacircy)RTT = 100 msec O = 5 Kbytes M=10 vagrave X=5

Với băng thocircng thấp thời gian kết nối amp đaacutep ứng trội hơn thời gian truyền

Caacutec kết nối bền vững chỉ cho sự cải thiện khocircng đaacuteng kể trecircn caacutec kết nối song song

Transport Layer 3-111

0

10

20

30

40

50

60

70

28Kbps

100Kbps

1Mbps

10Mbps

non-persistent

persistent

parallel non-persistent

HTTP thời gian đaacutep ứng (giacircy)

RTT =1 sec O = 5 Kbytes M=10 and X=5

Với RTT lớn hơn thời gian đaacutep ứng trội hơn thời gian trễ chờ thiết lập kết nốiTCP amp khởi động chậm Caacutec kết nối bền vững bacircy giờ cho thấy cải thiện rotilde rệt đặc biệtvới caacutec mạng băng thocircng cao

Transport Layer 3-112

Chương 3 Tổng kết caacutec nguyecircn lyacute của caacutec

dịch vụ lớp transport multiplexing

demultiplexing truyền dữ liệu tin cậy điều khiển luồng điều khiển tắc nghẽn

khởi tạo vagrave hiện thực trong Internet UDP TCP

Tiếp theo nghiecircn cứu xong

caacutec vấn đề ldquongoagravei biecircnrdquo (caacutec lớp application transport)

chuẩn bị vagraveo phần ldquolotildeirdquo của mạng

  • Slide 1
  • Chương 3 Lớp Transport
  • Chương 3 Nội dung trigravenh bagravey
  • Caacutec dịch vụ vagrave giao thức Transport
  • Lớp Transport với lớp network
  • Caacutec giao thức lớp transport trecircn Internet
  • Slide 7
  • Multiplexingdemultiplexing
  • Demultiplexing lagravem việc như thế nagraveo
  • Demultiplexing khocircng kết nối
  • Demultiplexing khocircng kết nối (tiếp)
  • Demultiplexing hướng kết nối
  • Demultiplexing hướng kết nối (tiếp)
  • Demultiplexing hướng kết nối Threaded Web Server
  • Slide 15
  • UDP User Datagram Protocol [RFC 768]
  • UDP (tt)
  • UDP checksum
  • Viacute dụ Checksum
  • Slide 20
  • Caacutec nguyecircn lyacute truyền dữ liệu tin cậy
  • Slide 22
  • Slide 23
  • Truyền dữ liệu tin cậy
  • Slide 25
  • Rdt10 truyền dữ liệu tin cậy trecircn 1 kecircnh truyền tin cậy
  • Rdt20 kecircnh với caacutec lỗi
  • rdt20 đặc tả FSM
  • rdt20 hoạt động khi khocircng lỗi
  • rdt20 hoạt động khi coacute lỗi
  • rdt20 coacute lỗ hổng nghiecircm trọng
  • rdt21 người gửi quản lyacute caacutec ACKNAK bị hỏng
  • Slide 33
  • rdt21 thảo luận
  • rdt22 một giao thức khocircng cần NAK
  • rdt22 gửi nhận caacutec mảnh
  • rdt30 caacutec kecircnh với lỗi vagrave mất maacutet
  • rdt30 gửi
  • hagravenh động của rdt30
  • Slide 40
  • Hiệu suất của rdt30
  • rdt30 hoạt động dừng-vagrave-chờ
  • Caacutec giao thức Pipelined
  • Pipelining độ khả dụng tăng
  • Go-Back-N
  • GBN becircn gửi mở rộng FSM
  • GBN becircn nhận mở rộng FSM
  • GBN hoạt động
  • Lặp coacute lựa chọn
  • Lặp coacute lựa chọn caacutec cửa sổ gửi nhận
  • Slide 51
  • Hoạt động của lặp coacute lựa chọn
  • Lặp coacute lựa chọn tigravenh trạng khoacute giải quyết
  • Slide 54
  • TCP Tổng quan RFCs 793 1122 1323 2018 2581
  • TCP cấu truacutec đoạn
  • Caacutec số thứ tự TCP vagrave ACK
  • TCP Round Trip Time vagraveTimeout
  • TCP Round Trip Time vagrave Timeout
  • Viacute dụ đaacutenh giaacute RTT
  • Slide 61
  • TCP truyền dữ liệu tin cậy
  • TCP caacutec sự kiện
  • TCP becircn gửi (đơn giản)
  • TCP caacutec tigravenh huống truyền lại
  • TCP caacutec tigravenh huống truyền lại (tt)
  • TCP sinh ra ACK [RFC 1122 RFC 2581]
  • Truyền lại nhanh
  • Giải thuật truyền lại nhanh
  • Slide 70
  • TCP điều khiển luồng
  • TCP điều khiển luồng caacutech lagravem
  • Slide 73
  • TCP quản lyacute kết nối
  • TCP quản lyacute kết nối (tt)
  • Slide 76
  • Slide 77
  • Slide 78
  • Caacutec nguyecircn lyacute điều khiển tắc nghẽn
  • Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 1
  • Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 2
  • Slide 82
  • Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 3
  • Slide 84
  • Caacutec caacutech tiếp cận đối với điều khiển tắc nghẽn
  • Viacute dụ điều khiển tắc nghẽn ATM ABR
  • Slide 87
  • Slide 88
  • TCP điều khiển tắc nghẽn additive tăng lecircn multiplicative giảm xuống
  • TCP điều khiển tắc nghẽn chi tiết
  • TCP khởi động chậm
  • TCP khởi động chậm (tt)
  • Tinh chế
  • Tinh chế nhận biết mất maacutet
  • Tổng kết TCP điều khiển tắc nghẽn
  • TCP điều khiển tắc nghẽn becircn gửi
  • TCP throughput
  • TCP tương lai
  • TCP tiacutenh cocircng bằng
  • Tại sao phải TCP cocircng bằng
  • TCP tiacutenh cocircng bằng (tt)
  • Mocirc higravenh trễ
  • Cửa sổ tắc nghẽn cố định (1)
  • Cửa sổ tắc nghẽn cố định (2)
  • TCP Mocirc higravenh trễ Khởi động chậm (1)
  • TCP Mocirc higravenh trễ Khởi động chậm (2)
  • TCP Mocirc higravenh trễ(3)
  • TCP Mocirc higravenh trễ (4)
  • HTTP Mocirc higravenh
  • Slide 110
  • Slide 111
  • Chương 3 Tổng kết

Transport Layer 3-53

Lặp coacute lựa chọntigravenh trạng khoacute giải quyếtViacute dụ Số thứ tự 0 1 2 3 Kiacutech thước cửa sổ = 3

becircn nhận khocircng thấy sự khaacutec nhau trong 2 tigravenh huống

chuyển khocircng chiacutenh xaacutec dữ liệu trugraveng lặp như dữ liệu mới trong (a)

Hỏi quan hệ giữa datildey số thứ tự vagrave kiacutech thước cửa sổ

Transport Layer 3-54

Chương 3 Nội dung trigravenh bagravey

31 Caacutec dịch vụ lớp Transport

32 Multiplexing vagrave demultiplexing

33 Vận chuyển khocircng kết nối UDP

34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy

35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối

36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn

37 Điều khiển tắc nghẽn TCP

Transport Layer 3-55

TCP Tổng quan RFCs 793 1122 1323 2018 2581

dữ liệu full duplex luồng dữ liệu đi 2 chiều

trong cugraveng một kết nối MSS maximum

segment size ndash kiacutech thước đoạn tối đa

hướng kết nối bắt tay (trao đổi caacutec

thocircng điệp điều khiển) trạng thaacutei becircn gửi becircn nhận trước khi trao đổi dữ liệu

điều khiển luồng becircn gửi sẽ khocircng lấn aacutet

becircn nhận

point-to-point một becircn gửi một becircn

nhận tin cậy dograveng byte coacute

thứ tự khocircng ldquoranh giới thocircng

điệprdquo kecircnh liecircn lạc

TCP điều khiển luồng vagrave tắc nghẽn thiết lập kiacutech thước cửa sổ

caacutec bộ đệm gửi amp nhận

socketdoor

T C Psend buffer

T C Preceive buffer

socketdoor

segm ent

applicationwrites data

applicationreads data

Transport Layer 3-56

TCP cấu truacutec đoạn

port nguồn port điacutech

32 bits

dữ liệu ứng dụng(độ dagravei thay đổi)

số thứ tự

số ACKcửa sổ nhận

con trỏ URGchecksum

FSRPAUheadlen

notused

Tugravey chọn (độ dagravei thay đổi)

URG dữ liệu khẩn cấp(thường khocircng dugraveng)

ACK ACK hợp lệ

PSH push data now(thường khocircng dugraveng)

RST SYN FINthiết lập kết nối

(caacutec lệnh thiết lậpchia nhỏ)

số byte becircn nhận sẵn sagraveng chấp nhận

đếm bởi số bytecủa dữ liệu

Internetchecksum

(giống UDP)

Transport Layer 3-57

Caacutec số thứ tự TCP vagrave ACKCaacutec số thứ tự

dograveng byte ldquođaacutenh sốrdquo byte đầu tiecircn trong dữ liệu của đoạn

caacutec ACK số thứ tự của byte

kế tiếp được chờ đợi từ phiacutea becircn kia

ACK tiacutech lũyHỏi lagravem thế nagraveo becircn

nhận quản lyacute caacutec đoạn khocircng thứ tự Trả lời TCP khocircng

đề cập tugravey thuộc người hiện thực

Host A Host B

Seq=42 ACK=79 data = lsquoCrsquo

Seq=79 ACK=43 data = lsquoCrsquo

Seq=43 ACK=80

UsernhậplsquoCrsquo

host ACKsnhận phản hồi

lsquoCrsquo

host ACKsbaacuteo nhận

lsquoCrsquo phản hồingược lại lsquoCrsquo

timetigravenh huống telnet đơn giản

Transport Layer 3-58

TCP Round Trip Time vagraveTimeout

Hỏi Lagravem thế nagraveo để thiết lập giaacute trị TCP timeout

dagravei hơn RTT khaacutec với RTT

quaacute ngắn timeout sớm truyền lại khocircng

cần thiết quaacute dagravei phản ứng

chậm đối với việc mất maacutet goacutei

Hỏi Lagravem thế nagraveo để thiết lập RTT

SampleRTT thời gian được đo từ khi truyền đoạn đến khi baacuteo nhận ACK lờ đi việc truyền lại

SampleRTT sẽ thay đổi muốn ước lượng RTT ldquomượt hơnrdquo tiacutenh trung bigravenh một số giaacute

trị đo được gần đoacute khocircng chỉ SampleRTT hiện tại

Transport Layer 3-59

TCP Round Trip Time vagrave Timeout

EstimatedRTT = (1- )EstimatedRTT + SampleRTT

giaacute trị đặc trưng = 0125

Transport Layer 3-60

Viacute dụ đaacutenh giaacute RTTRTT gaiacsumassedu to fantasiaeurecomfr

100

150

200

250

300

350

1 8 15 22 29 36 43 50 57 64 71 78 85 92 99 106

time (seconnds)

RTT

(mill

isec

onds

)

SampleRTT Estimated RTT

Transport Layer 3-61

TCP Round Trip Time vagrave Timeout

Thiết lập timeout EstimtedRTT cộng ldquohệ số dự trữ an toagravenrdquo

sự biến thiecircn lớn trong EstimatedRTT -gt hệ số dự trữ an toagraven lớn hơn ước lượng đầu tiecircn về sự biến thiecircn của SampleRTT từ EstimatedRTT

TimeoutInterval = EstimatedRTT + 4DevRTT

DevRTT = (1-)DevRTT + |SampleRTT-EstimatedRTT|

(tiecircu biểu = 025)

Sau đoacute thiết lập timeout interval

Transport Layer 3-62

TCP truyền dữ liệu tin cậy

TCP tạo dịch vụ rdt trecircn dịch vụ khocircng tin cậy IP

caacutec đoạn Pipelined caacutec ACK tiacutech lũy TCP dugraveng bộ định thigrave

truyền lại đơn

Truyền lại được kiacutech hoạt bởi caacutec sự kiện timeout caacutec ack trugraveng lặp

luacutec đầu khảo saacutet caacutec becircn gửi TCP đơn giản lờ đi caacutec ack trugraveng lặp lờ đi điều khiển luồng

điều khiển tắc nghẽn

Transport Layer 3-63

TCP caacutec sự kiệndữ liệu đatilde nhận từ ứng

dụng tạo đoạn với số thứ

tự của noacute số thứ tự lagrave số theo

byte dữ liệu đầu tiecircn khởi động bộ định thigrave

nếu chưa chạy khoảng thời gian hết

hạn TimeOutInterval

timeout gửi lại đoạn nagraveo gacircy

ra timeout khởi động lại bộ định

thigrave Ack đatilde nhận

cập nhật caacutei gigrave sẽ được ACK

khởi động bộ định thigrave nếu coacute caacutec đoạn cograven chờ

Transport Layer 3-64

TCP becircn gửi(đơn giản)

NextSeqNum = InitialSeqNum SendBase = InitialSeqNum

loop (forever) switch(event)

event data received from application above create TCP segment with sequence number NextSeqNum if (timer currently not running) start timer pass segment to IP NextSeqNum = NextSeqNum + length(data)

event timer timeout retransmit not-yet-acknowledged segment with smallest sequence number start timer

event ACK received with ACK field value of y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer

end of loop forever

Chuacute thiacutechbull SendBase-1 byte vừa được ACK tiacutech lũy Viacute dụbull SendBase-1 = 71y= 73 vigrave thế becircn nhận muốn 73+ y gt SendBase vigrave thế dữ liệu mới được chấp nhận

Transport Layer 3-65

TCP caacutec tigravenh huống truyền lại

Host A

Seq=100 20 bytes data

ACK=100

timetimeout sớm

Host B

Seq=92 8 bytes data

ACK=120

Seq=92 8 bytes data

Seq=

92

tim

eout

ACK=120

Host A

Seq=92 8 bytes data

ACK=100

loss

tim

eout

tigravenh huống mất ACK

Host B

X

Seq=92 8 bytes data

ACK=100

time

Seq=

92

tim

eout

SendBase= 100

SendBase= 120

SendBase= 120

Sendbase= 100

Transport Layer 3-66

TCP caacutec tigravenh huống truyền lại (tt)Host A

Seq=92 8 bytes data

ACK=100

loss

tim

eout

Cumulative ACK scenario

Host B

X

Seq=100 20 bytes data

ACK=120

time

SendBase= 120

Transport Layer 3-67

TCP sinh ra ACK [RFC 1122 RFC 2581]

Sự kiện tại becircn nhận

Đoạn đến với đuacuteng số thứ tự mong muốn Tất cả dữ liệu đếnđatilde được ACK

Đoạn đến với đuacuteng số thứ tự mong muốn Một đoạn khaacutec đangchờ ACK

Caacutec đoạn đến khocircng thứ tựlớn hơn số thứ tự đoạn mong muốnCoacute khoảng trống

Đoạn đếnlấp đầy từng phần hoặc toagraven bộkhoảng trống

TCP becircn nhận hagravenh động

ACK trễ Chờ đến 500mscho đoạn kế tiếp Nếu khocircng coacute đoạnkế tiếp gửi ACK

Gửi ngay một ACK tiacutech lũy chấp nhậncho cả caacutec đoạn theo thứ tự

Gửi ngay ACK trugraveng lặp chỉ thị số thứ tựđoạn của byte kế tiếp đang mong chờ

Gửi ngay ACK với điều kiện lagrave đoạnbắt đầu ngay điểm coacute khoảng trống

Transport Layer 3-68

Truyền lại nhanh

Chu kỳ Time-out thường tương đối dagravei độ trễ dagravei trước khi gửi

lại goacutei đatilde mất

Xaacutec nhận caacutec đoạn đatilde mất bằng caacutec ACK trugraveng lặp becircn gửi thường gửi

nhiều đoạn song song Nếu đoạn bị mất sẽ

xảy ra tigravenh trạng giống như nhiều ACK trugraveng nhau

Nếu becircn gửi nhận 3 ACK của cugraveng một dữ liệu noacute cho lagrave đoạn sau dữ liệu đatilde ACK bị mất Truyền lại nhanh gửi

lại đoạn trước khi bộ định thigrave hết hạn

Transport Layer 3-69

sự kiện ACK đatilde nhận với trường lagrave y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer else increment count of dup ACKs received for y if (count of dup ACKs received for y = 3) resend segment with sequence number y

Giải thuật truyền lại nhanh

một ACK trugraveng lặp cho đoạn đatilde được ACK

Truyền lại nhanh

Transport Layer 3-70

Chương 3 Nội dung trigravenh bagravey

31 Caacutec dịch vụ lớp Transport

32 Multiplexing vagrave demultiplexing

33 Vận chuyển khocircng kết nối UDP

34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy

35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối

36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn

37 Điều khiển tắc nghẽn TCP

Transport Layer 3-71

TCP điều khiển luồng

becircn nhận của kết nối TCP coacute một bộ đệm nhận

dịch vụ so trugraveng tốc độ so trugraveng tốc độ gửi với tốc độ nhận của ứng dụng

tiến trigravenh ứng dụng coacute thể chậm tại luacutec đọc bộ đệm

becircn gửi sẽ khocircng lagravem tragraven bộ đệm vigrave truyền quaacute nhiều vagrave

quaacute nhanh

điều khiển luồng

Transport Layer 3-72

TCP điều khiển luồng caacutech lagravem

(Giả sử becircn nhận TCP loại bỏ caacutec đoạn khocircng coacute thứ tự)

dự phograveng trong bộ đệm= RcvWindow

= RcvBuffer-[LastByteRcvd - LastByteRead]

Becircn nhận thocircng baacuteo khoảng dự trữ nhờ giaacute trị RcvWindow trong caacutec đoạn

Becircn gửi hạn chế dữ liệu khocircng được ACK vagraveo RcvWindow bảo đảm bộ đệm nhận

khocircng tragraven

Transport Layer 3-73

Chương 3 Nội dung trigravenh bagravey

31 Caacutec dịch vụ lớp Transport

32 Multiplexing vagrave demultiplexing

33 Vận chuyển khocircng kết nối UDP

34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy

35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối

36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn

37 Điều khiển tắc nghẽn TCP

Transport Layer 3-74

TCP quản lyacute kết nối

Chuacute yacute Becircn gửi vagrave becircn nhận TCP thiết lập ldquokết nốirdquo trước khi trao đổi dữ liệu

khởi tạo caacutec biến TCP caacutec số thứ tự đoạn thocircng tin caacutec bộ đệm điều

khiển luồng (như RcvWindow)

client người khởi xướng kết nối

Socket clientSocket = new Socket(hostnameport

number) server được tiếp xuacutec bởi

client Socket connectionSocket =

welcomeSocketaccept()

3 phương phaacutep bắt tay

Bước 1 client host gửi đoạnTCP SYN đến server xaacutec định số thứ tự khởi đầu khocircng phải dữ liệu

Bước 2 server host nhận SYN trả lời với đoạn SYNACK

server cấp phaacutet caacutec bộ đệm

xaacutec định số thứ tự khởi đầuBước 3 client nhận SYNACK trả

lời với đoạn ACK (coacute thể chứa dữ liệu)

Transport Layer 3-75

TCP quản lyacute kết nối (tt)

Đoacuteng một kết nối

client đoacuteng socket clientSocketclose()

Bước 1 client gửi đoạn điều khiển TCP FIN đến server

Bước 2 server nhận FIN trả lời với ACK Đoacuteng kết nối gửi FIN

client

FIN

server

ACK

ACK

FIN

đoacuteng

đoacuteng

đatilde đoacutengthời g

ian c

hờ

Transport Layer 3-76

TCP quản lyacute kết nối (tt)

Bước 3 client nhận FIN trả lời với ACK

Trong khoảng ldquothời gian chờrdquo ndash sẽ phản hồi với ACK để nhận caacutec FIN

Bước 4 server nhận ACK Kết nối đatilde đoacuteng

Chuacute yacute với một sửa đổi nhỏ coacute thể quản lyacute nhiều FIN đồng thời

client

FIN

server

ACK

ACK

FIN

đang đoacuteng

đang đoacuteng

đatilde đoacuteng

thời g

ian c

hờ

đatilde đoacuteng

Transport Layer 3-77

TCP quản lyacute kết nối (tt)

chu kỳ sống củaTCP client

chu kỳ sống củaTCP server

Transport Layer 3-78

Chương 3 Nội dung trigravenh bagravey

31 Caacutec dịch vụ lớp Transport

32 Multiplexing vagrave demultiplexing

33 Vận chuyển khocircng kết nối UDP

34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy

35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối

36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn

37 Điều khiển tắc nghẽn TCP

Transport Layer 3-79

Caacutec nguyecircn lyacute điều khiển tắc nghẽn

Tắc nghẽn ldquoquaacute nhiều nguồn gửi quaacute nhanh vagrave quaacute nhiều

dữ liệu đến mạngrdquo khaacutec với điều khiển luồng caacutec biểu hiện

caacutec goacutei bị mất (tragraven bộ đệm tại caacutec router) caacutec độ trễ quaacute dagravei (xếp hagraveng trong bộ đệm

của router) lagrave 1 trong 10 vấn đề nan giải nhất

Transport Layer 3-80

Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 1

2 gửi 2 nhận 1 router caacutec bộ

đệm khocircng giới hạn

khocircng coacute truyền lại

caacutec độ trễ lớn hơn khi tắc nghẽn

năng suất coacute thể đạt tối đa

unlimited shared output link buffers

Host Ain original data

Host B

out

Transport Layer 3-81

Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 2

1 router caacutec bộ đệm coacute giới hạn becircn gửi truyền lại caacutec goacutei đatilde mất

chia sẻ vocirc hạncaacutec bộ đệm ouput

Host A in dữ liệu gốc

Host B

out

in dữ liệu gốc cugraveng với dữ liệu truyền lại

Transport Layer 3-82

Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 2 luocircn luocircn

truyền lại ldquohoagraven toagravenrdquo chỉ khi mất maacutet

truyền lại vigrave trễ (khocircng mất) lagravem cho lớn hơn với cugraveng

in

out

=

in

out

gt

in

out

ldquocaacutec chi phiacuterdquo của tắc nghẽn nhiều việc (truyền lại) caacutec truyền lại khocircng cần thiết liecircn kết nhiều bản sao của

goacutei

R2

R2in

ou

t

b

R2

R2in

ou

t

a

R2

R2in

ou

t

c

R4

R3

Transport Layer 3-83

Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 3 4 người gửi caacutec đường qua nhiều hop timeouttruyền lại

in

Hỏi điều gigrave xảy ra nếu vagrave tăng lecircn

in

chia sẻ vocirc hạncaacutec bộ đệm ouput

Host Ain dữ liệu gốc

Host B

out

in dữ liệu gốc cugraveng với dữ liệu truyền lại

Transport Layer 3-84

Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 3

ldquochi phiacuterdquo khaacutec của tắc nghẽn khi caacutec goacutei bị bỏ bất kỳ ldquokhả năng truyền

upstream dugraveng cho goacutei đoacute sẽ bị latildeng phiacuterdquo

Host A

Host B

o

u

t

Transport Layer 3-85

Caacutec caacutech tiếp cận đối với điều khiển tắc nghẽn

điều khiển tắc nghẽn end-end

khocircng coacute phản hồi rotilde ragraveng từ mạng

tắc nghẽn được suy ra từ việc quan saacutet caacutec hệ thống đầu cuối coacute mất maacutet trễ

tiếp cận được quản lyacute bởi TCP

điều khiển tắc nghẽn coacute sự hỗ trợ của mạng

caacutec router cung cấp phản hồi về caacutec hệ thống đầu cuối 1 bit duy nhất chỉ thị

tắc nghẽn (SNA DECbit TCPIP ECN ATM)

tốc độ sẽ gửi được xaacutec định rotilde ragraveng

2 caacutech

Transport Layer 3-86

Viacute dụ điều khiển tắc nghẽn ATM ABR

ABR tốc độ bit sẵn sagraveng

ldquodịch vụ mềm dẻordquo nếu đường gửi ldquochưa

hếtrdquo becircn gửi sẽ dugraveng

băng thocircng sẵn sagraveng nếu đường gửi tắc

nghẽn becircn gửi điều tiết với

tốc độ tối thiểu

RM (resource management)

gửi bởi becircn gửi rải raacutec với caacutec ocirc dữ liệu

caacutec bit trong ocirc thiết lập bởi caacutec switch bit NI khocircng tăng tốc độ

(tắc nghẽn nhẹ) bit CI tắc nghẽn rotilde rệt

Caacutec ocirc RM được trả về becircn gửi từ becircn nhận với nguyecircn vẹn caacutec bit

Transport Layer 3-87

Viacute dụ điều khiển tắc nghẽn ATM ABR

trường 2-byte ER trong ocirc RM switch đatilde tắc nghẽn coacute thể coacute giaacute trị ER thấp hơn trong ocirc tốc độ gửi do đoacute coacute thể được hỗ trợ tối đa trecircn đường

EFCI bit trong caacutec ocirc dữ liệu được cagravei giaacute trị 1 trong switch đatilde tắc nghẽn nếu ocirc dữ liệu đứng trước ocirc RM coacute cagravei EFCI becircn gửi sẽ cagravei

bit CI trong ocirc RM trả về

Transport Layer 3-88

Chương 3 Nội dung trigravenh bagravey

31 Caacutec dịch vụ lớp Transport

32 Multiplexing vagrave demultiplexing

33 Vận chuyển khocircng kết nối UDP

34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy

35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối

36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn

37 Điều khiển tắc nghẽn TCP

Transport Layer 3-89

TCP điều khiển tắc nghẽn additive tăng lecircn multiplicative giảm xuống

8 Kbytes

16 Kbytes

24 Kbytes

time

congestionwindow

Caacutech tiếp cận tăng tốc độ truyền (kiacutech thước cửa sổ) tigravem khả năng băng thocircng coacute thể cho đến khi coacute mất maacutet xảy ra additive tăng lecircn tăng CongWin bởi 1 MSS

mỗi RTT cho đến khi coacute mất maacutet xảy ra multiplicative giảm xuống bỏ CongWin trong

nửa giai đoạn sau khi mất maacutet

timekiacutech

thư

ớc

cửa

sổ

tắc

nghẽ

n

Tigravem kiếm băng thocircng

Transport Layer 3-90

TCP điều khiển tắc nghẽn chi tiết

becircn gửi hạn chế việc truyền LastByteSent-LastByteAcked

CongWin Cocircng thức

CongWin thay đổi chức năng lagrave nhận biết tắc nghẽn trecircn mạng

Lagravem thế nagraveo becircn gửi nhận biết tắc nghẽn

mất maacutet xảy ra = timeout hoặc 3 ack trugraveng lặp

becircn gửi giảm tốc độ (CongWin) sau khi mất maacutet xảy ra

3 cơ chế AIMD khởi động chậm thận trọng sau khi coacute

caacutec sự kiện timeout

tốc độ = CongWin

RTT Bytess

Transport Layer 3-91

TCP khởi động chậm

Khi kết nối bắt đầu CongWin = 1 MSS Viacute dụ MSS = 500 bytes

amp RTT = 200 ms tốc độ khởi tạo = 20

kbps

băng thocircng sẵn sagraveng coacute thể gtgt MSSRTT mong muốn nhanh

choacuteng tăng tốc lecircn tốc độ coacute thể đaacutep ứng

Khi kết nối bắt đầu tăng tốc lecircn rất nhanh cho đến khi sự cố mất maacutet xảy ra đầu tiecircn

Transport Layer 3-92

TCP khởi động chậm (tt)

Khi kết nối bắt đầu tăng tốc lecircn rất nhanh cho đến khi sự cố mất maacutet xảy ra đầu tiecircn nhacircn đocirci CongWin mỗi

RTT hoagraven thagravenh nhờ tăng CongWin ứng với mỗi ACK đatilde nhận

Tổng kết tốc độ khởi đầu lagrave chậm nhưng sau đoacute tăng tốc rất nhanh

Host A

1 đoạn

RTT

Host B

thời gian

2 đoạn

4 đoạn

Transport Layer 3-93

Tinh chếHỏi Khi nagraveo việc tăng

tốc trở thagravenh tuyến tiacutenh

Trả lời Khi CongWin đạt đến 12 giaacute trị của noacute trước khi timeout

Hiện thực Ngưỡng thay đổi Tại thời điểm coacute sự cố

mất maacutet ngưỡng được cagravei giaacute trị bằng frac12 của CongWin ngay trước đoacute

Transport Layer 3-94

Tinh chế nhận biết mất maacutet

Sau 3 ACK trugraveng lặp CongWin sẽ giảm 12 kiacutech thước cửa sổ

tăng tuyến tiacutenh nhưng sau sự cố

timeout CongWin thay giaacute trị

bằng 1 MSS kiacutech thước cửa sổ

tăng cấp lũy thừa khi đến một ngưỡng

thigrave tăng tuyến tiacutenh

3 ACK trugraveng nhau chỉ ra khả năng truyền của mạng timeout chỉ thị ldquonhiều cảnh baacuteordquo về tigravenh huống tắc nghẽn

Nguyecircn lyacute

Transport Layer 3-95

Tổng kết TCP điều khiển tắc nghẽn

Khi CongWin dưới Threshold becircn gửi đang trong giai đoạn khởi động chậm kiacutech thước cửa sổ tăng nhanh theo cấp lũy thừa

Khi CongWin trecircn Threshold becircn gửi đang trong giai đoạn traacutenh tắc nghẽn kiacutech thước cửa sổ tăng nhanh theo cấp tuyến tiacutenh

Khi coacute 3 ACK trugraveng lặp xảy ra Threshold = CongWin2 vagrave CongWin = Threshold

Khi timeout xảy ra Threshold = CongWin2 vagrave CongWin = 1 MSS

Transport Layer 3-96

TCP điều khiển tắc nghẽn becircn gửi

Trạng thaacutei Sự kiện TCP becircn gửi hagravenh động Diễn giải

Slow Start (SS)-Khởi động chậm

ACK baacuteo nhận cho dữ liệu chưa ACK trước đoacute

CongWin = CongWin + MSS If (CongWin gt Threshold) cagravei đặt trạng thaacutei ldquoTraacutenh tắc nghẽnrdquo

Hậu quả lagravem tăng gấp đocirci CongWin mỗi RTT

CongestionAvoidance (CA) ndashTraacutenh tắc nghẽn

ACK baacuteo nhận cho dữ liệu chưa ACK trước đoacute

CongWin = CongWin+MSS (MSSCongWin)

Additive tăng lecircn lagravem tăng CongWin lecircn 1 MSS mỗi RTT

SS hoặc CA Sự cố mất maacutet xảy ra khi thấy coacute 3 ACK trugraveng lặp

Threshold = CongWin2 CongWin = Thresholdcagravei đặt trạng thaacutei ldquoTraacutenh tắc nghẽnrdquo

Khocirci phục nhanh hiện thực giảm xuống multiplicative CongWin sẽ khocircng giảm xuống dưới 1 MSS

SS hoặc CA Timeout Threshold = CongWin2 CongWin = 1 MSScagravei đặt trạng thaacutei ldquoKhởi động chậmrdquo

Vagraveo chế độ ldquoKhởi động chậmrdquo

SS hoặc CA ACK trugraveng lặp

Đếm ACK tăng lecircn cho đoạn vừa được ACK

CongWin vagrave Threshold khocircng thay đổi

Transport Layer 3-97

TCP throughput

Throughout trung bigravenh của TCP biểu diễn qua kiacutech thước của sổ vagrave RTT Bỏ qua trạng thaacutei ldquoKhởi động chậmrdquo

Cho W lagrave kiacutech thước cửa sổ khi coacute mất maacutet xảy ra

Khi kiacutech thước cửa sổ = W lưu lượng = WRTT

Chỉ ngay sau khi mất maacutet cửa sổ giảm xuống = W2 lưu lượng = W2RTT

throughout trung bigravenh 075 WRTT

Transport Layer 3-98

TCP tương lai

Viacute dụ caacutec đoạn dagravei 1500 byte RTT 100ms lưu lượng 10 Gbps

Kiacutech thước cửa sổ yecircu cầu W = 83333 đoạn trecircn đường truyền

Lưu lượng trong caacutec trường hợp mất maacutet

L = 210-10

Phiecircn bản mới của TCP dagravenh cho nhu cầu tốc độ cao

LRTT

MSS221

Transport Layer 3-99

Mục tiecircu nếu K phiecircn lagravem việc TCP chia sẻ kết nối cổ chai của băng thocircng lagrave R mỗi phiecircn coacute tốc độ trung bigravenh lagrave RK

TCP kết nối 1

router cổ chaikhả năng R

TCP kết nối 2

TCP tiacutenh cocircng bằng

Transport Layer 3-100

Tại sao phải TCP cocircng bằng

2 phiecircn lagravem việc cạnh tranh nhau Additive tăng lưu lượng tăng multiplicative giảm lưu lượng tương xứng

R

R

chia sẻ băng thocircng bằng nhau

Connection 1 throughputConnect

ion 2

th

roughput

traacutenh tắc nghẽn additive tăng lecircnmất maacutet giảm cửa sổ bằng 12

traacutenh tắc nghẽn additive tăng lecircnmất maacutet giảm cửa sổ bằng 12

Transport Layer 3-101

TCP tiacutenh cocircng bằng (tt)

Tiacutenh cocircng bằng amp UDP nhiều ứng dụng

thường khocircng dugraveng TCP khocircng muốn tốc độ bị

điều tiết do điều khiển tắc nghẽn

Thay bằng dugraveng UDP truyền audiovideo với

tốc độ ổn định chịu được mất maacutet

Nghiecircn cứu giao thức thacircn thiện với TCP

Tiacutenh cocircng bằng amp caacutec kết nối TCP song song

khocircng coacute gigrave ngăn cản việc ứng dụng mở caacutec kết nối song song giữa 2 host

Trigravenh duyệt Web lagravem giống như thế

Viacute dụ tốc độ R hỗ trợ 9 kết nối ứng dụng mới yecircu cầu 1

TCP coacute tốc độ R10 ứng dụng mới yecircu cầu 11

TCP coacute tốc độ R2

Transport Layer 3-102

Mocirc higravenh trễ

Hỏi Mất bao lacircu để nhận 1 đối tượng từ Web server sau khi gửi yecircu cầu

Bỏ qua tắc nghẽn trễ bị ảnh hưởng bởi

thiết lập kết nối TCP trễ truyền dữ liệu khởi động chậm

Notation caacutec giả định Giả sử một kết nối giữa

client vagrave server coacute tốc độ R

S MSS (bits) O kiacutech thước đối tượng

(bits) khocircng truyền lại (khocircng

mất maacutet khocircng hỏng)

Kiacutech thước cửa sổ Giả định 1 cửa sổ tắc

nghẽn cố định coacute W đoạn Sau đoacute cửa sổ thay đổi

mocirc higravenh khởi động chậm

Transport Layer 3-103

Cửa sổ tắc nghẽn cố định (1)

Trường hợp đầu tiecircnWSR gt RTT + SR cho

đoạn đầu tiecircn trong cửa sổ trả về trước khi cửa sổ dữ liệu gửi ACK

trễ = 2RTT + OR

Transport Layer 3-104

Cửa sổ tắc nghẽn cố định (2)

Trường hợp thứ hai WSR lt RTT + SR sent

chờ cho ACK sau khi gửi dữ liệu

trễ = 2RTT + OR+ (K-1)[SR + RTT - WSR]

Transport Layer 3-105

TCP Mocirc higravenh trễ Khởi động chậm (1)

Bacircy giờ giả sử kiacutech thước cửa sổ tăng lecircn tugravey theo quaacute trigravenh khởi động chậm

Độ trễ của một đối tượng sẽ lagrave

R

S

R

SRTTP

R

ORTTLatency P )12(2

trong đoacute P lagrave số lần TCP rảnh ở tại server

1min KQP

- trong đoacute Q lagrave số lần server rảnh nếu đối tượng đatilde khởi tạo kiacutech thước

- vagrave K lagrave số lượng cửa sổ bao trugravem đối tượng

Transport Layer 3-106

TCP Mocirc higravenh trễ Khởi động chậm (2)

RTT

initia te TCPconnection

requestobject

first w indow= S R

second w indow= 2S R

third w indow= 4S R

fourth w indow= 8S R

com pletetransm issionobject

delivered

tim e atc lient

tim e atserver

Viacute dụbull OS = 15 đoạnbull K = 4 cửa sổbull Q = 2bull P = minK-1Q = 2

Server rảnh P=2 lần

Caacutec thagravenh phần trễbull 2 RTT dagravenh cho thiết lập kết nối vagrave yecircu cầubull OR để truyền đối tượngbullthời gian server rảnh bởi vigrave khởi động chậm

Server rảnh P = minK-1Q lần

Transport Layer 3-107

TCP Mocirc higravenh trễ(3)

R

S

R

SRTTPRTT

R

O

R

SRTT

R

SRTT

R

O

idleTimeRTTR

O

P

kP

k

P

pp

)12(][2

]2[2

2delay

1

1

1

th window after the timeidle 2 1 kR

SRTT

R

S k

ementacknowledg receivesserver until

segment send tostartsserver when from time RTTR

S

window kth the transmit totime2 1

R

Sk

RTT

initia te TCPconnection

requestobject

first w indow= S R

second w indow= 2S R

third w indow= 4S R

fourth w indow= 8S R

com pletetransm issionobject

delivered

tim e atc lient

tim e atserver

Transport Layer 3-108

TCP Mocirc higravenh trễ (4)

)1(log

)1(logmin

12min

222min

222min

2

2

110

110

S

OS

Okk

S

Ok

SOk

OSSSkK

k

k

k

caacutech tiacutenh toaacuten Q tương tự (xem HW)

K = số lượng cửa sổ bao trugravem đối tượngLagravem thế nagraveo tiacutenh được K

Transport Layer 3-109

HTTP Mocirc higravenh Giả sử trang Web chứa

1 trang HTML (kiacutech thước O bits) M higravenh ảnh (mỗi caacutei kiacutech thướcO bits)

HTTP khocircng bền vững M+1 TCP kết nối Thời gian đaacutep ứng = (M+1)OR + (M+1)2RTT + tổng số thời

gian rảnh HTTP bền vững

2 RTT để yecircu cầu vagrave nhận file HTML 1 RTT để yecircu cầu vagrave nhận M higravenh ảnh Thời gian đaacutep ứng = (M+1)OR + 3RTT + tổng số thời gian

rảnh HTTP khocircng bền vững với X kết nối song song

Giả sử MX lagrave số nguyecircn 1 TCP kết nối cho file MX thiết lập caacutec kết nối song song cho caacutec higravenh ảnh Thời gian đaacutep ứng = (M+1)OR + (MX + 1)2RTT + tổng số

thời gian rảnh

Transport Layer 3-110

02468

101214161820

28Kbps

100Kbps

1Mbps

10Mbps

non-persistent

persistent

parallel non-persistent

HTTP thời gian đaacutep ứng (giacircy)RTT = 100 msec O = 5 Kbytes M=10 vagrave X=5

Với băng thocircng thấp thời gian kết nối amp đaacutep ứng trội hơn thời gian truyền

Caacutec kết nối bền vững chỉ cho sự cải thiện khocircng đaacuteng kể trecircn caacutec kết nối song song

Transport Layer 3-111

0

10

20

30

40

50

60

70

28Kbps

100Kbps

1Mbps

10Mbps

non-persistent

persistent

parallel non-persistent

HTTP thời gian đaacutep ứng (giacircy)

RTT =1 sec O = 5 Kbytes M=10 and X=5

Với RTT lớn hơn thời gian đaacutep ứng trội hơn thời gian trễ chờ thiết lập kết nốiTCP amp khởi động chậm Caacutec kết nối bền vững bacircy giờ cho thấy cải thiện rotilde rệt đặc biệtvới caacutec mạng băng thocircng cao

Transport Layer 3-112

Chương 3 Tổng kết caacutec nguyecircn lyacute của caacutec

dịch vụ lớp transport multiplexing

demultiplexing truyền dữ liệu tin cậy điều khiển luồng điều khiển tắc nghẽn

khởi tạo vagrave hiện thực trong Internet UDP TCP

Tiếp theo nghiecircn cứu xong

caacutec vấn đề ldquongoagravei biecircnrdquo (caacutec lớp application transport)

chuẩn bị vagraveo phần ldquolotildeirdquo của mạng

  • Slide 1
  • Chương 3 Lớp Transport
  • Chương 3 Nội dung trigravenh bagravey
  • Caacutec dịch vụ vagrave giao thức Transport
  • Lớp Transport với lớp network
  • Caacutec giao thức lớp transport trecircn Internet
  • Slide 7
  • Multiplexingdemultiplexing
  • Demultiplexing lagravem việc như thế nagraveo
  • Demultiplexing khocircng kết nối
  • Demultiplexing khocircng kết nối (tiếp)
  • Demultiplexing hướng kết nối
  • Demultiplexing hướng kết nối (tiếp)
  • Demultiplexing hướng kết nối Threaded Web Server
  • Slide 15
  • UDP User Datagram Protocol [RFC 768]
  • UDP (tt)
  • UDP checksum
  • Viacute dụ Checksum
  • Slide 20
  • Caacutec nguyecircn lyacute truyền dữ liệu tin cậy
  • Slide 22
  • Slide 23
  • Truyền dữ liệu tin cậy
  • Slide 25
  • Rdt10 truyền dữ liệu tin cậy trecircn 1 kecircnh truyền tin cậy
  • Rdt20 kecircnh với caacutec lỗi
  • rdt20 đặc tả FSM
  • rdt20 hoạt động khi khocircng lỗi
  • rdt20 hoạt động khi coacute lỗi
  • rdt20 coacute lỗ hổng nghiecircm trọng
  • rdt21 người gửi quản lyacute caacutec ACKNAK bị hỏng
  • Slide 33
  • rdt21 thảo luận
  • rdt22 một giao thức khocircng cần NAK
  • rdt22 gửi nhận caacutec mảnh
  • rdt30 caacutec kecircnh với lỗi vagrave mất maacutet
  • rdt30 gửi
  • hagravenh động của rdt30
  • Slide 40
  • Hiệu suất của rdt30
  • rdt30 hoạt động dừng-vagrave-chờ
  • Caacutec giao thức Pipelined
  • Pipelining độ khả dụng tăng
  • Go-Back-N
  • GBN becircn gửi mở rộng FSM
  • GBN becircn nhận mở rộng FSM
  • GBN hoạt động
  • Lặp coacute lựa chọn
  • Lặp coacute lựa chọn caacutec cửa sổ gửi nhận
  • Slide 51
  • Hoạt động của lặp coacute lựa chọn
  • Lặp coacute lựa chọn tigravenh trạng khoacute giải quyết
  • Slide 54
  • TCP Tổng quan RFCs 793 1122 1323 2018 2581
  • TCP cấu truacutec đoạn
  • Caacutec số thứ tự TCP vagrave ACK
  • TCP Round Trip Time vagraveTimeout
  • TCP Round Trip Time vagrave Timeout
  • Viacute dụ đaacutenh giaacute RTT
  • Slide 61
  • TCP truyền dữ liệu tin cậy
  • TCP caacutec sự kiện
  • TCP becircn gửi (đơn giản)
  • TCP caacutec tigravenh huống truyền lại
  • TCP caacutec tigravenh huống truyền lại (tt)
  • TCP sinh ra ACK [RFC 1122 RFC 2581]
  • Truyền lại nhanh
  • Giải thuật truyền lại nhanh
  • Slide 70
  • TCP điều khiển luồng
  • TCP điều khiển luồng caacutech lagravem
  • Slide 73
  • TCP quản lyacute kết nối
  • TCP quản lyacute kết nối (tt)
  • Slide 76
  • Slide 77
  • Slide 78
  • Caacutec nguyecircn lyacute điều khiển tắc nghẽn
  • Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 1
  • Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 2
  • Slide 82
  • Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 3
  • Slide 84
  • Caacutec caacutech tiếp cận đối với điều khiển tắc nghẽn
  • Viacute dụ điều khiển tắc nghẽn ATM ABR
  • Slide 87
  • Slide 88
  • TCP điều khiển tắc nghẽn additive tăng lecircn multiplicative giảm xuống
  • TCP điều khiển tắc nghẽn chi tiết
  • TCP khởi động chậm
  • TCP khởi động chậm (tt)
  • Tinh chế
  • Tinh chế nhận biết mất maacutet
  • Tổng kết TCP điều khiển tắc nghẽn
  • TCP điều khiển tắc nghẽn becircn gửi
  • TCP throughput
  • TCP tương lai
  • TCP tiacutenh cocircng bằng
  • Tại sao phải TCP cocircng bằng
  • TCP tiacutenh cocircng bằng (tt)
  • Mocirc higravenh trễ
  • Cửa sổ tắc nghẽn cố định (1)
  • Cửa sổ tắc nghẽn cố định (2)
  • TCP Mocirc higravenh trễ Khởi động chậm (1)
  • TCP Mocirc higravenh trễ Khởi động chậm (2)
  • TCP Mocirc higravenh trễ(3)
  • TCP Mocirc higravenh trễ (4)
  • HTTP Mocirc higravenh
  • Slide 110
  • Slide 111
  • Chương 3 Tổng kết

Transport Layer 3-54

Chương 3 Nội dung trigravenh bagravey

31 Caacutec dịch vụ lớp Transport

32 Multiplexing vagrave demultiplexing

33 Vận chuyển khocircng kết nối UDP

34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy

35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối

36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn

37 Điều khiển tắc nghẽn TCP

Transport Layer 3-55

TCP Tổng quan RFCs 793 1122 1323 2018 2581

dữ liệu full duplex luồng dữ liệu đi 2 chiều

trong cugraveng một kết nối MSS maximum

segment size ndash kiacutech thước đoạn tối đa

hướng kết nối bắt tay (trao đổi caacutec

thocircng điệp điều khiển) trạng thaacutei becircn gửi becircn nhận trước khi trao đổi dữ liệu

điều khiển luồng becircn gửi sẽ khocircng lấn aacutet

becircn nhận

point-to-point một becircn gửi một becircn

nhận tin cậy dograveng byte coacute

thứ tự khocircng ldquoranh giới thocircng

điệprdquo kecircnh liecircn lạc

TCP điều khiển luồng vagrave tắc nghẽn thiết lập kiacutech thước cửa sổ

caacutec bộ đệm gửi amp nhận

socketdoor

T C Psend buffer

T C Preceive buffer

socketdoor

segm ent

applicationwrites data

applicationreads data

Transport Layer 3-56

TCP cấu truacutec đoạn

port nguồn port điacutech

32 bits

dữ liệu ứng dụng(độ dagravei thay đổi)

số thứ tự

số ACKcửa sổ nhận

con trỏ URGchecksum

FSRPAUheadlen

notused

Tugravey chọn (độ dagravei thay đổi)

URG dữ liệu khẩn cấp(thường khocircng dugraveng)

ACK ACK hợp lệ

PSH push data now(thường khocircng dugraveng)

RST SYN FINthiết lập kết nối

(caacutec lệnh thiết lậpchia nhỏ)

số byte becircn nhận sẵn sagraveng chấp nhận

đếm bởi số bytecủa dữ liệu

Internetchecksum

(giống UDP)

Transport Layer 3-57

Caacutec số thứ tự TCP vagrave ACKCaacutec số thứ tự

dograveng byte ldquođaacutenh sốrdquo byte đầu tiecircn trong dữ liệu của đoạn

caacutec ACK số thứ tự của byte

kế tiếp được chờ đợi từ phiacutea becircn kia

ACK tiacutech lũyHỏi lagravem thế nagraveo becircn

nhận quản lyacute caacutec đoạn khocircng thứ tự Trả lời TCP khocircng

đề cập tugravey thuộc người hiện thực

Host A Host B

Seq=42 ACK=79 data = lsquoCrsquo

Seq=79 ACK=43 data = lsquoCrsquo

Seq=43 ACK=80

UsernhậplsquoCrsquo

host ACKsnhận phản hồi

lsquoCrsquo

host ACKsbaacuteo nhận

lsquoCrsquo phản hồingược lại lsquoCrsquo

timetigravenh huống telnet đơn giản

Transport Layer 3-58

TCP Round Trip Time vagraveTimeout

Hỏi Lagravem thế nagraveo để thiết lập giaacute trị TCP timeout

dagravei hơn RTT khaacutec với RTT

quaacute ngắn timeout sớm truyền lại khocircng

cần thiết quaacute dagravei phản ứng

chậm đối với việc mất maacutet goacutei

Hỏi Lagravem thế nagraveo để thiết lập RTT

SampleRTT thời gian được đo từ khi truyền đoạn đến khi baacuteo nhận ACK lờ đi việc truyền lại

SampleRTT sẽ thay đổi muốn ước lượng RTT ldquomượt hơnrdquo tiacutenh trung bigravenh một số giaacute

trị đo được gần đoacute khocircng chỉ SampleRTT hiện tại

Transport Layer 3-59

TCP Round Trip Time vagrave Timeout

EstimatedRTT = (1- )EstimatedRTT + SampleRTT

giaacute trị đặc trưng = 0125

Transport Layer 3-60

Viacute dụ đaacutenh giaacute RTTRTT gaiacsumassedu to fantasiaeurecomfr

100

150

200

250

300

350

1 8 15 22 29 36 43 50 57 64 71 78 85 92 99 106

time (seconnds)

RTT

(mill

isec

onds

)

SampleRTT Estimated RTT

Transport Layer 3-61

TCP Round Trip Time vagrave Timeout

Thiết lập timeout EstimtedRTT cộng ldquohệ số dự trữ an toagravenrdquo

sự biến thiecircn lớn trong EstimatedRTT -gt hệ số dự trữ an toagraven lớn hơn ước lượng đầu tiecircn về sự biến thiecircn của SampleRTT từ EstimatedRTT

TimeoutInterval = EstimatedRTT + 4DevRTT

DevRTT = (1-)DevRTT + |SampleRTT-EstimatedRTT|

(tiecircu biểu = 025)

Sau đoacute thiết lập timeout interval

Transport Layer 3-62

TCP truyền dữ liệu tin cậy

TCP tạo dịch vụ rdt trecircn dịch vụ khocircng tin cậy IP

caacutec đoạn Pipelined caacutec ACK tiacutech lũy TCP dugraveng bộ định thigrave

truyền lại đơn

Truyền lại được kiacutech hoạt bởi caacutec sự kiện timeout caacutec ack trugraveng lặp

luacutec đầu khảo saacutet caacutec becircn gửi TCP đơn giản lờ đi caacutec ack trugraveng lặp lờ đi điều khiển luồng

điều khiển tắc nghẽn

Transport Layer 3-63

TCP caacutec sự kiệndữ liệu đatilde nhận từ ứng

dụng tạo đoạn với số thứ

tự của noacute số thứ tự lagrave số theo

byte dữ liệu đầu tiecircn khởi động bộ định thigrave

nếu chưa chạy khoảng thời gian hết

hạn TimeOutInterval

timeout gửi lại đoạn nagraveo gacircy

ra timeout khởi động lại bộ định

thigrave Ack đatilde nhận

cập nhật caacutei gigrave sẽ được ACK

khởi động bộ định thigrave nếu coacute caacutec đoạn cograven chờ

Transport Layer 3-64

TCP becircn gửi(đơn giản)

NextSeqNum = InitialSeqNum SendBase = InitialSeqNum

loop (forever) switch(event)

event data received from application above create TCP segment with sequence number NextSeqNum if (timer currently not running) start timer pass segment to IP NextSeqNum = NextSeqNum + length(data)

event timer timeout retransmit not-yet-acknowledged segment with smallest sequence number start timer

event ACK received with ACK field value of y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer

end of loop forever

Chuacute thiacutechbull SendBase-1 byte vừa được ACK tiacutech lũy Viacute dụbull SendBase-1 = 71y= 73 vigrave thế becircn nhận muốn 73+ y gt SendBase vigrave thế dữ liệu mới được chấp nhận

Transport Layer 3-65

TCP caacutec tigravenh huống truyền lại

Host A

Seq=100 20 bytes data

ACK=100

timetimeout sớm

Host B

Seq=92 8 bytes data

ACK=120

Seq=92 8 bytes data

Seq=

92

tim

eout

ACK=120

Host A

Seq=92 8 bytes data

ACK=100

loss

tim

eout

tigravenh huống mất ACK

Host B

X

Seq=92 8 bytes data

ACK=100

time

Seq=

92

tim

eout

SendBase= 100

SendBase= 120

SendBase= 120

Sendbase= 100

Transport Layer 3-66

TCP caacutec tigravenh huống truyền lại (tt)Host A

Seq=92 8 bytes data

ACK=100

loss

tim

eout

Cumulative ACK scenario

Host B

X

Seq=100 20 bytes data

ACK=120

time

SendBase= 120

Transport Layer 3-67

TCP sinh ra ACK [RFC 1122 RFC 2581]

Sự kiện tại becircn nhận

Đoạn đến với đuacuteng số thứ tự mong muốn Tất cả dữ liệu đếnđatilde được ACK

Đoạn đến với đuacuteng số thứ tự mong muốn Một đoạn khaacutec đangchờ ACK

Caacutec đoạn đến khocircng thứ tựlớn hơn số thứ tự đoạn mong muốnCoacute khoảng trống

Đoạn đếnlấp đầy từng phần hoặc toagraven bộkhoảng trống

TCP becircn nhận hagravenh động

ACK trễ Chờ đến 500mscho đoạn kế tiếp Nếu khocircng coacute đoạnkế tiếp gửi ACK

Gửi ngay một ACK tiacutech lũy chấp nhậncho cả caacutec đoạn theo thứ tự

Gửi ngay ACK trugraveng lặp chỉ thị số thứ tựđoạn của byte kế tiếp đang mong chờ

Gửi ngay ACK với điều kiện lagrave đoạnbắt đầu ngay điểm coacute khoảng trống

Transport Layer 3-68

Truyền lại nhanh

Chu kỳ Time-out thường tương đối dagravei độ trễ dagravei trước khi gửi

lại goacutei đatilde mất

Xaacutec nhận caacutec đoạn đatilde mất bằng caacutec ACK trugraveng lặp becircn gửi thường gửi

nhiều đoạn song song Nếu đoạn bị mất sẽ

xảy ra tigravenh trạng giống như nhiều ACK trugraveng nhau

Nếu becircn gửi nhận 3 ACK của cugraveng một dữ liệu noacute cho lagrave đoạn sau dữ liệu đatilde ACK bị mất Truyền lại nhanh gửi

lại đoạn trước khi bộ định thigrave hết hạn

Transport Layer 3-69

sự kiện ACK đatilde nhận với trường lagrave y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer else increment count of dup ACKs received for y if (count of dup ACKs received for y = 3) resend segment with sequence number y

Giải thuật truyền lại nhanh

một ACK trugraveng lặp cho đoạn đatilde được ACK

Truyền lại nhanh

Transport Layer 3-70

Chương 3 Nội dung trigravenh bagravey

31 Caacutec dịch vụ lớp Transport

32 Multiplexing vagrave demultiplexing

33 Vận chuyển khocircng kết nối UDP

34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy

35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối

36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn

37 Điều khiển tắc nghẽn TCP

Transport Layer 3-71

TCP điều khiển luồng

becircn nhận của kết nối TCP coacute một bộ đệm nhận

dịch vụ so trugraveng tốc độ so trugraveng tốc độ gửi với tốc độ nhận của ứng dụng

tiến trigravenh ứng dụng coacute thể chậm tại luacutec đọc bộ đệm

becircn gửi sẽ khocircng lagravem tragraven bộ đệm vigrave truyền quaacute nhiều vagrave

quaacute nhanh

điều khiển luồng

Transport Layer 3-72

TCP điều khiển luồng caacutech lagravem

(Giả sử becircn nhận TCP loại bỏ caacutec đoạn khocircng coacute thứ tự)

dự phograveng trong bộ đệm= RcvWindow

= RcvBuffer-[LastByteRcvd - LastByteRead]

Becircn nhận thocircng baacuteo khoảng dự trữ nhờ giaacute trị RcvWindow trong caacutec đoạn

Becircn gửi hạn chế dữ liệu khocircng được ACK vagraveo RcvWindow bảo đảm bộ đệm nhận

khocircng tragraven

Transport Layer 3-73

Chương 3 Nội dung trigravenh bagravey

31 Caacutec dịch vụ lớp Transport

32 Multiplexing vagrave demultiplexing

33 Vận chuyển khocircng kết nối UDP

34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy

35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối

36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn

37 Điều khiển tắc nghẽn TCP

Transport Layer 3-74

TCP quản lyacute kết nối

Chuacute yacute Becircn gửi vagrave becircn nhận TCP thiết lập ldquokết nốirdquo trước khi trao đổi dữ liệu

khởi tạo caacutec biến TCP caacutec số thứ tự đoạn thocircng tin caacutec bộ đệm điều

khiển luồng (như RcvWindow)

client người khởi xướng kết nối

Socket clientSocket = new Socket(hostnameport

number) server được tiếp xuacutec bởi

client Socket connectionSocket =

welcomeSocketaccept()

3 phương phaacutep bắt tay

Bước 1 client host gửi đoạnTCP SYN đến server xaacutec định số thứ tự khởi đầu khocircng phải dữ liệu

Bước 2 server host nhận SYN trả lời với đoạn SYNACK

server cấp phaacutet caacutec bộ đệm

xaacutec định số thứ tự khởi đầuBước 3 client nhận SYNACK trả

lời với đoạn ACK (coacute thể chứa dữ liệu)

Transport Layer 3-75

TCP quản lyacute kết nối (tt)

Đoacuteng một kết nối

client đoacuteng socket clientSocketclose()

Bước 1 client gửi đoạn điều khiển TCP FIN đến server

Bước 2 server nhận FIN trả lời với ACK Đoacuteng kết nối gửi FIN

client

FIN

server

ACK

ACK

FIN

đoacuteng

đoacuteng

đatilde đoacutengthời g

ian c

hờ

Transport Layer 3-76

TCP quản lyacute kết nối (tt)

Bước 3 client nhận FIN trả lời với ACK

Trong khoảng ldquothời gian chờrdquo ndash sẽ phản hồi với ACK để nhận caacutec FIN

Bước 4 server nhận ACK Kết nối đatilde đoacuteng

Chuacute yacute với một sửa đổi nhỏ coacute thể quản lyacute nhiều FIN đồng thời

client

FIN

server

ACK

ACK

FIN

đang đoacuteng

đang đoacuteng

đatilde đoacuteng

thời g

ian c

hờ

đatilde đoacuteng

Transport Layer 3-77

TCP quản lyacute kết nối (tt)

chu kỳ sống củaTCP client

chu kỳ sống củaTCP server

Transport Layer 3-78

Chương 3 Nội dung trigravenh bagravey

31 Caacutec dịch vụ lớp Transport

32 Multiplexing vagrave demultiplexing

33 Vận chuyển khocircng kết nối UDP

34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy

35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối

36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn

37 Điều khiển tắc nghẽn TCP

Transport Layer 3-79

Caacutec nguyecircn lyacute điều khiển tắc nghẽn

Tắc nghẽn ldquoquaacute nhiều nguồn gửi quaacute nhanh vagrave quaacute nhiều

dữ liệu đến mạngrdquo khaacutec với điều khiển luồng caacutec biểu hiện

caacutec goacutei bị mất (tragraven bộ đệm tại caacutec router) caacutec độ trễ quaacute dagravei (xếp hagraveng trong bộ đệm

của router) lagrave 1 trong 10 vấn đề nan giải nhất

Transport Layer 3-80

Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 1

2 gửi 2 nhận 1 router caacutec bộ

đệm khocircng giới hạn

khocircng coacute truyền lại

caacutec độ trễ lớn hơn khi tắc nghẽn

năng suất coacute thể đạt tối đa

unlimited shared output link buffers

Host Ain original data

Host B

out

Transport Layer 3-81

Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 2

1 router caacutec bộ đệm coacute giới hạn becircn gửi truyền lại caacutec goacutei đatilde mất

chia sẻ vocirc hạncaacutec bộ đệm ouput

Host A in dữ liệu gốc

Host B

out

in dữ liệu gốc cugraveng với dữ liệu truyền lại

Transport Layer 3-82

Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 2 luocircn luocircn

truyền lại ldquohoagraven toagravenrdquo chỉ khi mất maacutet

truyền lại vigrave trễ (khocircng mất) lagravem cho lớn hơn với cugraveng

in

out

=

in

out

gt

in

out

ldquocaacutec chi phiacuterdquo của tắc nghẽn nhiều việc (truyền lại) caacutec truyền lại khocircng cần thiết liecircn kết nhiều bản sao của

goacutei

R2

R2in

ou

t

b

R2

R2in

ou

t

a

R2

R2in

ou

t

c

R4

R3

Transport Layer 3-83

Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 3 4 người gửi caacutec đường qua nhiều hop timeouttruyền lại

in

Hỏi điều gigrave xảy ra nếu vagrave tăng lecircn

in

chia sẻ vocirc hạncaacutec bộ đệm ouput

Host Ain dữ liệu gốc

Host B

out

in dữ liệu gốc cugraveng với dữ liệu truyền lại

Transport Layer 3-84

Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 3

ldquochi phiacuterdquo khaacutec của tắc nghẽn khi caacutec goacutei bị bỏ bất kỳ ldquokhả năng truyền

upstream dugraveng cho goacutei đoacute sẽ bị latildeng phiacuterdquo

Host A

Host B

o

u

t

Transport Layer 3-85

Caacutec caacutech tiếp cận đối với điều khiển tắc nghẽn

điều khiển tắc nghẽn end-end

khocircng coacute phản hồi rotilde ragraveng từ mạng

tắc nghẽn được suy ra từ việc quan saacutet caacutec hệ thống đầu cuối coacute mất maacutet trễ

tiếp cận được quản lyacute bởi TCP

điều khiển tắc nghẽn coacute sự hỗ trợ của mạng

caacutec router cung cấp phản hồi về caacutec hệ thống đầu cuối 1 bit duy nhất chỉ thị

tắc nghẽn (SNA DECbit TCPIP ECN ATM)

tốc độ sẽ gửi được xaacutec định rotilde ragraveng

2 caacutech

Transport Layer 3-86

Viacute dụ điều khiển tắc nghẽn ATM ABR

ABR tốc độ bit sẵn sagraveng

ldquodịch vụ mềm dẻordquo nếu đường gửi ldquochưa

hếtrdquo becircn gửi sẽ dugraveng

băng thocircng sẵn sagraveng nếu đường gửi tắc

nghẽn becircn gửi điều tiết với

tốc độ tối thiểu

RM (resource management)

gửi bởi becircn gửi rải raacutec với caacutec ocirc dữ liệu

caacutec bit trong ocirc thiết lập bởi caacutec switch bit NI khocircng tăng tốc độ

(tắc nghẽn nhẹ) bit CI tắc nghẽn rotilde rệt

Caacutec ocirc RM được trả về becircn gửi từ becircn nhận với nguyecircn vẹn caacutec bit

Transport Layer 3-87

Viacute dụ điều khiển tắc nghẽn ATM ABR

trường 2-byte ER trong ocirc RM switch đatilde tắc nghẽn coacute thể coacute giaacute trị ER thấp hơn trong ocirc tốc độ gửi do đoacute coacute thể được hỗ trợ tối đa trecircn đường

EFCI bit trong caacutec ocirc dữ liệu được cagravei giaacute trị 1 trong switch đatilde tắc nghẽn nếu ocirc dữ liệu đứng trước ocirc RM coacute cagravei EFCI becircn gửi sẽ cagravei

bit CI trong ocirc RM trả về

Transport Layer 3-88

Chương 3 Nội dung trigravenh bagravey

31 Caacutec dịch vụ lớp Transport

32 Multiplexing vagrave demultiplexing

33 Vận chuyển khocircng kết nối UDP

34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy

35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối

36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn

37 Điều khiển tắc nghẽn TCP

Transport Layer 3-89

TCP điều khiển tắc nghẽn additive tăng lecircn multiplicative giảm xuống

8 Kbytes

16 Kbytes

24 Kbytes

time

congestionwindow

Caacutech tiếp cận tăng tốc độ truyền (kiacutech thước cửa sổ) tigravem khả năng băng thocircng coacute thể cho đến khi coacute mất maacutet xảy ra additive tăng lecircn tăng CongWin bởi 1 MSS

mỗi RTT cho đến khi coacute mất maacutet xảy ra multiplicative giảm xuống bỏ CongWin trong

nửa giai đoạn sau khi mất maacutet

timekiacutech

thư

ớc

cửa

sổ

tắc

nghẽ

n

Tigravem kiếm băng thocircng

Transport Layer 3-90

TCP điều khiển tắc nghẽn chi tiết

becircn gửi hạn chế việc truyền LastByteSent-LastByteAcked

CongWin Cocircng thức

CongWin thay đổi chức năng lagrave nhận biết tắc nghẽn trecircn mạng

Lagravem thế nagraveo becircn gửi nhận biết tắc nghẽn

mất maacutet xảy ra = timeout hoặc 3 ack trugraveng lặp

becircn gửi giảm tốc độ (CongWin) sau khi mất maacutet xảy ra

3 cơ chế AIMD khởi động chậm thận trọng sau khi coacute

caacutec sự kiện timeout

tốc độ = CongWin

RTT Bytess

Transport Layer 3-91

TCP khởi động chậm

Khi kết nối bắt đầu CongWin = 1 MSS Viacute dụ MSS = 500 bytes

amp RTT = 200 ms tốc độ khởi tạo = 20

kbps

băng thocircng sẵn sagraveng coacute thể gtgt MSSRTT mong muốn nhanh

choacuteng tăng tốc lecircn tốc độ coacute thể đaacutep ứng

Khi kết nối bắt đầu tăng tốc lecircn rất nhanh cho đến khi sự cố mất maacutet xảy ra đầu tiecircn

Transport Layer 3-92

TCP khởi động chậm (tt)

Khi kết nối bắt đầu tăng tốc lecircn rất nhanh cho đến khi sự cố mất maacutet xảy ra đầu tiecircn nhacircn đocirci CongWin mỗi

RTT hoagraven thagravenh nhờ tăng CongWin ứng với mỗi ACK đatilde nhận

Tổng kết tốc độ khởi đầu lagrave chậm nhưng sau đoacute tăng tốc rất nhanh

Host A

1 đoạn

RTT

Host B

thời gian

2 đoạn

4 đoạn

Transport Layer 3-93

Tinh chếHỏi Khi nagraveo việc tăng

tốc trở thagravenh tuyến tiacutenh

Trả lời Khi CongWin đạt đến 12 giaacute trị của noacute trước khi timeout

Hiện thực Ngưỡng thay đổi Tại thời điểm coacute sự cố

mất maacutet ngưỡng được cagravei giaacute trị bằng frac12 của CongWin ngay trước đoacute

Transport Layer 3-94

Tinh chế nhận biết mất maacutet

Sau 3 ACK trugraveng lặp CongWin sẽ giảm 12 kiacutech thước cửa sổ

tăng tuyến tiacutenh nhưng sau sự cố

timeout CongWin thay giaacute trị

bằng 1 MSS kiacutech thước cửa sổ

tăng cấp lũy thừa khi đến một ngưỡng

thigrave tăng tuyến tiacutenh

3 ACK trugraveng nhau chỉ ra khả năng truyền của mạng timeout chỉ thị ldquonhiều cảnh baacuteordquo về tigravenh huống tắc nghẽn

Nguyecircn lyacute

Transport Layer 3-95

Tổng kết TCP điều khiển tắc nghẽn

Khi CongWin dưới Threshold becircn gửi đang trong giai đoạn khởi động chậm kiacutech thước cửa sổ tăng nhanh theo cấp lũy thừa

Khi CongWin trecircn Threshold becircn gửi đang trong giai đoạn traacutenh tắc nghẽn kiacutech thước cửa sổ tăng nhanh theo cấp tuyến tiacutenh

Khi coacute 3 ACK trugraveng lặp xảy ra Threshold = CongWin2 vagrave CongWin = Threshold

Khi timeout xảy ra Threshold = CongWin2 vagrave CongWin = 1 MSS

Transport Layer 3-96

TCP điều khiển tắc nghẽn becircn gửi

Trạng thaacutei Sự kiện TCP becircn gửi hagravenh động Diễn giải

Slow Start (SS)-Khởi động chậm

ACK baacuteo nhận cho dữ liệu chưa ACK trước đoacute

CongWin = CongWin + MSS If (CongWin gt Threshold) cagravei đặt trạng thaacutei ldquoTraacutenh tắc nghẽnrdquo

Hậu quả lagravem tăng gấp đocirci CongWin mỗi RTT

CongestionAvoidance (CA) ndashTraacutenh tắc nghẽn

ACK baacuteo nhận cho dữ liệu chưa ACK trước đoacute

CongWin = CongWin+MSS (MSSCongWin)

Additive tăng lecircn lagravem tăng CongWin lecircn 1 MSS mỗi RTT

SS hoặc CA Sự cố mất maacutet xảy ra khi thấy coacute 3 ACK trugraveng lặp

Threshold = CongWin2 CongWin = Thresholdcagravei đặt trạng thaacutei ldquoTraacutenh tắc nghẽnrdquo

Khocirci phục nhanh hiện thực giảm xuống multiplicative CongWin sẽ khocircng giảm xuống dưới 1 MSS

SS hoặc CA Timeout Threshold = CongWin2 CongWin = 1 MSScagravei đặt trạng thaacutei ldquoKhởi động chậmrdquo

Vagraveo chế độ ldquoKhởi động chậmrdquo

SS hoặc CA ACK trugraveng lặp

Đếm ACK tăng lecircn cho đoạn vừa được ACK

CongWin vagrave Threshold khocircng thay đổi

Transport Layer 3-97

TCP throughput

Throughout trung bigravenh của TCP biểu diễn qua kiacutech thước của sổ vagrave RTT Bỏ qua trạng thaacutei ldquoKhởi động chậmrdquo

Cho W lagrave kiacutech thước cửa sổ khi coacute mất maacutet xảy ra

Khi kiacutech thước cửa sổ = W lưu lượng = WRTT

Chỉ ngay sau khi mất maacutet cửa sổ giảm xuống = W2 lưu lượng = W2RTT

throughout trung bigravenh 075 WRTT

Transport Layer 3-98

TCP tương lai

Viacute dụ caacutec đoạn dagravei 1500 byte RTT 100ms lưu lượng 10 Gbps

Kiacutech thước cửa sổ yecircu cầu W = 83333 đoạn trecircn đường truyền

Lưu lượng trong caacutec trường hợp mất maacutet

L = 210-10

Phiecircn bản mới của TCP dagravenh cho nhu cầu tốc độ cao

LRTT

MSS221

Transport Layer 3-99

Mục tiecircu nếu K phiecircn lagravem việc TCP chia sẻ kết nối cổ chai của băng thocircng lagrave R mỗi phiecircn coacute tốc độ trung bigravenh lagrave RK

TCP kết nối 1

router cổ chaikhả năng R

TCP kết nối 2

TCP tiacutenh cocircng bằng

Transport Layer 3-100

Tại sao phải TCP cocircng bằng

2 phiecircn lagravem việc cạnh tranh nhau Additive tăng lưu lượng tăng multiplicative giảm lưu lượng tương xứng

R

R

chia sẻ băng thocircng bằng nhau

Connection 1 throughputConnect

ion 2

th

roughput

traacutenh tắc nghẽn additive tăng lecircnmất maacutet giảm cửa sổ bằng 12

traacutenh tắc nghẽn additive tăng lecircnmất maacutet giảm cửa sổ bằng 12

Transport Layer 3-101

TCP tiacutenh cocircng bằng (tt)

Tiacutenh cocircng bằng amp UDP nhiều ứng dụng

thường khocircng dugraveng TCP khocircng muốn tốc độ bị

điều tiết do điều khiển tắc nghẽn

Thay bằng dugraveng UDP truyền audiovideo với

tốc độ ổn định chịu được mất maacutet

Nghiecircn cứu giao thức thacircn thiện với TCP

Tiacutenh cocircng bằng amp caacutec kết nối TCP song song

khocircng coacute gigrave ngăn cản việc ứng dụng mở caacutec kết nối song song giữa 2 host

Trigravenh duyệt Web lagravem giống như thế

Viacute dụ tốc độ R hỗ trợ 9 kết nối ứng dụng mới yecircu cầu 1

TCP coacute tốc độ R10 ứng dụng mới yecircu cầu 11

TCP coacute tốc độ R2

Transport Layer 3-102

Mocirc higravenh trễ

Hỏi Mất bao lacircu để nhận 1 đối tượng từ Web server sau khi gửi yecircu cầu

Bỏ qua tắc nghẽn trễ bị ảnh hưởng bởi

thiết lập kết nối TCP trễ truyền dữ liệu khởi động chậm

Notation caacutec giả định Giả sử một kết nối giữa

client vagrave server coacute tốc độ R

S MSS (bits) O kiacutech thước đối tượng

(bits) khocircng truyền lại (khocircng

mất maacutet khocircng hỏng)

Kiacutech thước cửa sổ Giả định 1 cửa sổ tắc

nghẽn cố định coacute W đoạn Sau đoacute cửa sổ thay đổi

mocirc higravenh khởi động chậm

Transport Layer 3-103

Cửa sổ tắc nghẽn cố định (1)

Trường hợp đầu tiecircnWSR gt RTT + SR cho

đoạn đầu tiecircn trong cửa sổ trả về trước khi cửa sổ dữ liệu gửi ACK

trễ = 2RTT + OR

Transport Layer 3-104

Cửa sổ tắc nghẽn cố định (2)

Trường hợp thứ hai WSR lt RTT + SR sent

chờ cho ACK sau khi gửi dữ liệu

trễ = 2RTT + OR+ (K-1)[SR + RTT - WSR]

Transport Layer 3-105

TCP Mocirc higravenh trễ Khởi động chậm (1)

Bacircy giờ giả sử kiacutech thước cửa sổ tăng lecircn tugravey theo quaacute trigravenh khởi động chậm

Độ trễ của một đối tượng sẽ lagrave

R

S

R

SRTTP

R

ORTTLatency P )12(2

trong đoacute P lagrave số lần TCP rảnh ở tại server

1min KQP

- trong đoacute Q lagrave số lần server rảnh nếu đối tượng đatilde khởi tạo kiacutech thước

- vagrave K lagrave số lượng cửa sổ bao trugravem đối tượng

Transport Layer 3-106

TCP Mocirc higravenh trễ Khởi động chậm (2)

RTT

initia te TCPconnection

requestobject

first w indow= S R

second w indow= 2S R

third w indow= 4S R

fourth w indow= 8S R

com pletetransm issionobject

delivered

tim e atc lient

tim e atserver

Viacute dụbull OS = 15 đoạnbull K = 4 cửa sổbull Q = 2bull P = minK-1Q = 2

Server rảnh P=2 lần

Caacutec thagravenh phần trễbull 2 RTT dagravenh cho thiết lập kết nối vagrave yecircu cầubull OR để truyền đối tượngbullthời gian server rảnh bởi vigrave khởi động chậm

Server rảnh P = minK-1Q lần

Transport Layer 3-107

TCP Mocirc higravenh trễ(3)

R

S

R

SRTTPRTT

R

O

R

SRTT

R

SRTT

R

O

idleTimeRTTR

O

P

kP

k

P

pp

)12(][2

]2[2

2delay

1

1

1

th window after the timeidle 2 1 kR

SRTT

R

S k

ementacknowledg receivesserver until

segment send tostartsserver when from time RTTR

S

window kth the transmit totime2 1

R

Sk

RTT

initia te TCPconnection

requestobject

first w indow= S R

second w indow= 2S R

third w indow= 4S R

fourth w indow= 8S R

com pletetransm issionobject

delivered

tim e atc lient

tim e atserver

Transport Layer 3-108

TCP Mocirc higravenh trễ (4)

)1(log

)1(logmin

12min

222min

222min

2

2

110

110

S

OS

Okk

S

Ok

SOk

OSSSkK

k

k

k

caacutech tiacutenh toaacuten Q tương tự (xem HW)

K = số lượng cửa sổ bao trugravem đối tượngLagravem thế nagraveo tiacutenh được K

Transport Layer 3-109

HTTP Mocirc higravenh Giả sử trang Web chứa

1 trang HTML (kiacutech thước O bits) M higravenh ảnh (mỗi caacutei kiacutech thướcO bits)

HTTP khocircng bền vững M+1 TCP kết nối Thời gian đaacutep ứng = (M+1)OR + (M+1)2RTT + tổng số thời

gian rảnh HTTP bền vững

2 RTT để yecircu cầu vagrave nhận file HTML 1 RTT để yecircu cầu vagrave nhận M higravenh ảnh Thời gian đaacutep ứng = (M+1)OR + 3RTT + tổng số thời gian

rảnh HTTP khocircng bền vững với X kết nối song song

Giả sử MX lagrave số nguyecircn 1 TCP kết nối cho file MX thiết lập caacutec kết nối song song cho caacutec higravenh ảnh Thời gian đaacutep ứng = (M+1)OR + (MX + 1)2RTT + tổng số

thời gian rảnh

Transport Layer 3-110

02468

101214161820

28Kbps

100Kbps

1Mbps

10Mbps

non-persistent

persistent

parallel non-persistent

HTTP thời gian đaacutep ứng (giacircy)RTT = 100 msec O = 5 Kbytes M=10 vagrave X=5

Với băng thocircng thấp thời gian kết nối amp đaacutep ứng trội hơn thời gian truyền

Caacutec kết nối bền vững chỉ cho sự cải thiện khocircng đaacuteng kể trecircn caacutec kết nối song song

Transport Layer 3-111

0

10

20

30

40

50

60

70

28Kbps

100Kbps

1Mbps

10Mbps

non-persistent

persistent

parallel non-persistent

HTTP thời gian đaacutep ứng (giacircy)

RTT =1 sec O = 5 Kbytes M=10 and X=5

Với RTT lớn hơn thời gian đaacutep ứng trội hơn thời gian trễ chờ thiết lập kết nốiTCP amp khởi động chậm Caacutec kết nối bền vững bacircy giờ cho thấy cải thiện rotilde rệt đặc biệtvới caacutec mạng băng thocircng cao

Transport Layer 3-112

Chương 3 Tổng kết caacutec nguyecircn lyacute của caacutec

dịch vụ lớp transport multiplexing

demultiplexing truyền dữ liệu tin cậy điều khiển luồng điều khiển tắc nghẽn

khởi tạo vagrave hiện thực trong Internet UDP TCP

Tiếp theo nghiecircn cứu xong

caacutec vấn đề ldquongoagravei biecircnrdquo (caacutec lớp application transport)

chuẩn bị vagraveo phần ldquolotildeirdquo của mạng

  • Slide 1
  • Chương 3 Lớp Transport
  • Chương 3 Nội dung trigravenh bagravey
  • Caacutec dịch vụ vagrave giao thức Transport
  • Lớp Transport với lớp network
  • Caacutec giao thức lớp transport trecircn Internet
  • Slide 7
  • Multiplexingdemultiplexing
  • Demultiplexing lagravem việc như thế nagraveo
  • Demultiplexing khocircng kết nối
  • Demultiplexing khocircng kết nối (tiếp)
  • Demultiplexing hướng kết nối
  • Demultiplexing hướng kết nối (tiếp)
  • Demultiplexing hướng kết nối Threaded Web Server
  • Slide 15
  • UDP User Datagram Protocol [RFC 768]
  • UDP (tt)
  • UDP checksum
  • Viacute dụ Checksum
  • Slide 20
  • Caacutec nguyecircn lyacute truyền dữ liệu tin cậy
  • Slide 22
  • Slide 23
  • Truyền dữ liệu tin cậy
  • Slide 25
  • Rdt10 truyền dữ liệu tin cậy trecircn 1 kecircnh truyền tin cậy
  • Rdt20 kecircnh với caacutec lỗi
  • rdt20 đặc tả FSM
  • rdt20 hoạt động khi khocircng lỗi
  • rdt20 hoạt động khi coacute lỗi
  • rdt20 coacute lỗ hổng nghiecircm trọng
  • rdt21 người gửi quản lyacute caacutec ACKNAK bị hỏng
  • Slide 33
  • rdt21 thảo luận
  • rdt22 một giao thức khocircng cần NAK
  • rdt22 gửi nhận caacutec mảnh
  • rdt30 caacutec kecircnh với lỗi vagrave mất maacutet
  • rdt30 gửi
  • hagravenh động của rdt30
  • Slide 40
  • Hiệu suất của rdt30
  • rdt30 hoạt động dừng-vagrave-chờ
  • Caacutec giao thức Pipelined
  • Pipelining độ khả dụng tăng
  • Go-Back-N
  • GBN becircn gửi mở rộng FSM
  • GBN becircn nhận mở rộng FSM
  • GBN hoạt động
  • Lặp coacute lựa chọn
  • Lặp coacute lựa chọn caacutec cửa sổ gửi nhận
  • Slide 51
  • Hoạt động của lặp coacute lựa chọn
  • Lặp coacute lựa chọn tigravenh trạng khoacute giải quyết
  • Slide 54
  • TCP Tổng quan RFCs 793 1122 1323 2018 2581
  • TCP cấu truacutec đoạn
  • Caacutec số thứ tự TCP vagrave ACK
  • TCP Round Trip Time vagraveTimeout
  • TCP Round Trip Time vagrave Timeout
  • Viacute dụ đaacutenh giaacute RTT
  • Slide 61
  • TCP truyền dữ liệu tin cậy
  • TCP caacutec sự kiện
  • TCP becircn gửi (đơn giản)
  • TCP caacutec tigravenh huống truyền lại
  • TCP caacutec tigravenh huống truyền lại (tt)
  • TCP sinh ra ACK [RFC 1122 RFC 2581]
  • Truyền lại nhanh
  • Giải thuật truyền lại nhanh
  • Slide 70
  • TCP điều khiển luồng
  • TCP điều khiển luồng caacutech lagravem
  • Slide 73
  • TCP quản lyacute kết nối
  • TCP quản lyacute kết nối (tt)
  • Slide 76
  • Slide 77
  • Slide 78
  • Caacutec nguyecircn lyacute điều khiển tắc nghẽn
  • Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 1
  • Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 2
  • Slide 82
  • Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 3
  • Slide 84
  • Caacutec caacutech tiếp cận đối với điều khiển tắc nghẽn
  • Viacute dụ điều khiển tắc nghẽn ATM ABR
  • Slide 87
  • Slide 88
  • TCP điều khiển tắc nghẽn additive tăng lecircn multiplicative giảm xuống
  • TCP điều khiển tắc nghẽn chi tiết
  • TCP khởi động chậm
  • TCP khởi động chậm (tt)
  • Tinh chế
  • Tinh chế nhận biết mất maacutet
  • Tổng kết TCP điều khiển tắc nghẽn
  • TCP điều khiển tắc nghẽn becircn gửi
  • TCP throughput
  • TCP tương lai
  • TCP tiacutenh cocircng bằng
  • Tại sao phải TCP cocircng bằng
  • TCP tiacutenh cocircng bằng (tt)
  • Mocirc higravenh trễ
  • Cửa sổ tắc nghẽn cố định (1)
  • Cửa sổ tắc nghẽn cố định (2)
  • TCP Mocirc higravenh trễ Khởi động chậm (1)
  • TCP Mocirc higravenh trễ Khởi động chậm (2)
  • TCP Mocirc higravenh trễ(3)
  • TCP Mocirc higravenh trễ (4)
  • HTTP Mocirc higravenh
  • Slide 110
  • Slide 111
  • Chương 3 Tổng kết

Transport Layer 3-55

TCP Tổng quan RFCs 793 1122 1323 2018 2581

dữ liệu full duplex luồng dữ liệu đi 2 chiều

trong cugraveng một kết nối MSS maximum

segment size ndash kiacutech thước đoạn tối đa

hướng kết nối bắt tay (trao đổi caacutec

thocircng điệp điều khiển) trạng thaacutei becircn gửi becircn nhận trước khi trao đổi dữ liệu

điều khiển luồng becircn gửi sẽ khocircng lấn aacutet

becircn nhận

point-to-point một becircn gửi một becircn

nhận tin cậy dograveng byte coacute

thứ tự khocircng ldquoranh giới thocircng

điệprdquo kecircnh liecircn lạc

TCP điều khiển luồng vagrave tắc nghẽn thiết lập kiacutech thước cửa sổ

caacutec bộ đệm gửi amp nhận

socketdoor

T C Psend buffer

T C Preceive buffer

socketdoor

segm ent

applicationwrites data

applicationreads data

Transport Layer 3-56

TCP cấu truacutec đoạn

port nguồn port điacutech

32 bits

dữ liệu ứng dụng(độ dagravei thay đổi)

số thứ tự

số ACKcửa sổ nhận

con trỏ URGchecksum

FSRPAUheadlen

notused

Tugravey chọn (độ dagravei thay đổi)

URG dữ liệu khẩn cấp(thường khocircng dugraveng)

ACK ACK hợp lệ

PSH push data now(thường khocircng dugraveng)

RST SYN FINthiết lập kết nối

(caacutec lệnh thiết lậpchia nhỏ)

số byte becircn nhận sẵn sagraveng chấp nhận

đếm bởi số bytecủa dữ liệu

Internetchecksum

(giống UDP)

Transport Layer 3-57

Caacutec số thứ tự TCP vagrave ACKCaacutec số thứ tự

dograveng byte ldquođaacutenh sốrdquo byte đầu tiecircn trong dữ liệu của đoạn

caacutec ACK số thứ tự của byte

kế tiếp được chờ đợi từ phiacutea becircn kia

ACK tiacutech lũyHỏi lagravem thế nagraveo becircn

nhận quản lyacute caacutec đoạn khocircng thứ tự Trả lời TCP khocircng

đề cập tugravey thuộc người hiện thực

Host A Host B

Seq=42 ACK=79 data = lsquoCrsquo

Seq=79 ACK=43 data = lsquoCrsquo

Seq=43 ACK=80

UsernhậplsquoCrsquo

host ACKsnhận phản hồi

lsquoCrsquo

host ACKsbaacuteo nhận

lsquoCrsquo phản hồingược lại lsquoCrsquo

timetigravenh huống telnet đơn giản

Transport Layer 3-58

TCP Round Trip Time vagraveTimeout

Hỏi Lagravem thế nagraveo để thiết lập giaacute trị TCP timeout

dagravei hơn RTT khaacutec với RTT

quaacute ngắn timeout sớm truyền lại khocircng

cần thiết quaacute dagravei phản ứng

chậm đối với việc mất maacutet goacutei

Hỏi Lagravem thế nagraveo để thiết lập RTT

SampleRTT thời gian được đo từ khi truyền đoạn đến khi baacuteo nhận ACK lờ đi việc truyền lại

SampleRTT sẽ thay đổi muốn ước lượng RTT ldquomượt hơnrdquo tiacutenh trung bigravenh một số giaacute

trị đo được gần đoacute khocircng chỉ SampleRTT hiện tại

Transport Layer 3-59

TCP Round Trip Time vagrave Timeout

EstimatedRTT = (1- )EstimatedRTT + SampleRTT

giaacute trị đặc trưng = 0125

Transport Layer 3-60

Viacute dụ đaacutenh giaacute RTTRTT gaiacsumassedu to fantasiaeurecomfr

100

150

200

250

300

350

1 8 15 22 29 36 43 50 57 64 71 78 85 92 99 106

time (seconnds)

RTT

(mill

isec

onds

)

SampleRTT Estimated RTT

Transport Layer 3-61

TCP Round Trip Time vagrave Timeout

Thiết lập timeout EstimtedRTT cộng ldquohệ số dự trữ an toagravenrdquo

sự biến thiecircn lớn trong EstimatedRTT -gt hệ số dự trữ an toagraven lớn hơn ước lượng đầu tiecircn về sự biến thiecircn của SampleRTT từ EstimatedRTT

TimeoutInterval = EstimatedRTT + 4DevRTT

DevRTT = (1-)DevRTT + |SampleRTT-EstimatedRTT|

(tiecircu biểu = 025)

Sau đoacute thiết lập timeout interval

Transport Layer 3-62

TCP truyền dữ liệu tin cậy

TCP tạo dịch vụ rdt trecircn dịch vụ khocircng tin cậy IP

caacutec đoạn Pipelined caacutec ACK tiacutech lũy TCP dugraveng bộ định thigrave

truyền lại đơn

Truyền lại được kiacutech hoạt bởi caacutec sự kiện timeout caacutec ack trugraveng lặp

luacutec đầu khảo saacutet caacutec becircn gửi TCP đơn giản lờ đi caacutec ack trugraveng lặp lờ đi điều khiển luồng

điều khiển tắc nghẽn

Transport Layer 3-63

TCP caacutec sự kiệndữ liệu đatilde nhận từ ứng

dụng tạo đoạn với số thứ

tự của noacute số thứ tự lagrave số theo

byte dữ liệu đầu tiecircn khởi động bộ định thigrave

nếu chưa chạy khoảng thời gian hết

hạn TimeOutInterval

timeout gửi lại đoạn nagraveo gacircy

ra timeout khởi động lại bộ định

thigrave Ack đatilde nhận

cập nhật caacutei gigrave sẽ được ACK

khởi động bộ định thigrave nếu coacute caacutec đoạn cograven chờ

Transport Layer 3-64

TCP becircn gửi(đơn giản)

NextSeqNum = InitialSeqNum SendBase = InitialSeqNum

loop (forever) switch(event)

event data received from application above create TCP segment with sequence number NextSeqNum if (timer currently not running) start timer pass segment to IP NextSeqNum = NextSeqNum + length(data)

event timer timeout retransmit not-yet-acknowledged segment with smallest sequence number start timer

event ACK received with ACK field value of y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer

end of loop forever

Chuacute thiacutechbull SendBase-1 byte vừa được ACK tiacutech lũy Viacute dụbull SendBase-1 = 71y= 73 vigrave thế becircn nhận muốn 73+ y gt SendBase vigrave thế dữ liệu mới được chấp nhận

Transport Layer 3-65

TCP caacutec tigravenh huống truyền lại

Host A

Seq=100 20 bytes data

ACK=100

timetimeout sớm

Host B

Seq=92 8 bytes data

ACK=120

Seq=92 8 bytes data

Seq=

92

tim

eout

ACK=120

Host A

Seq=92 8 bytes data

ACK=100

loss

tim

eout

tigravenh huống mất ACK

Host B

X

Seq=92 8 bytes data

ACK=100

time

Seq=

92

tim

eout

SendBase= 100

SendBase= 120

SendBase= 120

Sendbase= 100

Transport Layer 3-66

TCP caacutec tigravenh huống truyền lại (tt)Host A

Seq=92 8 bytes data

ACK=100

loss

tim

eout

Cumulative ACK scenario

Host B

X

Seq=100 20 bytes data

ACK=120

time

SendBase= 120

Transport Layer 3-67

TCP sinh ra ACK [RFC 1122 RFC 2581]

Sự kiện tại becircn nhận

Đoạn đến với đuacuteng số thứ tự mong muốn Tất cả dữ liệu đếnđatilde được ACK

Đoạn đến với đuacuteng số thứ tự mong muốn Một đoạn khaacutec đangchờ ACK

Caacutec đoạn đến khocircng thứ tựlớn hơn số thứ tự đoạn mong muốnCoacute khoảng trống

Đoạn đếnlấp đầy từng phần hoặc toagraven bộkhoảng trống

TCP becircn nhận hagravenh động

ACK trễ Chờ đến 500mscho đoạn kế tiếp Nếu khocircng coacute đoạnkế tiếp gửi ACK

Gửi ngay một ACK tiacutech lũy chấp nhậncho cả caacutec đoạn theo thứ tự

Gửi ngay ACK trugraveng lặp chỉ thị số thứ tựđoạn của byte kế tiếp đang mong chờ

Gửi ngay ACK với điều kiện lagrave đoạnbắt đầu ngay điểm coacute khoảng trống

Transport Layer 3-68

Truyền lại nhanh

Chu kỳ Time-out thường tương đối dagravei độ trễ dagravei trước khi gửi

lại goacutei đatilde mất

Xaacutec nhận caacutec đoạn đatilde mất bằng caacutec ACK trugraveng lặp becircn gửi thường gửi

nhiều đoạn song song Nếu đoạn bị mất sẽ

xảy ra tigravenh trạng giống như nhiều ACK trugraveng nhau

Nếu becircn gửi nhận 3 ACK của cugraveng một dữ liệu noacute cho lagrave đoạn sau dữ liệu đatilde ACK bị mất Truyền lại nhanh gửi

lại đoạn trước khi bộ định thigrave hết hạn

Transport Layer 3-69

sự kiện ACK đatilde nhận với trường lagrave y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer else increment count of dup ACKs received for y if (count of dup ACKs received for y = 3) resend segment with sequence number y

Giải thuật truyền lại nhanh

một ACK trugraveng lặp cho đoạn đatilde được ACK

Truyền lại nhanh

Transport Layer 3-70

Chương 3 Nội dung trigravenh bagravey

31 Caacutec dịch vụ lớp Transport

32 Multiplexing vagrave demultiplexing

33 Vận chuyển khocircng kết nối UDP

34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy

35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối

36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn

37 Điều khiển tắc nghẽn TCP

Transport Layer 3-71

TCP điều khiển luồng

becircn nhận của kết nối TCP coacute một bộ đệm nhận

dịch vụ so trugraveng tốc độ so trugraveng tốc độ gửi với tốc độ nhận của ứng dụng

tiến trigravenh ứng dụng coacute thể chậm tại luacutec đọc bộ đệm

becircn gửi sẽ khocircng lagravem tragraven bộ đệm vigrave truyền quaacute nhiều vagrave

quaacute nhanh

điều khiển luồng

Transport Layer 3-72

TCP điều khiển luồng caacutech lagravem

(Giả sử becircn nhận TCP loại bỏ caacutec đoạn khocircng coacute thứ tự)

dự phograveng trong bộ đệm= RcvWindow

= RcvBuffer-[LastByteRcvd - LastByteRead]

Becircn nhận thocircng baacuteo khoảng dự trữ nhờ giaacute trị RcvWindow trong caacutec đoạn

Becircn gửi hạn chế dữ liệu khocircng được ACK vagraveo RcvWindow bảo đảm bộ đệm nhận

khocircng tragraven

Transport Layer 3-73

Chương 3 Nội dung trigravenh bagravey

31 Caacutec dịch vụ lớp Transport

32 Multiplexing vagrave demultiplexing

33 Vận chuyển khocircng kết nối UDP

34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy

35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối

36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn

37 Điều khiển tắc nghẽn TCP

Transport Layer 3-74

TCP quản lyacute kết nối

Chuacute yacute Becircn gửi vagrave becircn nhận TCP thiết lập ldquokết nốirdquo trước khi trao đổi dữ liệu

khởi tạo caacutec biến TCP caacutec số thứ tự đoạn thocircng tin caacutec bộ đệm điều

khiển luồng (như RcvWindow)

client người khởi xướng kết nối

Socket clientSocket = new Socket(hostnameport

number) server được tiếp xuacutec bởi

client Socket connectionSocket =

welcomeSocketaccept()

3 phương phaacutep bắt tay

Bước 1 client host gửi đoạnTCP SYN đến server xaacutec định số thứ tự khởi đầu khocircng phải dữ liệu

Bước 2 server host nhận SYN trả lời với đoạn SYNACK

server cấp phaacutet caacutec bộ đệm

xaacutec định số thứ tự khởi đầuBước 3 client nhận SYNACK trả

lời với đoạn ACK (coacute thể chứa dữ liệu)

Transport Layer 3-75

TCP quản lyacute kết nối (tt)

Đoacuteng một kết nối

client đoacuteng socket clientSocketclose()

Bước 1 client gửi đoạn điều khiển TCP FIN đến server

Bước 2 server nhận FIN trả lời với ACK Đoacuteng kết nối gửi FIN

client

FIN

server

ACK

ACK

FIN

đoacuteng

đoacuteng

đatilde đoacutengthời g

ian c

hờ

Transport Layer 3-76

TCP quản lyacute kết nối (tt)

Bước 3 client nhận FIN trả lời với ACK

Trong khoảng ldquothời gian chờrdquo ndash sẽ phản hồi với ACK để nhận caacutec FIN

Bước 4 server nhận ACK Kết nối đatilde đoacuteng

Chuacute yacute với một sửa đổi nhỏ coacute thể quản lyacute nhiều FIN đồng thời

client

FIN

server

ACK

ACK

FIN

đang đoacuteng

đang đoacuteng

đatilde đoacuteng

thời g

ian c

hờ

đatilde đoacuteng

Transport Layer 3-77

TCP quản lyacute kết nối (tt)

chu kỳ sống củaTCP client

chu kỳ sống củaTCP server

Transport Layer 3-78

Chương 3 Nội dung trigravenh bagravey

31 Caacutec dịch vụ lớp Transport

32 Multiplexing vagrave demultiplexing

33 Vận chuyển khocircng kết nối UDP

34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy

35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối

36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn

37 Điều khiển tắc nghẽn TCP

Transport Layer 3-79

Caacutec nguyecircn lyacute điều khiển tắc nghẽn

Tắc nghẽn ldquoquaacute nhiều nguồn gửi quaacute nhanh vagrave quaacute nhiều

dữ liệu đến mạngrdquo khaacutec với điều khiển luồng caacutec biểu hiện

caacutec goacutei bị mất (tragraven bộ đệm tại caacutec router) caacutec độ trễ quaacute dagravei (xếp hagraveng trong bộ đệm

của router) lagrave 1 trong 10 vấn đề nan giải nhất

Transport Layer 3-80

Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 1

2 gửi 2 nhận 1 router caacutec bộ

đệm khocircng giới hạn

khocircng coacute truyền lại

caacutec độ trễ lớn hơn khi tắc nghẽn

năng suất coacute thể đạt tối đa

unlimited shared output link buffers

Host Ain original data

Host B

out

Transport Layer 3-81

Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 2

1 router caacutec bộ đệm coacute giới hạn becircn gửi truyền lại caacutec goacutei đatilde mất

chia sẻ vocirc hạncaacutec bộ đệm ouput

Host A in dữ liệu gốc

Host B

out

in dữ liệu gốc cugraveng với dữ liệu truyền lại

Transport Layer 3-82

Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 2 luocircn luocircn

truyền lại ldquohoagraven toagravenrdquo chỉ khi mất maacutet

truyền lại vigrave trễ (khocircng mất) lagravem cho lớn hơn với cugraveng

in

out

=

in

out

gt

in

out

ldquocaacutec chi phiacuterdquo của tắc nghẽn nhiều việc (truyền lại) caacutec truyền lại khocircng cần thiết liecircn kết nhiều bản sao của

goacutei

R2

R2in

ou

t

b

R2

R2in

ou

t

a

R2

R2in

ou

t

c

R4

R3

Transport Layer 3-83

Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 3 4 người gửi caacutec đường qua nhiều hop timeouttruyền lại

in

Hỏi điều gigrave xảy ra nếu vagrave tăng lecircn

in

chia sẻ vocirc hạncaacutec bộ đệm ouput

Host Ain dữ liệu gốc

Host B

out

in dữ liệu gốc cugraveng với dữ liệu truyền lại

Transport Layer 3-84

Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 3

ldquochi phiacuterdquo khaacutec của tắc nghẽn khi caacutec goacutei bị bỏ bất kỳ ldquokhả năng truyền

upstream dugraveng cho goacutei đoacute sẽ bị latildeng phiacuterdquo

Host A

Host B

o

u

t

Transport Layer 3-85

Caacutec caacutech tiếp cận đối với điều khiển tắc nghẽn

điều khiển tắc nghẽn end-end

khocircng coacute phản hồi rotilde ragraveng từ mạng

tắc nghẽn được suy ra từ việc quan saacutet caacutec hệ thống đầu cuối coacute mất maacutet trễ

tiếp cận được quản lyacute bởi TCP

điều khiển tắc nghẽn coacute sự hỗ trợ của mạng

caacutec router cung cấp phản hồi về caacutec hệ thống đầu cuối 1 bit duy nhất chỉ thị

tắc nghẽn (SNA DECbit TCPIP ECN ATM)

tốc độ sẽ gửi được xaacutec định rotilde ragraveng

2 caacutech

Transport Layer 3-86

Viacute dụ điều khiển tắc nghẽn ATM ABR

ABR tốc độ bit sẵn sagraveng

ldquodịch vụ mềm dẻordquo nếu đường gửi ldquochưa

hếtrdquo becircn gửi sẽ dugraveng

băng thocircng sẵn sagraveng nếu đường gửi tắc

nghẽn becircn gửi điều tiết với

tốc độ tối thiểu

RM (resource management)

gửi bởi becircn gửi rải raacutec với caacutec ocirc dữ liệu

caacutec bit trong ocirc thiết lập bởi caacutec switch bit NI khocircng tăng tốc độ

(tắc nghẽn nhẹ) bit CI tắc nghẽn rotilde rệt

Caacutec ocirc RM được trả về becircn gửi từ becircn nhận với nguyecircn vẹn caacutec bit

Transport Layer 3-87

Viacute dụ điều khiển tắc nghẽn ATM ABR

trường 2-byte ER trong ocirc RM switch đatilde tắc nghẽn coacute thể coacute giaacute trị ER thấp hơn trong ocirc tốc độ gửi do đoacute coacute thể được hỗ trợ tối đa trecircn đường

EFCI bit trong caacutec ocirc dữ liệu được cagravei giaacute trị 1 trong switch đatilde tắc nghẽn nếu ocirc dữ liệu đứng trước ocirc RM coacute cagravei EFCI becircn gửi sẽ cagravei

bit CI trong ocirc RM trả về

Transport Layer 3-88

Chương 3 Nội dung trigravenh bagravey

31 Caacutec dịch vụ lớp Transport

32 Multiplexing vagrave demultiplexing

33 Vận chuyển khocircng kết nối UDP

34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy

35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối

36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn

37 Điều khiển tắc nghẽn TCP

Transport Layer 3-89

TCP điều khiển tắc nghẽn additive tăng lecircn multiplicative giảm xuống

8 Kbytes

16 Kbytes

24 Kbytes

time

congestionwindow

Caacutech tiếp cận tăng tốc độ truyền (kiacutech thước cửa sổ) tigravem khả năng băng thocircng coacute thể cho đến khi coacute mất maacutet xảy ra additive tăng lecircn tăng CongWin bởi 1 MSS

mỗi RTT cho đến khi coacute mất maacutet xảy ra multiplicative giảm xuống bỏ CongWin trong

nửa giai đoạn sau khi mất maacutet

timekiacutech

thư

ớc

cửa

sổ

tắc

nghẽ

n

Tigravem kiếm băng thocircng

Transport Layer 3-90

TCP điều khiển tắc nghẽn chi tiết

becircn gửi hạn chế việc truyền LastByteSent-LastByteAcked

CongWin Cocircng thức

CongWin thay đổi chức năng lagrave nhận biết tắc nghẽn trecircn mạng

Lagravem thế nagraveo becircn gửi nhận biết tắc nghẽn

mất maacutet xảy ra = timeout hoặc 3 ack trugraveng lặp

becircn gửi giảm tốc độ (CongWin) sau khi mất maacutet xảy ra

3 cơ chế AIMD khởi động chậm thận trọng sau khi coacute

caacutec sự kiện timeout

tốc độ = CongWin

RTT Bytess

Transport Layer 3-91

TCP khởi động chậm

Khi kết nối bắt đầu CongWin = 1 MSS Viacute dụ MSS = 500 bytes

amp RTT = 200 ms tốc độ khởi tạo = 20

kbps

băng thocircng sẵn sagraveng coacute thể gtgt MSSRTT mong muốn nhanh

choacuteng tăng tốc lecircn tốc độ coacute thể đaacutep ứng

Khi kết nối bắt đầu tăng tốc lecircn rất nhanh cho đến khi sự cố mất maacutet xảy ra đầu tiecircn

Transport Layer 3-92

TCP khởi động chậm (tt)

Khi kết nối bắt đầu tăng tốc lecircn rất nhanh cho đến khi sự cố mất maacutet xảy ra đầu tiecircn nhacircn đocirci CongWin mỗi

RTT hoagraven thagravenh nhờ tăng CongWin ứng với mỗi ACK đatilde nhận

Tổng kết tốc độ khởi đầu lagrave chậm nhưng sau đoacute tăng tốc rất nhanh

Host A

1 đoạn

RTT

Host B

thời gian

2 đoạn

4 đoạn

Transport Layer 3-93

Tinh chếHỏi Khi nagraveo việc tăng

tốc trở thagravenh tuyến tiacutenh

Trả lời Khi CongWin đạt đến 12 giaacute trị của noacute trước khi timeout

Hiện thực Ngưỡng thay đổi Tại thời điểm coacute sự cố

mất maacutet ngưỡng được cagravei giaacute trị bằng frac12 của CongWin ngay trước đoacute

Transport Layer 3-94

Tinh chế nhận biết mất maacutet

Sau 3 ACK trugraveng lặp CongWin sẽ giảm 12 kiacutech thước cửa sổ

tăng tuyến tiacutenh nhưng sau sự cố

timeout CongWin thay giaacute trị

bằng 1 MSS kiacutech thước cửa sổ

tăng cấp lũy thừa khi đến một ngưỡng

thigrave tăng tuyến tiacutenh

3 ACK trugraveng nhau chỉ ra khả năng truyền của mạng timeout chỉ thị ldquonhiều cảnh baacuteordquo về tigravenh huống tắc nghẽn

Nguyecircn lyacute

Transport Layer 3-95

Tổng kết TCP điều khiển tắc nghẽn

Khi CongWin dưới Threshold becircn gửi đang trong giai đoạn khởi động chậm kiacutech thước cửa sổ tăng nhanh theo cấp lũy thừa

Khi CongWin trecircn Threshold becircn gửi đang trong giai đoạn traacutenh tắc nghẽn kiacutech thước cửa sổ tăng nhanh theo cấp tuyến tiacutenh

Khi coacute 3 ACK trugraveng lặp xảy ra Threshold = CongWin2 vagrave CongWin = Threshold

Khi timeout xảy ra Threshold = CongWin2 vagrave CongWin = 1 MSS

Transport Layer 3-96

TCP điều khiển tắc nghẽn becircn gửi

Trạng thaacutei Sự kiện TCP becircn gửi hagravenh động Diễn giải

Slow Start (SS)-Khởi động chậm

ACK baacuteo nhận cho dữ liệu chưa ACK trước đoacute

CongWin = CongWin + MSS If (CongWin gt Threshold) cagravei đặt trạng thaacutei ldquoTraacutenh tắc nghẽnrdquo

Hậu quả lagravem tăng gấp đocirci CongWin mỗi RTT

CongestionAvoidance (CA) ndashTraacutenh tắc nghẽn

ACK baacuteo nhận cho dữ liệu chưa ACK trước đoacute

CongWin = CongWin+MSS (MSSCongWin)

Additive tăng lecircn lagravem tăng CongWin lecircn 1 MSS mỗi RTT

SS hoặc CA Sự cố mất maacutet xảy ra khi thấy coacute 3 ACK trugraveng lặp

Threshold = CongWin2 CongWin = Thresholdcagravei đặt trạng thaacutei ldquoTraacutenh tắc nghẽnrdquo

Khocirci phục nhanh hiện thực giảm xuống multiplicative CongWin sẽ khocircng giảm xuống dưới 1 MSS

SS hoặc CA Timeout Threshold = CongWin2 CongWin = 1 MSScagravei đặt trạng thaacutei ldquoKhởi động chậmrdquo

Vagraveo chế độ ldquoKhởi động chậmrdquo

SS hoặc CA ACK trugraveng lặp

Đếm ACK tăng lecircn cho đoạn vừa được ACK

CongWin vagrave Threshold khocircng thay đổi

Transport Layer 3-97

TCP throughput

Throughout trung bigravenh của TCP biểu diễn qua kiacutech thước của sổ vagrave RTT Bỏ qua trạng thaacutei ldquoKhởi động chậmrdquo

Cho W lagrave kiacutech thước cửa sổ khi coacute mất maacutet xảy ra

Khi kiacutech thước cửa sổ = W lưu lượng = WRTT

Chỉ ngay sau khi mất maacutet cửa sổ giảm xuống = W2 lưu lượng = W2RTT

throughout trung bigravenh 075 WRTT

Transport Layer 3-98

TCP tương lai

Viacute dụ caacutec đoạn dagravei 1500 byte RTT 100ms lưu lượng 10 Gbps

Kiacutech thước cửa sổ yecircu cầu W = 83333 đoạn trecircn đường truyền

Lưu lượng trong caacutec trường hợp mất maacutet

L = 210-10

Phiecircn bản mới của TCP dagravenh cho nhu cầu tốc độ cao

LRTT

MSS221

Transport Layer 3-99

Mục tiecircu nếu K phiecircn lagravem việc TCP chia sẻ kết nối cổ chai của băng thocircng lagrave R mỗi phiecircn coacute tốc độ trung bigravenh lagrave RK

TCP kết nối 1

router cổ chaikhả năng R

TCP kết nối 2

TCP tiacutenh cocircng bằng

Transport Layer 3-100

Tại sao phải TCP cocircng bằng

2 phiecircn lagravem việc cạnh tranh nhau Additive tăng lưu lượng tăng multiplicative giảm lưu lượng tương xứng

R

R

chia sẻ băng thocircng bằng nhau

Connection 1 throughputConnect

ion 2

th

roughput

traacutenh tắc nghẽn additive tăng lecircnmất maacutet giảm cửa sổ bằng 12

traacutenh tắc nghẽn additive tăng lecircnmất maacutet giảm cửa sổ bằng 12

Transport Layer 3-101

TCP tiacutenh cocircng bằng (tt)

Tiacutenh cocircng bằng amp UDP nhiều ứng dụng

thường khocircng dugraveng TCP khocircng muốn tốc độ bị

điều tiết do điều khiển tắc nghẽn

Thay bằng dugraveng UDP truyền audiovideo với

tốc độ ổn định chịu được mất maacutet

Nghiecircn cứu giao thức thacircn thiện với TCP

Tiacutenh cocircng bằng amp caacutec kết nối TCP song song

khocircng coacute gigrave ngăn cản việc ứng dụng mở caacutec kết nối song song giữa 2 host

Trigravenh duyệt Web lagravem giống như thế

Viacute dụ tốc độ R hỗ trợ 9 kết nối ứng dụng mới yecircu cầu 1

TCP coacute tốc độ R10 ứng dụng mới yecircu cầu 11

TCP coacute tốc độ R2

Transport Layer 3-102

Mocirc higravenh trễ

Hỏi Mất bao lacircu để nhận 1 đối tượng từ Web server sau khi gửi yecircu cầu

Bỏ qua tắc nghẽn trễ bị ảnh hưởng bởi

thiết lập kết nối TCP trễ truyền dữ liệu khởi động chậm

Notation caacutec giả định Giả sử một kết nối giữa

client vagrave server coacute tốc độ R

S MSS (bits) O kiacutech thước đối tượng

(bits) khocircng truyền lại (khocircng

mất maacutet khocircng hỏng)

Kiacutech thước cửa sổ Giả định 1 cửa sổ tắc

nghẽn cố định coacute W đoạn Sau đoacute cửa sổ thay đổi

mocirc higravenh khởi động chậm

Transport Layer 3-103

Cửa sổ tắc nghẽn cố định (1)

Trường hợp đầu tiecircnWSR gt RTT + SR cho

đoạn đầu tiecircn trong cửa sổ trả về trước khi cửa sổ dữ liệu gửi ACK

trễ = 2RTT + OR

Transport Layer 3-104

Cửa sổ tắc nghẽn cố định (2)

Trường hợp thứ hai WSR lt RTT + SR sent

chờ cho ACK sau khi gửi dữ liệu

trễ = 2RTT + OR+ (K-1)[SR + RTT - WSR]

Transport Layer 3-105

TCP Mocirc higravenh trễ Khởi động chậm (1)

Bacircy giờ giả sử kiacutech thước cửa sổ tăng lecircn tugravey theo quaacute trigravenh khởi động chậm

Độ trễ của một đối tượng sẽ lagrave

R

S

R

SRTTP

R

ORTTLatency P )12(2

trong đoacute P lagrave số lần TCP rảnh ở tại server

1min KQP

- trong đoacute Q lagrave số lần server rảnh nếu đối tượng đatilde khởi tạo kiacutech thước

- vagrave K lagrave số lượng cửa sổ bao trugravem đối tượng

Transport Layer 3-106

TCP Mocirc higravenh trễ Khởi động chậm (2)

RTT

initia te TCPconnection

requestobject

first w indow= S R

second w indow= 2S R

third w indow= 4S R

fourth w indow= 8S R

com pletetransm issionobject

delivered

tim e atc lient

tim e atserver

Viacute dụbull OS = 15 đoạnbull K = 4 cửa sổbull Q = 2bull P = minK-1Q = 2

Server rảnh P=2 lần

Caacutec thagravenh phần trễbull 2 RTT dagravenh cho thiết lập kết nối vagrave yecircu cầubull OR để truyền đối tượngbullthời gian server rảnh bởi vigrave khởi động chậm

Server rảnh P = minK-1Q lần

Transport Layer 3-107

TCP Mocirc higravenh trễ(3)

R

S

R

SRTTPRTT

R

O

R

SRTT

R

SRTT

R

O

idleTimeRTTR

O

P

kP

k

P

pp

)12(][2

]2[2

2delay

1

1

1

th window after the timeidle 2 1 kR

SRTT

R

S k

ementacknowledg receivesserver until

segment send tostartsserver when from time RTTR

S

window kth the transmit totime2 1

R

Sk

RTT

initia te TCPconnection

requestobject

first w indow= S R

second w indow= 2S R

third w indow= 4S R

fourth w indow= 8S R

com pletetransm issionobject

delivered

tim e atc lient

tim e atserver

Transport Layer 3-108

TCP Mocirc higravenh trễ (4)

)1(log

)1(logmin

12min

222min

222min

2

2

110

110

S

OS

Okk

S

Ok

SOk

OSSSkK

k

k

k

caacutech tiacutenh toaacuten Q tương tự (xem HW)

K = số lượng cửa sổ bao trugravem đối tượngLagravem thế nagraveo tiacutenh được K

Transport Layer 3-109

HTTP Mocirc higravenh Giả sử trang Web chứa

1 trang HTML (kiacutech thước O bits) M higravenh ảnh (mỗi caacutei kiacutech thướcO bits)

HTTP khocircng bền vững M+1 TCP kết nối Thời gian đaacutep ứng = (M+1)OR + (M+1)2RTT + tổng số thời

gian rảnh HTTP bền vững

2 RTT để yecircu cầu vagrave nhận file HTML 1 RTT để yecircu cầu vagrave nhận M higravenh ảnh Thời gian đaacutep ứng = (M+1)OR + 3RTT + tổng số thời gian

rảnh HTTP khocircng bền vững với X kết nối song song

Giả sử MX lagrave số nguyecircn 1 TCP kết nối cho file MX thiết lập caacutec kết nối song song cho caacutec higravenh ảnh Thời gian đaacutep ứng = (M+1)OR + (MX + 1)2RTT + tổng số

thời gian rảnh

Transport Layer 3-110

02468

101214161820

28Kbps

100Kbps

1Mbps

10Mbps

non-persistent

persistent

parallel non-persistent

HTTP thời gian đaacutep ứng (giacircy)RTT = 100 msec O = 5 Kbytes M=10 vagrave X=5

Với băng thocircng thấp thời gian kết nối amp đaacutep ứng trội hơn thời gian truyền

Caacutec kết nối bền vững chỉ cho sự cải thiện khocircng đaacuteng kể trecircn caacutec kết nối song song

Transport Layer 3-111

0

10

20

30

40

50

60

70

28Kbps

100Kbps

1Mbps

10Mbps

non-persistent

persistent

parallel non-persistent

HTTP thời gian đaacutep ứng (giacircy)

RTT =1 sec O = 5 Kbytes M=10 and X=5

Với RTT lớn hơn thời gian đaacutep ứng trội hơn thời gian trễ chờ thiết lập kết nốiTCP amp khởi động chậm Caacutec kết nối bền vững bacircy giờ cho thấy cải thiện rotilde rệt đặc biệtvới caacutec mạng băng thocircng cao

Transport Layer 3-112

Chương 3 Tổng kết caacutec nguyecircn lyacute của caacutec

dịch vụ lớp transport multiplexing

demultiplexing truyền dữ liệu tin cậy điều khiển luồng điều khiển tắc nghẽn

khởi tạo vagrave hiện thực trong Internet UDP TCP

Tiếp theo nghiecircn cứu xong

caacutec vấn đề ldquongoagravei biecircnrdquo (caacutec lớp application transport)

chuẩn bị vagraveo phần ldquolotildeirdquo của mạng

  • Slide 1
  • Chương 3 Lớp Transport
  • Chương 3 Nội dung trigravenh bagravey
  • Caacutec dịch vụ vagrave giao thức Transport
  • Lớp Transport với lớp network
  • Caacutec giao thức lớp transport trecircn Internet
  • Slide 7
  • Multiplexingdemultiplexing
  • Demultiplexing lagravem việc như thế nagraveo
  • Demultiplexing khocircng kết nối
  • Demultiplexing khocircng kết nối (tiếp)
  • Demultiplexing hướng kết nối
  • Demultiplexing hướng kết nối (tiếp)
  • Demultiplexing hướng kết nối Threaded Web Server
  • Slide 15
  • UDP User Datagram Protocol [RFC 768]
  • UDP (tt)
  • UDP checksum
  • Viacute dụ Checksum
  • Slide 20
  • Caacutec nguyecircn lyacute truyền dữ liệu tin cậy
  • Slide 22
  • Slide 23
  • Truyền dữ liệu tin cậy
  • Slide 25
  • Rdt10 truyền dữ liệu tin cậy trecircn 1 kecircnh truyền tin cậy
  • Rdt20 kecircnh với caacutec lỗi
  • rdt20 đặc tả FSM
  • rdt20 hoạt động khi khocircng lỗi
  • rdt20 hoạt động khi coacute lỗi
  • rdt20 coacute lỗ hổng nghiecircm trọng
  • rdt21 người gửi quản lyacute caacutec ACKNAK bị hỏng
  • Slide 33
  • rdt21 thảo luận
  • rdt22 một giao thức khocircng cần NAK
  • rdt22 gửi nhận caacutec mảnh
  • rdt30 caacutec kecircnh với lỗi vagrave mất maacutet
  • rdt30 gửi
  • hagravenh động của rdt30
  • Slide 40
  • Hiệu suất của rdt30
  • rdt30 hoạt động dừng-vagrave-chờ
  • Caacutec giao thức Pipelined
  • Pipelining độ khả dụng tăng
  • Go-Back-N
  • GBN becircn gửi mở rộng FSM
  • GBN becircn nhận mở rộng FSM
  • GBN hoạt động
  • Lặp coacute lựa chọn
  • Lặp coacute lựa chọn caacutec cửa sổ gửi nhận
  • Slide 51
  • Hoạt động của lặp coacute lựa chọn
  • Lặp coacute lựa chọn tigravenh trạng khoacute giải quyết
  • Slide 54
  • TCP Tổng quan RFCs 793 1122 1323 2018 2581
  • TCP cấu truacutec đoạn
  • Caacutec số thứ tự TCP vagrave ACK
  • TCP Round Trip Time vagraveTimeout
  • TCP Round Trip Time vagrave Timeout
  • Viacute dụ đaacutenh giaacute RTT
  • Slide 61
  • TCP truyền dữ liệu tin cậy
  • TCP caacutec sự kiện
  • TCP becircn gửi (đơn giản)
  • TCP caacutec tigravenh huống truyền lại
  • TCP caacutec tigravenh huống truyền lại (tt)
  • TCP sinh ra ACK [RFC 1122 RFC 2581]
  • Truyền lại nhanh
  • Giải thuật truyền lại nhanh
  • Slide 70
  • TCP điều khiển luồng
  • TCP điều khiển luồng caacutech lagravem
  • Slide 73
  • TCP quản lyacute kết nối
  • TCP quản lyacute kết nối (tt)
  • Slide 76
  • Slide 77
  • Slide 78
  • Caacutec nguyecircn lyacute điều khiển tắc nghẽn
  • Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 1
  • Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 2
  • Slide 82
  • Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 3
  • Slide 84
  • Caacutec caacutech tiếp cận đối với điều khiển tắc nghẽn
  • Viacute dụ điều khiển tắc nghẽn ATM ABR
  • Slide 87
  • Slide 88
  • TCP điều khiển tắc nghẽn additive tăng lecircn multiplicative giảm xuống
  • TCP điều khiển tắc nghẽn chi tiết
  • TCP khởi động chậm
  • TCP khởi động chậm (tt)
  • Tinh chế
  • Tinh chế nhận biết mất maacutet
  • Tổng kết TCP điều khiển tắc nghẽn
  • TCP điều khiển tắc nghẽn becircn gửi
  • TCP throughput
  • TCP tương lai
  • TCP tiacutenh cocircng bằng
  • Tại sao phải TCP cocircng bằng
  • TCP tiacutenh cocircng bằng (tt)
  • Mocirc higravenh trễ
  • Cửa sổ tắc nghẽn cố định (1)
  • Cửa sổ tắc nghẽn cố định (2)
  • TCP Mocirc higravenh trễ Khởi động chậm (1)
  • TCP Mocirc higravenh trễ Khởi động chậm (2)
  • TCP Mocirc higravenh trễ(3)
  • TCP Mocirc higravenh trễ (4)
  • HTTP Mocirc higravenh
  • Slide 110
  • Slide 111
  • Chương 3 Tổng kết

Transport Layer 3-56

TCP cấu truacutec đoạn

port nguồn port điacutech

32 bits

dữ liệu ứng dụng(độ dagravei thay đổi)

số thứ tự

số ACKcửa sổ nhận

con trỏ URGchecksum

FSRPAUheadlen

notused

Tugravey chọn (độ dagravei thay đổi)

URG dữ liệu khẩn cấp(thường khocircng dugraveng)

ACK ACK hợp lệ

PSH push data now(thường khocircng dugraveng)

RST SYN FINthiết lập kết nối

(caacutec lệnh thiết lậpchia nhỏ)

số byte becircn nhận sẵn sagraveng chấp nhận

đếm bởi số bytecủa dữ liệu

Internetchecksum

(giống UDP)

Transport Layer 3-57

Caacutec số thứ tự TCP vagrave ACKCaacutec số thứ tự

dograveng byte ldquođaacutenh sốrdquo byte đầu tiecircn trong dữ liệu của đoạn

caacutec ACK số thứ tự của byte

kế tiếp được chờ đợi từ phiacutea becircn kia

ACK tiacutech lũyHỏi lagravem thế nagraveo becircn

nhận quản lyacute caacutec đoạn khocircng thứ tự Trả lời TCP khocircng

đề cập tugravey thuộc người hiện thực

Host A Host B

Seq=42 ACK=79 data = lsquoCrsquo

Seq=79 ACK=43 data = lsquoCrsquo

Seq=43 ACK=80

UsernhậplsquoCrsquo

host ACKsnhận phản hồi

lsquoCrsquo

host ACKsbaacuteo nhận

lsquoCrsquo phản hồingược lại lsquoCrsquo

timetigravenh huống telnet đơn giản

Transport Layer 3-58

TCP Round Trip Time vagraveTimeout

Hỏi Lagravem thế nagraveo để thiết lập giaacute trị TCP timeout

dagravei hơn RTT khaacutec với RTT

quaacute ngắn timeout sớm truyền lại khocircng

cần thiết quaacute dagravei phản ứng

chậm đối với việc mất maacutet goacutei

Hỏi Lagravem thế nagraveo để thiết lập RTT

SampleRTT thời gian được đo từ khi truyền đoạn đến khi baacuteo nhận ACK lờ đi việc truyền lại

SampleRTT sẽ thay đổi muốn ước lượng RTT ldquomượt hơnrdquo tiacutenh trung bigravenh một số giaacute

trị đo được gần đoacute khocircng chỉ SampleRTT hiện tại

Transport Layer 3-59

TCP Round Trip Time vagrave Timeout

EstimatedRTT = (1- )EstimatedRTT + SampleRTT

giaacute trị đặc trưng = 0125

Transport Layer 3-60

Viacute dụ đaacutenh giaacute RTTRTT gaiacsumassedu to fantasiaeurecomfr

100

150

200

250

300

350

1 8 15 22 29 36 43 50 57 64 71 78 85 92 99 106

time (seconnds)

RTT

(mill

isec

onds

)

SampleRTT Estimated RTT

Transport Layer 3-61

TCP Round Trip Time vagrave Timeout

Thiết lập timeout EstimtedRTT cộng ldquohệ số dự trữ an toagravenrdquo

sự biến thiecircn lớn trong EstimatedRTT -gt hệ số dự trữ an toagraven lớn hơn ước lượng đầu tiecircn về sự biến thiecircn của SampleRTT từ EstimatedRTT

TimeoutInterval = EstimatedRTT + 4DevRTT

DevRTT = (1-)DevRTT + |SampleRTT-EstimatedRTT|

(tiecircu biểu = 025)

Sau đoacute thiết lập timeout interval

Transport Layer 3-62

TCP truyền dữ liệu tin cậy

TCP tạo dịch vụ rdt trecircn dịch vụ khocircng tin cậy IP

caacutec đoạn Pipelined caacutec ACK tiacutech lũy TCP dugraveng bộ định thigrave

truyền lại đơn

Truyền lại được kiacutech hoạt bởi caacutec sự kiện timeout caacutec ack trugraveng lặp

luacutec đầu khảo saacutet caacutec becircn gửi TCP đơn giản lờ đi caacutec ack trugraveng lặp lờ đi điều khiển luồng

điều khiển tắc nghẽn

Transport Layer 3-63

TCP caacutec sự kiệndữ liệu đatilde nhận từ ứng

dụng tạo đoạn với số thứ

tự của noacute số thứ tự lagrave số theo

byte dữ liệu đầu tiecircn khởi động bộ định thigrave

nếu chưa chạy khoảng thời gian hết

hạn TimeOutInterval

timeout gửi lại đoạn nagraveo gacircy

ra timeout khởi động lại bộ định

thigrave Ack đatilde nhận

cập nhật caacutei gigrave sẽ được ACK

khởi động bộ định thigrave nếu coacute caacutec đoạn cograven chờ

Transport Layer 3-64

TCP becircn gửi(đơn giản)

NextSeqNum = InitialSeqNum SendBase = InitialSeqNum

loop (forever) switch(event)

event data received from application above create TCP segment with sequence number NextSeqNum if (timer currently not running) start timer pass segment to IP NextSeqNum = NextSeqNum + length(data)

event timer timeout retransmit not-yet-acknowledged segment with smallest sequence number start timer

event ACK received with ACK field value of y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer

end of loop forever

Chuacute thiacutechbull SendBase-1 byte vừa được ACK tiacutech lũy Viacute dụbull SendBase-1 = 71y= 73 vigrave thế becircn nhận muốn 73+ y gt SendBase vigrave thế dữ liệu mới được chấp nhận

Transport Layer 3-65

TCP caacutec tigravenh huống truyền lại

Host A

Seq=100 20 bytes data

ACK=100

timetimeout sớm

Host B

Seq=92 8 bytes data

ACK=120

Seq=92 8 bytes data

Seq=

92

tim

eout

ACK=120

Host A

Seq=92 8 bytes data

ACK=100

loss

tim

eout

tigravenh huống mất ACK

Host B

X

Seq=92 8 bytes data

ACK=100

time

Seq=

92

tim

eout

SendBase= 100

SendBase= 120

SendBase= 120

Sendbase= 100

Transport Layer 3-66

TCP caacutec tigravenh huống truyền lại (tt)Host A

Seq=92 8 bytes data

ACK=100

loss

tim

eout

Cumulative ACK scenario

Host B

X

Seq=100 20 bytes data

ACK=120

time

SendBase= 120

Transport Layer 3-67

TCP sinh ra ACK [RFC 1122 RFC 2581]

Sự kiện tại becircn nhận

Đoạn đến với đuacuteng số thứ tự mong muốn Tất cả dữ liệu đếnđatilde được ACK

Đoạn đến với đuacuteng số thứ tự mong muốn Một đoạn khaacutec đangchờ ACK

Caacutec đoạn đến khocircng thứ tựlớn hơn số thứ tự đoạn mong muốnCoacute khoảng trống

Đoạn đếnlấp đầy từng phần hoặc toagraven bộkhoảng trống

TCP becircn nhận hagravenh động

ACK trễ Chờ đến 500mscho đoạn kế tiếp Nếu khocircng coacute đoạnkế tiếp gửi ACK

Gửi ngay một ACK tiacutech lũy chấp nhậncho cả caacutec đoạn theo thứ tự

Gửi ngay ACK trugraveng lặp chỉ thị số thứ tựđoạn của byte kế tiếp đang mong chờ

Gửi ngay ACK với điều kiện lagrave đoạnbắt đầu ngay điểm coacute khoảng trống

Transport Layer 3-68

Truyền lại nhanh

Chu kỳ Time-out thường tương đối dagravei độ trễ dagravei trước khi gửi

lại goacutei đatilde mất

Xaacutec nhận caacutec đoạn đatilde mất bằng caacutec ACK trugraveng lặp becircn gửi thường gửi

nhiều đoạn song song Nếu đoạn bị mất sẽ

xảy ra tigravenh trạng giống như nhiều ACK trugraveng nhau

Nếu becircn gửi nhận 3 ACK của cugraveng một dữ liệu noacute cho lagrave đoạn sau dữ liệu đatilde ACK bị mất Truyền lại nhanh gửi

lại đoạn trước khi bộ định thigrave hết hạn

Transport Layer 3-69

sự kiện ACK đatilde nhận với trường lagrave y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer else increment count of dup ACKs received for y if (count of dup ACKs received for y = 3) resend segment with sequence number y

Giải thuật truyền lại nhanh

một ACK trugraveng lặp cho đoạn đatilde được ACK

Truyền lại nhanh

Transport Layer 3-70

Chương 3 Nội dung trigravenh bagravey

31 Caacutec dịch vụ lớp Transport

32 Multiplexing vagrave demultiplexing

33 Vận chuyển khocircng kết nối UDP

34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy

35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối

36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn

37 Điều khiển tắc nghẽn TCP

Transport Layer 3-71

TCP điều khiển luồng

becircn nhận của kết nối TCP coacute một bộ đệm nhận

dịch vụ so trugraveng tốc độ so trugraveng tốc độ gửi với tốc độ nhận của ứng dụng

tiến trigravenh ứng dụng coacute thể chậm tại luacutec đọc bộ đệm

becircn gửi sẽ khocircng lagravem tragraven bộ đệm vigrave truyền quaacute nhiều vagrave

quaacute nhanh

điều khiển luồng

Transport Layer 3-72

TCP điều khiển luồng caacutech lagravem

(Giả sử becircn nhận TCP loại bỏ caacutec đoạn khocircng coacute thứ tự)

dự phograveng trong bộ đệm= RcvWindow

= RcvBuffer-[LastByteRcvd - LastByteRead]

Becircn nhận thocircng baacuteo khoảng dự trữ nhờ giaacute trị RcvWindow trong caacutec đoạn

Becircn gửi hạn chế dữ liệu khocircng được ACK vagraveo RcvWindow bảo đảm bộ đệm nhận

khocircng tragraven

Transport Layer 3-73

Chương 3 Nội dung trigravenh bagravey

31 Caacutec dịch vụ lớp Transport

32 Multiplexing vagrave demultiplexing

33 Vận chuyển khocircng kết nối UDP

34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy

35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối

36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn

37 Điều khiển tắc nghẽn TCP

Transport Layer 3-74

TCP quản lyacute kết nối

Chuacute yacute Becircn gửi vagrave becircn nhận TCP thiết lập ldquokết nốirdquo trước khi trao đổi dữ liệu

khởi tạo caacutec biến TCP caacutec số thứ tự đoạn thocircng tin caacutec bộ đệm điều

khiển luồng (như RcvWindow)

client người khởi xướng kết nối

Socket clientSocket = new Socket(hostnameport

number) server được tiếp xuacutec bởi

client Socket connectionSocket =

welcomeSocketaccept()

3 phương phaacutep bắt tay

Bước 1 client host gửi đoạnTCP SYN đến server xaacutec định số thứ tự khởi đầu khocircng phải dữ liệu

Bước 2 server host nhận SYN trả lời với đoạn SYNACK

server cấp phaacutet caacutec bộ đệm

xaacutec định số thứ tự khởi đầuBước 3 client nhận SYNACK trả

lời với đoạn ACK (coacute thể chứa dữ liệu)

Transport Layer 3-75

TCP quản lyacute kết nối (tt)

Đoacuteng một kết nối

client đoacuteng socket clientSocketclose()

Bước 1 client gửi đoạn điều khiển TCP FIN đến server

Bước 2 server nhận FIN trả lời với ACK Đoacuteng kết nối gửi FIN

client

FIN

server

ACK

ACK

FIN

đoacuteng

đoacuteng

đatilde đoacutengthời g

ian c

hờ

Transport Layer 3-76

TCP quản lyacute kết nối (tt)

Bước 3 client nhận FIN trả lời với ACK

Trong khoảng ldquothời gian chờrdquo ndash sẽ phản hồi với ACK để nhận caacutec FIN

Bước 4 server nhận ACK Kết nối đatilde đoacuteng

Chuacute yacute với một sửa đổi nhỏ coacute thể quản lyacute nhiều FIN đồng thời

client

FIN

server

ACK

ACK

FIN

đang đoacuteng

đang đoacuteng

đatilde đoacuteng

thời g

ian c

hờ

đatilde đoacuteng

Transport Layer 3-77

TCP quản lyacute kết nối (tt)

chu kỳ sống củaTCP client

chu kỳ sống củaTCP server

Transport Layer 3-78

Chương 3 Nội dung trigravenh bagravey

31 Caacutec dịch vụ lớp Transport

32 Multiplexing vagrave demultiplexing

33 Vận chuyển khocircng kết nối UDP

34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy

35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối

36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn

37 Điều khiển tắc nghẽn TCP

Transport Layer 3-79

Caacutec nguyecircn lyacute điều khiển tắc nghẽn

Tắc nghẽn ldquoquaacute nhiều nguồn gửi quaacute nhanh vagrave quaacute nhiều

dữ liệu đến mạngrdquo khaacutec với điều khiển luồng caacutec biểu hiện

caacutec goacutei bị mất (tragraven bộ đệm tại caacutec router) caacutec độ trễ quaacute dagravei (xếp hagraveng trong bộ đệm

của router) lagrave 1 trong 10 vấn đề nan giải nhất

Transport Layer 3-80

Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 1

2 gửi 2 nhận 1 router caacutec bộ

đệm khocircng giới hạn

khocircng coacute truyền lại

caacutec độ trễ lớn hơn khi tắc nghẽn

năng suất coacute thể đạt tối đa

unlimited shared output link buffers

Host Ain original data

Host B

out

Transport Layer 3-81

Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 2

1 router caacutec bộ đệm coacute giới hạn becircn gửi truyền lại caacutec goacutei đatilde mất

chia sẻ vocirc hạncaacutec bộ đệm ouput

Host A in dữ liệu gốc

Host B

out

in dữ liệu gốc cugraveng với dữ liệu truyền lại

Transport Layer 3-82

Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 2 luocircn luocircn

truyền lại ldquohoagraven toagravenrdquo chỉ khi mất maacutet

truyền lại vigrave trễ (khocircng mất) lagravem cho lớn hơn với cugraveng

in

out

=

in

out

gt

in

out

ldquocaacutec chi phiacuterdquo của tắc nghẽn nhiều việc (truyền lại) caacutec truyền lại khocircng cần thiết liecircn kết nhiều bản sao của

goacutei

R2

R2in

ou

t

b

R2

R2in

ou

t

a

R2

R2in

ou

t

c

R4

R3

Transport Layer 3-83

Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 3 4 người gửi caacutec đường qua nhiều hop timeouttruyền lại

in

Hỏi điều gigrave xảy ra nếu vagrave tăng lecircn

in

chia sẻ vocirc hạncaacutec bộ đệm ouput

Host Ain dữ liệu gốc

Host B

out

in dữ liệu gốc cugraveng với dữ liệu truyền lại

Transport Layer 3-84

Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 3

ldquochi phiacuterdquo khaacutec của tắc nghẽn khi caacutec goacutei bị bỏ bất kỳ ldquokhả năng truyền

upstream dugraveng cho goacutei đoacute sẽ bị latildeng phiacuterdquo

Host A

Host B

o

u

t

Transport Layer 3-85

Caacutec caacutech tiếp cận đối với điều khiển tắc nghẽn

điều khiển tắc nghẽn end-end

khocircng coacute phản hồi rotilde ragraveng từ mạng

tắc nghẽn được suy ra từ việc quan saacutet caacutec hệ thống đầu cuối coacute mất maacutet trễ

tiếp cận được quản lyacute bởi TCP

điều khiển tắc nghẽn coacute sự hỗ trợ của mạng

caacutec router cung cấp phản hồi về caacutec hệ thống đầu cuối 1 bit duy nhất chỉ thị

tắc nghẽn (SNA DECbit TCPIP ECN ATM)

tốc độ sẽ gửi được xaacutec định rotilde ragraveng

2 caacutech

Transport Layer 3-86

Viacute dụ điều khiển tắc nghẽn ATM ABR

ABR tốc độ bit sẵn sagraveng

ldquodịch vụ mềm dẻordquo nếu đường gửi ldquochưa

hếtrdquo becircn gửi sẽ dugraveng

băng thocircng sẵn sagraveng nếu đường gửi tắc

nghẽn becircn gửi điều tiết với

tốc độ tối thiểu

RM (resource management)

gửi bởi becircn gửi rải raacutec với caacutec ocirc dữ liệu

caacutec bit trong ocirc thiết lập bởi caacutec switch bit NI khocircng tăng tốc độ

(tắc nghẽn nhẹ) bit CI tắc nghẽn rotilde rệt

Caacutec ocirc RM được trả về becircn gửi từ becircn nhận với nguyecircn vẹn caacutec bit

Transport Layer 3-87

Viacute dụ điều khiển tắc nghẽn ATM ABR

trường 2-byte ER trong ocirc RM switch đatilde tắc nghẽn coacute thể coacute giaacute trị ER thấp hơn trong ocirc tốc độ gửi do đoacute coacute thể được hỗ trợ tối đa trecircn đường

EFCI bit trong caacutec ocirc dữ liệu được cagravei giaacute trị 1 trong switch đatilde tắc nghẽn nếu ocirc dữ liệu đứng trước ocirc RM coacute cagravei EFCI becircn gửi sẽ cagravei

bit CI trong ocirc RM trả về

Transport Layer 3-88

Chương 3 Nội dung trigravenh bagravey

31 Caacutec dịch vụ lớp Transport

32 Multiplexing vagrave demultiplexing

33 Vận chuyển khocircng kết nối UDP

34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy

35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối

36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn

37 Điều khiển tắc nghẽn TCP

Transport Layer 3-89

TCP điều khiển tắc nghẽn additive tăng lecircn multiplicative giảm xuống

8 Kbytes

16 Kbytes

24 Kbytes

time

congestionwindow

Caacutech tiếp cận tăng tốc độ truyền (kiacutech thước cửa sổ) tigravem khả năng băng thocircng coacute thể cho đến khi coacute mất maacutet xảy ra additive tăng lecircn tăng CongWin bởi 1 MSS

mỗi RTT cho đến khi coacute mất maacutet xảy ra multiplicative giảm xuống bỏ CongWin trong

nửa giai đoạn sau khi mất maacutet

timekiacutech

thư

ớc

cửa

sổ

tắc

nghẽ

n

Tigravem kiếm băng thocircng

Transport Layer 3-90

TCP điều khiển tắc nghẽn chi tiết

becircn gửi hạn chế việc truyền LastByteSent-LastByteAcked

CongWin Cocircng thức

CongWin thay đổi chức năng lagrave nhận biết tắc nghẽn trecircn mạng

Lagravem thế nagraveo becircn gửi nhận biết tắc nghẽn

mất maacutet xảy ra = timeout hoặc 3 ack trugraveng lặp

becircn gửi giảm tốc độ (CongWin) sau khi mất maacutet xảy ra

3 cơ chế AIMD khởi động chậm thận trọng sau khi coacute

caacutec sự kiện timeout

tốc độ = CongWin

RTT Bytess

Transport Layer 3-91

TCP khởi động chậm

Khi kết nối bắt đầu CongWin = 1 MSS Viacute dụ MSS = 500 bytes

amp RTT = 200 ms tốc độ khởi tạo = 20

kbps

băng thocircng sẵn sagraveng coacute thể gtgt MSSRTT mong muốn nhanh

choacuteng tăng tốc lecircn tốc độ coacute thể đaacutep ứng

Khi kết nối bắt đầu tăng tốc lecircn rất nhanh cho đến khi sự cố mất maacutet xảy ra đầu tiecircn

Transport Layer 3-92

TCP khởi động chậm (tt)

Khi kết nối bắt đầu tăng tốc lecircn rất nhanh cho đến khi sự cố mất maacutet xảy ra đầu tiecircn nhacircn đocirci CongWin mỗi

RTT hoagraven thagravenh nhờ tăng CongWin ứng với mỗi ACK đatilde nhận

Tổng kết tốc độ khởi đầu lagrave chậm nhưng sau đoacute tăng tốc rất nhanh

Host A

1 đoạn

RTT

Host B

thời gian

2 đoạn

4 đoạn

Transport Layer 3-93

Tinh chếHỏi Khi nagraveo việc tăng

tốc trở thagravenh tuyến tiacutenh

Trả lời Khi CongWin đạt đến 12 giaacute trị của noacute trước khi timeout

Hiện thực Ngưỡng thay đổi Tại thời điểm coacute sự cố

mất maacutet ngưỡng được cagravei giaacute trị bằng frac12 của CongWin ngay trước đoacute

Transport Layer 3-94

Tinh chế nhận biết mất maacutet

Sau 3 ACK trugraveng lặp CongWin sẽ giảm 12 kiacutech thước cửa sổ

tăng tuyến tiacutenh nhưng sau sự cố

timeout CongWin thay giaacute trị

bằng 1 MSS kiacutech thước cửa sổ

tăng cấp lũy thừa khi đến một ngưỡng

thigrave tăng tuyến tiacutenh

3 ACK trugraveng nhau chỉ ra khả năng truyền của mạng timeout chỉ thị ldquonhiều cảnh baacuteordquo về tigravenh huống tắc nghẽn

Nguyecircn lyacute

Transport Layer 3-95

Tổng kết TCP điều khiển tắc nghẽn

Khi CongWin dưới Threshold becircn gửi đang trong giai đoạn khởi động chậm kiacutech thước cửa sổ tăng nhanh theo cấp lũy thừa

Khi CongWin trecircn Threshold becircn gửi đang trong giai đoạn traacutenh tắc nghẽn kiacutech thước cửa sổ tăng nhanh theo cấp tuyến tiacutenh

Khi coacute 3 ACK trugraveng lặp xảy ra Threshold = CongWin2 vagrave CongWin = Threshold

Khi timeout xảy ra Threshold = CongWin2 vagrave CongWin = 1 MSS

Transport Layer 3-96

TCP điều khiển tắc nghẽn becircn gửi

Trạng thaacutei Sự kiện TCP becircn gửi hagravenh động Diễn giải

Slow Start (SS)-Khởi động chậm

ACK baacuteo nhận cho dữ liệu chưa ACK trước đoacute

CongWin = CongWin + MSS If (CongWin gt Threshold) cagravei đặt trạng thaacutei ldquoTraacutenh tắc nghẽnrdquo

Hậu quả lagravem tăng gấp đocirci CongWin mỗi RTT

CongestionAvoidance (CA) ndashTraacutenh tắc nghẽn

ACK baacuteo nhận cho dữ liệu chưa ACK trước đoacute

CongWin = CongWin+MSS (MSSCongWin)

Additive tăng lecircn lagravem tăng CongWin lecircn 1 MSS mỗi RTT

SS hoặc CA Sự cố mất maacutet xảy ra khi thấy coacute 3 ACK trugraveng lặp

Threshold = CongWin2 CongWin = Thresholdcagravei đặt trạng thaacutei ldquoTraacutenh tắc nghẽnrdquo

Khocirci phục nhanh hiện thực giảm xuống multiplicative CongWin sẽ khocircng giảm xuống dưới 1 MSS

SS hoặc CA Timeout Threshold = CongWin2 CongWin = 1 MSScagravei đặt trạng thaacutei ldquoKhởi động chậmrdquo

Vagraveo chế độ ldquoKhởi động chậmrdquo

SS hoặc CA ACK trugraveng lặp

Đếm ACK tăng lecircn cho đoạn vừa được ACK

CongWin vagrave Threshold khocircng thay đổi

Transport Layer 3-97

TCP throughput

Throughout trung bigravenh của TCP biểu diễn qua kiacutech thước của sổ vagrave RTT Bỏ qua trạng thaacutei ldquoKhởi động chậmrdquo

Cho W lagrave kiacutech thước cửa sổ khi coacute mất maacutet xảy ra

Khi kiacutech thước cửa sổ = W lưu lượng = WRTT

Chỉ ngay sau khi mất maacutet cửa sổ giảm xuống = W2 lưu lượng = W2RTT

throughout trung bigravenh 075 WRTT

Transport Layer 3-98

TCP tương lai

Viacute dụ caacutec đoạn dagravei 1500 byte RTT 100ms lưu lượng 10 Gbps

Kiacutech thước cửa sổ yecircu cầu W = 83333 đoạn trecircn đường truyền

Lưu lượng trong caacutec trường hợp mất maacutet

L = 210-10

Phiecircn bản mới của TCP dagravenh cho nhu cầu tốc độ cao

LRTT

MSS221

Transport Layer 3-99

Mục tiecircu nếu K phiecircn lagravem việc TCP chia sẻ kết nối cổ chai của băng thocircng lagrave R mỗi phiecircn coacute tốc độ trung bigravenh lagrave RK

TCP kết nối 1

router cổ chaikhả năng R

TCP kết nối 2

TCP tiacutenh cocircng bằng

Transport Layer 3-100

Tại sao phải TCP cocircng bằng

2 phiecircn lagravem việc cạnh tranh nhau Additive tăng lưu lượng tăng multiplicative giảm lưu lượng tương xứng

R

R

chia sẻ băng thocircng bằng nhau

Connection 1 throughputConnect

ion 2

th

roughput

traacutenh tắc nghẽn additive tăng lecircnmất maacutet giảm cửa sổ bằng 12

traacutenh tắc nghẽn additive tăng lecircnmất maacutet giảm cửa sổ bằng 12

Transport Layer 3-101

TCP tiacutenh cocircng bằng (tt)

Tiacutenh cocircng bằng amp UDP nhiều ứng dụng

thường khocircng dugraveng TCP khocircng muốn tốc độ bị

điều tiết do điều khiển tắc nghẽn

Thay bằng dugraveng UDP truyền audiovideo với

tốc độ ổn định chịu được mất maacutet

Nghiecircn cứu giao thức thacircn thiện với TCP

Tiacutenh cocircng bằng amp caacutec kết nối TCP song song

khocircng coacute gigrave ngăn cản việc ứng dụng mở caacutec kết nối song song giữa 2 host

Trigravenh duyệt Web lagravem giống như thế

Viacute dụ tốc độ R hỗ trợ 9 kết nối ứng dụng mới yecircu cầu 1

TCP coacute tốc độ R10 ứng dụng mới yecircu cầu 11

TCP coacute tốc độ R2

Transport Layer 3-102

Mocirc higravenh trễ

Hỏi Mất bao lacircu để nhận 1 đối tượng từ Web server sau khi gửi yecircu cầu

Bỏ qua tắc nghẽn trễ bị ảnh hưởng bởi

thiết lập kết nối TCP trễ truyền dữ liệu khởi động chậm

Notation caacutec giả định Giả sử một kết nối giữa

client vagrave server coacute tốc độ R

S MSS (bits) O kiacutech thước đối tượng

(bits) khocircng truyền lại (khocircng

mất maacutet khocircng hỏng)

Kiacutech thước cửa sổ Giả định 1 cửa sổ tắc

nghẽn cố định coacute W đoạn Sau đoacute cửa sổ thay đổi

mocirc higravenh khởi động chậm

Transport Layer 3-103

Cửa sổ tắc nghẽn cố định (1)

Trường hợp đầu tiecircnWSR gt RTT + SR cho

đoạn đầu tiecircn trong cửa sổ trả về trước khi cửa sổ dữ liệu gửi ACK

trễ = 2RTT + OR

Transport Layer 3-104

Cửa sổ tắc nghẽn cố định (2)

Trường hợp thứ hai WSR lt RTT + SR sent

chờ cho ACK sau khi gửi dữ liệu

trễ = 2RTT + OR+ (K-1)[SR + RTT - WSR]

Transport Layer 3-105

TCP Mocirc higravenh trễ Khởi động chậm (1)

Bacircy giờ giả sử kiacutech thước cửa sổ tăng lecircn tugravey theo quaacute trigravenh khởi động chậm

Độ trễ của một đối tượng sẽ lagrave

R

S

R

SRTTP

R

ORTTLatency P )12(2

trong đoacute P lagrave số lần TCP rảnh ở tại server

1min KQP

- trong đoacute Q lagrave số lần server rảnh nếu đối tượng đatilde khởi tạo kiacutech thước

- vagrave K lagrave số lượng cửa sổ bao trugravem đối tượng

Transport Layer 3-106

TCP Mocirc higravenh trễ Khởi động chậm (2)

RTT

initia te TCPconnection

requestobject

first w indow= S R

second w indow= 2S R

third w indow= 4S R

fourth w indow= 8S R

com pletetransm issionobject

delivered

tim e atc lient

tim e atserver

Viacute dụbull OS = 15 đoạnbull K = 4 cửa sổbull Q = 2bull P = minK-1Q = 2

Server rảnh P=2 lần

Caacutec thagravenh phần trễbull 2 RTT dagravenh cho thiết lập kết nối vagrave yecircu cầubull OR để truyền đối tượngbullthời gian server rảnh bởi vigrave khởi động chậm

Server rảnh P = minK-1Q lần

Transport Layer 3-107

TCP Mocirc higravenh trễ(3)

R

S

R

SRTTPRTT

R

O

R

SRTT

R

SRTT

R

O

idleTimeRTTR

O

P

kP

k

P

pp

)12(][2

]2[2

2delay

1

1

1

th window after the timeidle 2 1 kR

SRTT

R

S k

ementacknowledg receivesserver until

segment send tostartsserver when from time RTTR

S

window kth the transmit totime2 1

R

Sk

RTT

initia te TCPconnection

requestobject

first w indow= S R

second w indow= 2S R

third w indow= 4S R

fourth w indow= 8S R

com pletetransm issionobject

delivered

tim e atc lient

tim e atserver

Transport Layer 3-108

TCP Mocirc higravenh trễ (4)

)1(log

)1(logmin

12min

222min

222min

2

2

110

110

S

OS

Okk

S

Ok

SOk

OSSSkK

k

k

k

caacutech tiacutenh toaacuten Q tương tự (xem HW)

K = số lượng cửa sổ bao trugravem đối tượngLagravem thế nagraveo tiacutenh được K

Transport Layer 3-109

HTTP Mocirc higravenh Giả sử trang Web chứa

1 trang HTML (kiacutech thước O bits) M higravenh ảnh (mỗi caacutei kiacutech thướcO bits)

HTTP khocircng bền vững M+1 TCP kết nối Thời gian đaacutep ứng = (M+1)OR + (M+1)2RTT + tổng số thời

gian rảnh HTTP bền vững

2 RTT để yecircu cầu vagrave nhận file HTML 1 RTT để yecircu cầu vagrave nhận M higravenh ảnh Thời gian đaacutep ứng = (M+1)OR + 3RTT + tổng số thời gian

rảnh HTTP khocircng bền vững với X kết nối song song

Giả sử MX lagrave số nguyecircn 1 TCP kết nối cho file MX thiết lập caacutec kết nối song song cho caacutec higravenh ảnh Thời gian đaacutep ứng = (M+1)OR + (MX + 1)2RTT + tổng số

thời gian rảnh

Transport Layer 3-110

02468

101214161820

28Kbps

100Kbps

1Mbps

10Mbps

non-persistent

persistent

parallel non-persistent

HTTP thời gian đaacutep ứng (giacircy)RTT = 100 msec O = 5 Kbytes M=10 vagrave X=5

Với băng thocircng thấp thời gian kết nối amp đaacutep ứng trội hơn thời gian truyền

Caacutec kết nối bền vững chỉ cho sự cải thiện khocircng đaacuteng kể trecircn caacutec kết nối song song

Transport Layer 3-111

0

10

20

30

40

50

60

70

28Kbps

100Kbps

1Mbps

10Mbps

non-persistent

persistent

parallel non-persistent

HTTP thời gian đaacutep ứng (giacircy)

RTT =1 sec O = 5 Kbytes M=10 and X=5

Với RTT lớn hơn thời gian đaacutep ứng trội hơn thời gian trễ chờ thiết lập kết nốiTCP amp khởi động chậm Caacutec kết nối bền vững bacircy giờ cho thấy cải thiện rotilde rệt đặc biệtvới caacutec mạng băng thocircng cao

Transport Layer 3-112

Chương 3 Tổng kết caacutec nguyecircn lyacute của caacutec

dịch vụ lớp transport multiplexing

demultiplexing truyền dữ liệu tin cậy điều khiển luồng điều khiển tắc nghẽn

khởi tạo vagrave hiện thực trong Internet UDP TCP

Tiếp theo nghiecircn cứu xong

caacutec vấn đề ldquongoagravei biecircnrdquo (caacutec lớp application transport)

chuẩn bị vagraveo phần ldquolotildeirdquo của mạng

  • Slide 1
  • Chương 3 Lớp Transport
  • Chương 3 Nội dung trigravenh bagravey
  • Caacutec dịch vụ vagrave giao thức Transport
  • Lớp Transport với lớp network
  • Caacutec giao thức lớp transport trecircn Internet
  • Slide 7
  • Multiplexingdemultiplexing
  • Demultiplexing lagravem việc như thế nagraveo
  • Demultiplexing khocircng kết nối
  • Demultiplexing khocircng kết nối (tiếp)
  • Demultiplexing hướng kết nối
  • Demultiplexing hướng kết nối (tiếp)
  • Demultiplexing hướng kết nối Threaded Web Server
  • Slide 15
  • UDP User Datagram Protocol [RFC 768]
  • UDP (tt)
  • UDP checksum
  • Viacute dụ Checksum
  • Slide 20
  • Caacutec nguyecircn lyacute truyền dữ liệu tin cậy
  • Slide 22
  • Slide 23
  • Truyền dữ liệu tin cậy
  • Slide 25
  • Rdt10 truyền dữ liệu tin cậy trecircn 1 kecircnh truyền tin cậy
  • Rdt20 kecircnh với caacutec lỗi
  • rdt20 đặc tả FSM
  • rdt20 hoạt động khi khocircng lỗi
  • rdt20 hoạt động khi coacute lỗi
  • rdt20 coacute lỗ hổng nghiecircm trọng
  • rdt21 người gửi quản lyacute caacutec ACKNAK bị hỏng
  • Slide 33
  • rdt21 thảo luận
  • rdt22 một giao thức khocircng cần NAK
  • rdt22 gửi nhận caacutec mảnh
  • rdt30 caacutec kecircnh với lỗi vagrave mất maacutet
  • rdt30 gửi
  • hagravenh động của rdt30
  • Slide 40
  • Hiệu suất của rdt30
  • rdt30 hoạt động dừng-vagrave-chờ
  • Caacutec giao thức Pipelined
  • Pipelining độ khả dụng tăng
  • Go-Back-N
  • GBN becircn gửi mở rộng FSM
  • GBN becircn nhận mở rộng FSM
  • GBN hoạt động
  • Lặp coacute lựa chọn
  • Lặp coacute lựa chọn caacutec cửa sổ gửi nhận
  • Slide 51
  • Hoạt động của lặp coacute lựa chọn
  • Lặp coacute lựa chọn tigravenh trạng khoacute giải quyết
  • Slide 54
  • TCP Tổng quan RFCs 793 1122 1323 2018 2581
  • TCP cấu truacutec đoạn
  • Caacutec số thứ tự TCP vagrave ACK
  • TCP Round Trip Time vagraveTimeout
  • TCP Round Trip Time vagrave Timeout
  • Viacute dụ đaacutenh giaacute RTT
  • Slide 61
  • TCP truyền dữ liệu tin cậy
  • TCP caacutec sự kiện
  • TCP becircn gửi (đơn giản)
  • TCP caacutec tigravenh huống truyền lại
  • TCP caacutec tigravenh huống truyền lại (tt)
  • TCP sinh ra ACK [RFC 1122 RFC 2581]
  • Truyền lại nhanh
  • Giải thuật truyền lại nhanh
  • Slide 70
  • TCP điều khiển luồng
  • TCP điều khiển luồng caacutech lagravem
  • Slide 73
  • TCP quản lyacute kết nối
  • TCP quản lyacute kết nối (tt)
  • Slide 76
  • Slide 77
  • Slide 78
  • Caacutec nguyecircn lyacute điều khiển tắc nghẽn
  • Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 1
  • Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 2
  • Slide 82
  • Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 3
  • Slide 84
  • Caacutec caacutech tiếp cận đối với điều khiển tắc nghẽn
  • Viacute dụ điều khiển tắc nghẽn ATM ABR
  • Slide 87
  • Slide 88
  • TCP điều khiển tắc nghẽn additive tăng lecircn multiplicative giảm xuống
  • TCP điều khiển tắc nghẽn chi tiết
  • TCP khởi động chậm
  • TCP khởi động chậm (tt)
  • Tinh chế
  • Tinh chế nhận biết mất maacutet
  • Tổng kết TCP điều khiển tắc nghẽn
  • TCP điều khiển tắc nghẽn becircn gửi
  • TCP throughput
  • TCP tương lai
  • TCP tiacutenh cocircng bằng
  • Tại sao phải TCP cocircng bằng
  • TCP tiacutenh cocircng bằng (tt)
  • Mocirc higravenh trễ
  • Cửa sổ tắc nghẽn cố định (1)
  • Cửa sổ tắc nghẽn cố định (2)
  • TCP Mocirc higravenh trễ Khởi động chậm (1)
  • TCP Mocirc higravenh trễ Khởi động chậm (2)
  • TCP Mocirc higravenh trễ(3)
  • TCP Mocirc higravenh trễ (4)
  • HTTP Mocirc higravenh
  • Slide 110
  • Slide 111
  • Chương 3 Tổng kết

Transport Layer 3-57

Caacutec số thứ tự TCP vagrave ACKCaacutec số thứ tự

dograveng byte ldquođaacutenh sốrdquo byte đầu tiecircn trong dữ liệu của đoạn

caacutec ACK số thứ tự của byte

kế tiếp được chờ đợi từ phiacutea becircn kia

ACK tiacutech lũyHỏi lagravem thế nagraveo becircn

nhận quản lyacute caacutec đoạn khocircng thứ tự Trả lời TCP khocircng

đề cập tugravey thuộc người hiện thực

Host A Host B

Seq=42 ACK=79 data = lsquoCrsquo

Seq=79 ACK=43 data = lsquoCrsquo

Seq=43 ACK=80

UsernhậplsquoCrsquo

host ACKsnhận phản hồi

lsquoCrsquo

host ACKsbaacuteo nhận

lsquoCrsquo phản hồingược lại lsquoCrsquo

timetigravenh huống telnet đơn giản

Transport Layer 3-58

TCP Round Trip Time vagraveTimeout

Hỏi Lagravem thế nagraveo để thiết lập giaacute trị TCP timeout

dagravei hơn RTT khaacutec với RTT

quaacute ngắn timeout sớm truyền lại khocircng

cần thiết quaacute dagravei phản ứng

chậm đối với việc mất maacutet goacutei

Hỏi Lagravem thế nagraveo để thiết lập RTT

SampleRTT thời gian được đo từ khi truyền đoạn đến khi baacuteo nhận ACK lờ đi việc truyền lại

SampleRTT sẽ thay đổi muốn ước lượng RTT ldquomượt hơnrdquo tiacutenh trung bigravenh một số giaacute

trị đo được gần đoacute khocircng chỉ SampleRTT hiện tại

Transport Layer 3-59

TCP Round Trip Time vagrave Timeout

EstimatedRTT = (1- )EstimatedRTT + SampleRTT

giaacute trị đặc trưng = 0125

Transport Layer 3-60

Viacute dụ đaacutenh giaacute RTTRTT gaiacsumassedu to fantasiaeurecomfr

100

150

200

250

300

350

1 8 15 22 29 36 43 50 57 64 71 78 85 92 99 106

time (seconnds)

RTT

(mill

isec

onds

)

SampleRTT Estimated RTT

Transport Layer 3-61

TCP Round Trip Time vagrave Timeout

Thiết lập timeout EstimtedRTT cộng ldquohệ số dự trữ an toagravenrdquo

sự biến thiecircn lớn trong EstimatedRTT -gt hệ số dự trữ an toagraven lớn hơn ước lượng đầu tiecircn về sự biến thiecircn của SampleRTT từ EstimatedRTT

TimeoutInterval = EstimatedRTT + 4DevRTT

DevRTT = (1-)DevRTT + |SampleRTT-EstimatedRTT|

(tiecircu biểu = 025)

Sau đoacute thiết lập timeout interval

Transport Layer 3-62

TCP truyền dữ liệu tin cậy

TCP tạo dịch vụ rdt trecircn dịch vụ khocircng tin cậy IP

caacutec đoạn Pipelined caacutec ACK tiacutech lũy TCP dugraveng bộ định thigrave

truyền lại đơn

Truyền lại được kiacutech hoạt bởi caacutec sự kiện timeout caacutec ack trugraveng lặp

luacutec đầu khảo saacutet caacutec becircn gửi TCP đơn giản lờ đi caacutec ack trugraveng lặp lờ đi điều khiển luồng

điều khiển tắc nghẽn

Transport Layer 3-63

TCP caacutec sự kiệndữ liệu đatilde nhận từ ứng

dụng tạo đoạn với số thứ

tự của noacute số thứ tự lagrave số theo

byte dữ liệu đầu tiecircn khởi động bộ định thigrave

nếu chưa chạy khoảng thời gian hết

hạn TimeOutInterval

timeout gửi lại đoạn nagraveo gacircy

ra timeout khởi động lại bộ định

thigrave Ack đatilde nhận

cập nhật caacutei gigrave sẽ được ACK

khởi động bộ định thigrave nếu coacute caacutec đoạn cograven chờ

Transport Layer 3-64

TCP becircn gửi(đơn giản)

NextSeqNum = InitialSeqNum SendBase = InitialSeqNum

loop (forever) switch(event)

event data received from application above create TCP segment with sequence number NextSeqNum if (timer currently not running) start timer pass segment to IP NextSeqNum = NextSeqNum + length(data)

event timer timeout retransmit not-yet-acknowledged segment with smallest sequence number start timer

event ACK received with ACK field value of y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer

end of loop forever

Chuacute thiacutechbull SendBase-1 byte vừa được ACK tiacutech lũy Viacute dụbull SendBase-1 = 71y= 73 vigrave thế becircn nhận muốn 73+ y gt SendBase vigrave thế dữ liệu mới được chấp nhận

Transport Layer 3-65

TCP caacutec tigravenh huống truyền lại

Host A

Seq=100 20 bytes data

ACK=100

timetimeout sớm

Host B

Seq=92 8 bytes data

ACK=120

Seq=92 8 bytes data

Seq=

92

tim

eout

ACK=120

Host A

Seq=92 8 bytes data

ACK=100

loss

tim

eout

tigravenh huống mất ACK

Host B

X

Seq=92 8 bytes data

ACK=100

time

Seq=

92

tim

eout

SendBase= 100

SendBase= 120

SendBase= 120

Sendbase= 100

Transport Layer 3-66

TCP caacutec tigravenh huống truyền lại (tt)Host A

Seq=92 8 bytes data

ACK=100

loss

tim

eout

Cumulative ACK scenario

Host B

X

Seq=100 20 bytes data

ACK=120

time

SendBase= 120

Transport Layer 3-67

TCP sinh ra ACK [RFC 1122 RFC 2581]

Sự kiện tại becircn nhận

Đoạn đến với đuacuteng số thứ tự mong muốn Tất cả dữ liệu đếnđatilde được ACK

Đoạn đến với đuacuteng số thứ tự mong muốn Một đoạn khaacutec đangchờ ACK

Caacutec đoạn đến khocircng thứ tựlớn hơn số thứ tự đoạn mong muốnCoacute khoảng trống

Đoạn đếnlấp đầy từng phần hoặc toagraven bộkhoảng trống

TCP becircn nhận hagravenh động

ACK trễ Chờ đến 500mscho đoạn kế tiếp Nếu khocircng coacute đoạnkế tiếp gửi ACK

Gửi ngay một ACK tiacutech lũy chấp nhậncho cả caacutec đoạn theo thứ tự

Gửi ngay ACK trugraveng lặp chỉ thị số thứ tựđoạn của byte kế tiếp đang mong chờ

Gửi ngay ACK với điều kiện lagrave đoạnbắt đầu ngay điểm coacute khoảng trống

Transport Layer 3-68

Truyền lại nhanh

Chu kỳ Time-out thường tương đối dagravei độ trễ dagravei trước khi gửi

lại goacutei đatilde mất

Xaacutec nhận caacutec đoạn đatilde mất bằng caacutec ACK trugraveng lặp becircn gửi thường gửi

nhiều đoạn song song Nếu đoạn bị mất sẽ

xảy ra tigravenh trạng giống như nhiều ACK trugraveng nhau

Nếu becircn gửi nhận 3 ACK của cugraveng một dữ liệu noacute cho lagrave đoạn sau dữ liệu đatilde ACK bị mất Truyền lại nhanh gửi

lại đoạn trước khi bộ định thigrave hết hạn

Transport Layer 3-69

sự kiện ACK đatilde nhận với trường lagrave y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer else increment count of dup ACKs received for y if (count of dup ACKs received for y = 3) resend segment with sequence number y

Giải thuật truyền lại nhanh

một ACK trugraveng lặp cho đoạn đatilde được ACK

Truyền lại nhanh

Transport Layer 3-70

Chương 3 Nội dung trigravenh bagravey

31 Caacutec dịch vụ lớp Transport

32 Multiplexing vagrave demultiplexing

33 Vận chuyển khocircng kết nối UDP

34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy

35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối

36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn

37 Điều khiển tắc nghẽn TCP

Transport Layer 3-71

TCP điều khiển luồng

becircn nhận của kết nối TCP coacute một bộ đệm nhận

dịch vụ so trugraveng tốc độ so trugraveng tốc độ gửi với tốc độ nhận của ứng dụng

tiến trigravenh ứng dụng coacute thể chậm tại luacutec đọc bộ đệm

becircn gửi sẽ khocircng lagravem tragraven bộ đệm vigrave truyền quaacute nhiều vagrave

quaacute nhanh

điều khiển luồng

Transport Layer 3-72

TCP điều khiển luồng caacutech lagravem

(Giả sử becircn nhận TCP loại bỏ caacutec đoạn khocircng coacute thứ tự)

dự phograveng trong bộ đệm= RcvWindow

= RcvBuffer-[LastByteRcvd - LastByteRead]

Becircn nhận thocircng baacuteo khoảng dự trữ nhờ giaacute trị RcvWindow trong caacutec đoạn

Becircn gửi hạn chế dữ liệu khocircng được ACK vagraveo RcvWindow bảo đảm bộ đệm nhận

khocircng tragraven

Transport Layer 3-73

Chương 3 Nội dung trigravenh bagravey

31 Caacutec dịch vụ lớp Transport

32 Multiplexing vagrave demultiplexing

33 Vận chuyển khocircng kết nối UDP

34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy

35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối

36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn

37 Điều khiển tắc nghẽn TCP

Transport Layer 3-74

TCP quản lyacute kết nối

Chuacute yacute Becircn gửi vagrave becircn nhận TCP thiết lập ldquokết nốirdquo trước khi trao đổi dữ liệu

khởi tạo caacutec biến TCP caacutec số thứ tự đoạn thocircng tin caacutec bộ đệm điều

khiển luồng (như RcvWindow)

client người khởi xướng kết nối

Socket clientSocket = new Socket(hostnameport

number) server được tiếp xuacutec bởi

client Socket connectionSocket =

welcomeSocketaccept()

3 phương phaacutep bắt tay

Bước 1 client host gửi đoạnTCP SYN đến server xaacutec định số thứ tự khởi đầu khocircng phải dữ liệu

Bước 2 server host nhận SYN trả lời với đoạn SYNACK

server cấp phaacutet caacutec bộ đệm

xaacutec định số thứ tự khởi đầuBước 3 client nhận SYNACK trả

lời với đoạn ACK (coacute thể chứa dữ liệu)

Transport Layer 3-75

TCP quản lyacute kết nối (tt)

Đoacuteng một kết nối

client đoacuteng socket clientSocketclose()

Bước 1 client gửi đoạn điều khiển TCP FIN đến server

Bước 2 server nhận FIN trả lời với ACK Đoacuteng kết nối gửi FIN

client

FIN

server

ACK

ACK

FIN

đoacuteng

đoacuteng

đatilde đoacutengthời g

ian c

hờ

Transport Layer 3-76

TCP quản lyacute kết nối (tt)

Bước 3 client nhận FIN trả lời với ACK

Trong khoảng ldquothời gian chờrdquo ndash sẽ phản hồi với ACK để nhận caacutec FIN

Bước 4 server nhận ACK Kết nối đatilde đoacuteng

Chuacute yacute với một sửa đổi nhỏ coacute thể quản lyacute nhiều FIN đồng thời

client

FIN

server

ACK

ACK

FIN

đang đoacuteng

đang đoacuteng

đatilde đoacuteng

thời g

ian c

hờ

đatilde đoacuteng

Transport Layer 3-77

TCP quản lyacute kết nối (tt)

chu kỳ sống củaTCP client

chu kỳ sống củaTCP server

Transport Layer 3-78

Chương 3 Nội dung trigravenh bagravey

31 Caacutec dịch vụ lớp Transport

32 Multiplexing vagrave demultiplexing

33 Vận chuyển khocircng kết nối UDP

34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy

35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối

36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn

37 Điều khiển tắc nghẽn TCP

Transport Layer 3-79

Caacutec nguyecircn lyacute điều khiển tắc nghẽn

Tắc nghẽn ldquoquaacute nhiều nguồn gửi quaacute nhanh vagrave quaacute nhiều

dữ liệu đến mạngrdquo khaacutec với điều khiển luồng caacutec biểu hiện

caacutec goacutei bị mất (tragraven bộ đệm tại caacutec router) caacutec độ trễ quaacute dagravei (xếp hagraveng trong bộ đệm

của router) lagrave 1 trong 10 vấn đề nan giải nhất

Transport Layer 3-80

Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 1

2 gửi 2 nhận 1 router caacutec bộ

đệm khocircng giới hạn

khocircng coacute truyền lại

caacutec độ trễ lớn hơn khi tắc nghẽn

năng suất coacute thể đạt tối đa

unlimited shared output link buffers

Host Ain original data

Host B

out

Transport Layer 3-81

Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 2

1 router caacutec bộ đệm coacute giới hạn becircn gửi truyền lại caacutec goacutei đatilde mất

chia sẻ vocirc hạncaacutec bộ đệm ouput

Host A in dữ liệu gốc

Host B

out

in dữ liệu gốc cugraveng với dữ liệu truyền lại

Transport Layer 3-82

Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 2 luocircn luocircn

truyền lại ldquohoagraven toagravenrdquo chỉ khi mất maacutet

truyền lại vigrave trễ (khocircng mất) lagravem cho lớn hơn với cugraveng

in

out

=

in

out

gt

in

out

ldquocaacutec chi phiacuterdquo của tắc nghẽn nhiều việc (truyền lại) caacutec truyền lại khocircng cần thiết liecircn kết nhiều bản sao của

goacutei

R2

R2in

ou

t

b

R2

R2in

ou

t

a

R2

R2in

ou

t

c

R4

R3

Transport Layer 3-83

Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 3 4 người gửi caacutec đường qua nhiều hop timeouttruyền lại

in

Hỏi điều gigrave xảy ra nếu vagrave tăng lecircn

in

chia sẻ vocirc hạncaacutec bộ đệm ouput

Host Ain dữ liệu gốc

Host B

out

in dữ liệu gốc cugraveng với dữ liệu truyền lại

Transport Layer 3-84

Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 3

ldquochi phiacuterdquo khaacutec của tắc nghẽn khi caacutec goacutei bị bỏ bất kỳ ldquokhả năng truyền

upstream dugraveng cho goacutei đoacute sẽ bị latildeng phiacuterdquo

Host A

Host B

o

u

t

Transport Layer 3-85

Caacutec caacutech tiếp cận đối với điều khiển tắc nghẽn

điều khiển tắc nghẽn end-end

khocircng coacute phản hồi rotilde ragraveng từ mạng

tắc nghẽn được suy ra từ việc quan saacutet caacutec hệ thống đầu cuối coacute mất maacutet trễ

tiếp cận được quản lyacute bởi TCP

điều khiển tắc nghẽn coacute sự hỗ trợ của mạng

caacutec router cung cấp phản hồi về caacutec hệ thống đầu cuối 1 bit duy nhất chỉ thị

tắc nghẽn (SNA DECbit TCPIP ECN ATM)

tốc độ sẽ gửi được xaacutec định rotilde ragraveng

2 caacutech

Transport Layer 3-86

Viacute dụ điều khiển tắc nghẽn ATM ABR

ABR tốc độ bit sẵn sagraveng

ldquodịch vụ mềm dẻordquo nếu đường gửi ldquochưa

hếtrdquo becircn gửi sẽ dugraveng

băng thocircng sẵn sagraveng nếu đường gửi tắc

nghẽn becircn gửi điều tiết với

tốc độ tối thiểu

RM (resource management)

gửi bởi becircn gửi rải raacutec với caacutec ocirc dữ liệu

caacutec bit trong ocirc thiết lập bởi caacutec switch bit NI khocircng tăng tốc độ

(tắc nghẽn nhẹ) bit CI tắc nghẽn rotilde rệt

Caacutec ocirc RM được trả về becircn gửi từ becircn nhận với nguyecircn vẹn caacutec bit

Transport Layer 3-87

Viacute dụ điều khiển tắc nghẽn ATM ABR

trường 2-byte ER trong ocirc RM switch đatilde tắc nghẽn coacute thể coacute giaacute trị ER thấp hơn trong ocirc tốc độ gửi do đoacute coacute thể được hỗ trợ tối đa trecircn đường

EFCI bit trong caacutec ocirc dữ liệu được cagravei giaacute trị 1 trong switch đatilde tắc nghẽn nếu ocirc dữ liệu đứng trước ocirc RM coacute cagravei EFCI becircn gửi sẽ cagravei

bit CI trong ocirc RM trả về

Transport Layer 3-88

Chương 3 Nội dung trigravenh bagravey

31 Caacutec dịch vụ lớp Transport

32 Multiplexing vagrave demultiplexing

33 Vận chuyển khocircng kết nối UDP

34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy

35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối

36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn

37 Điều khiển tắc nghẽn TCP

Transport Layer 3-89

TCP điều khiển tắc nghẽn additive tăng lecircn multiplicative giảm xuống

8 Kbytes

16 Kbytes

24 Kbytes

time

congestionwindow

Caacutech tiếp cận tăng tốc độ truyền (kiacutech thước cửa sổ) tigravem khả năng băng thocircng coacute thể cho đến khi coacute mất maacutet xảy ra additive tăng lecircn tăng CongWin bởi 1 MSS

mỗi RTT cho đến khi coacute mất maacutet xảy ra multiplicative giảm xuống bỏ CongWin trong

nửa giai đoạn sau khi mất maacutet

timekiacutech

thư

ớc

cửa

sổ

tắc

nghẽ

n

Tigravem kiếm băng thocircng

Transport Layer 3-90

TCP điều khiển tắc nghẽn chi tiết

becircn gửi hạn chế việc truyền LastByteSent-LastByteAcked

CongWin Cocircng thức

CongWin thay đổi chức năng lagrave nhận biết tắc nghẽn trecircn mạng

Lagravem thế nagraveo becircn gửi nhận biết tắc nghẽn

mất maacutet xảy ra = timeout hoặc 3 ack trugraveng lặp

becircn gửi giảm tốc độ (CongWin) sau khi mất maacutet xảy ra

3 cơ chế AIMD khởi động chậm thận trọng sau khi coacute

caacutec sự kiện timeout

tốc độ = CongWin

RTT Bytess

Transport Layer 3-91

TCP khởi động chậm

Khi kết nối bắt đầu CongWin = 1 MSS Viacute dụ MSS = 500 bytes

amp RTT = 200 ms tốc độ khởi tạo = 20

kbps

băng thocircng sẵn sagraveng coacute thể gtgt MSSRTT mong muốn nhanh

choacuteng tăng tốc lecircn tốc độ coacute thể đaacutep ứng

Khi kết nối bắt đầu tăng tốc lecircn rất nhanh cho đến khi sự cố mất maacutet xảy ra đầu tiecircn

Transport Layer 3-92

TCP khởi động chậm (tt)

Khi kết nối bắt đầu tăng tốc lecircn rất nhanh cho đến khi sự cố mất maacutet xảy ra đầu tiecircn nhacircn đocirci CongWin mỗi

RTT hoagraven thagravenh nhờ tăng CongWin ứng với mỗi ACK đatilde nhận

Tổng kết tốc độ khởi đầu lagrave chậm nhưng sau đoacute tăng tốc rất nhanh

Host A

1 đoạn

RTT

Host B

thời gian

2 đoạn

4 đoạn

Transport Layer 3-93

Tinh chếHỏi Khi nagraveo việc tăng

tốc trở thagravenh tuyến tiacutenh

Trả lời Khi CongWin đạt đến 12 giaacute trị của noacute trước khi timeout

Hiện thực Ngưỡng thay đổi Tại thời điểm coacute sự cố

mất maacutet ngưỡng được cagravei giaacute trị bằng frac12 của CongWin ngay trước đoacute

Transport Layer 3-94

Tinh chế nhận biết mất maacutet

Sau 3 ACK trugraveng lặp CongWin sẽ giảm 12 kiacutech thước cửa sổ

tăng tuyến tiacutenh nhưng sau sự cố

timeout CongWin thay giaacute trị

bằng 1 MSS kiacutech thước cửa sổ

tăng cấp lũy thừa khi đến một ngưỡng

thigrave tăng tuyến tiacutenh

3 ACK trugraveng nhau chỉ ra khả năng truyền của mạng timeout chỉ thị ldquonhiều cảnh baacuteordquo về tigravenh huống tắc nghẽn

Nguyecircn lyacute

Transport Layer 3-95

Tổng kết TCP điều khiển tắc nghẽn

Khi CongWin dưới Threshold becircn gửi đang trong giai đoạn khởi động chậm kiacutech thước cửa sổ tăng nhanh theo cấp lũy thừa

Khi CongWin trecircn Threshold becircn gửi đang trong giai đoạn traacutenh tắc nghẽn kiacutech thước cửa sổ tăng nhanh theo cấp tuyến tiacutenh

Khi coacute 3 ACK trugraveng lặp xảy ra Threshold = CongWin2 vagrave CongWin = Threshold

Khi timeout xảy ra Threshold = CongWin2 vagrave CongWin = 1 MSS

Transport Layer 3-96

TCP điều khiển tắc nghẽn becircn gửi

Trạng thaacutei Sự kiện TCP becircn gửi hagravenh động Diễn giải

Slow Start (SS)-Khởi động chậm

ACK baacuteo nhận cho dữ liệu chưa ACK trước đoacute

CongWin = CongWin + MSS If (CongWin gt Threshold) cagravei đặt trạng thaacutei ldquoTraacutenh tắc nghẽnrdquo

Hậu quả lagravem tăng gấp đocirci CongWin mỗi RTT

CongestionAvoidance (CA) ndashTraacutenh tắc nghẽn

ACK baacuteo nhận cho dữ liệu chưa ACK trước đoacute

CongWin = CongWin+MSS (MSSCongWin)

Additive tăng lecircn lagravem tăng CongWin lecircn 1 MSS mỗi RTT

SS hoặc CA Sự cố mất maacutet xảy ra khi thấy coacute 3 ACK trugraveng lặp

Threshold = CongWin2 CongWin = Thresholdcagravei đặt trạng thaacutei ldquoTraacutenh tắc nghẽnrdquo

Khocirci phục nhanh hiện thực giảm xuống multiplicative CongWin sẽ khocircng giảm xuống dưới 1 MSS

SS hoặc CA Timeout Threshold = CongWin2 CongWin = 1 MSScagravei đặt trạng thaacutei ldquoKhởi động chậmrdquo

Vagraveo chế độ ldquoKhởi động chậmrdquo

SS hoặc CA ACK trugraveng lặp

Đếm ACK tăng lecircn cho đoạn vừa được ACK

CongWin vagrave Threshold khocircng thay đổi

Transport Layer 3-97

TCP throughput

Throughout trung bigravenh của TCP biểu diễn qua kiacutech thước của sổ vagrave RTT Bỏ qua trạng thaacutei ldquoKhởi động chậmrdquo

Cho W lagrave kiacutech thước cửa sổ khi coacute mất maacutet xảy ra

Khi kiacutech thước cửa sổ = W lưu lượng = WRTT

Chỉ ngay sau khi mất maacutet cửa sổ giảm xuống = W2 lưu lượng = W2RTT

throughout trung bigravenh 075 WRTT

Transport Layer 3-98

TCP tương lai

Viacute dụ caacutec đoạn dagravei 1500 byte RTT 100ms lưu lượng 10 Gbps

Kiacutech thước cửa sổ yecircu cầu W = 83333 đoạn trecircn đường truyền

Lưu lượng trong caacutec trường hợp mất maacutet

L = 210-10

Phiecircn bản mới của TCP dagravenh cho nhu cầu tốc độ cao

LRTT

MSS221

Transport Layer 3-99

Mục tiecircu nếu K phiecircn lagravem việc TCP chia sẻ kết nối cổ chai của băng thocircng lagrave R mỗi phiecircn coacute tốc độ trung bigravenh lagrave RK

TCP kết nối 1

router cổ chaikhả năng R

TCP kết nối 2

TCP tiacutenh cocircng bằng

Transport Layer 3-100

Tại sao phải TCP cocircng bằng

2 phiecircn lagravem việc cạnh tranh nhau Additive tăng lưu lượng tăng multiplicative giảm lưu lượng tương xứng

R

R

chia sẻ băng thocircng bằng nhau

Connection 1 throughputConnect

ion 2

th

roughput

traacutenh tắc nghẽn additive tăng lecircnmất maacutet giảm cửa sổ bằng 12

traacutenh tắc nghẽn additive tăng lecircnmất maacutet giảm cửa sổ bằng 12

Transport Layer 3-101

TCP tiacutenh cocircng bằng (tt)

Tiacutenh cocircng bằng amp UDP nhiều ứng dụng

thường khocircng dugraveng TCP khocircng muốn tốc độ bị

điều tiết do điều khiển tắc nghẽn

Thay bằng dugraveng UDP truyền audiovideo với

tốc độ ổn định chịu được mất maacutet

Nghiecircn cứu giao thức thacircn thiện với TCP

Tiacutenh cocircng bằng amp caacutec kết nối TCP song song

khocircng coacute gigrave ngăn cản việc ứng dụng mở caacutec kết nối song song giữa 2 host

Trigravenh duyệt Web lagravem giống như thế

Viacute dụ tốc độ R hỗ trợ 9 kết nối ứng dụng mới yecircu cầu 1

TCP coacute tốc độ R10 ứng dụng mới yecircu cầu 11

TCP coacute tốc độ R2

Transport Layer 3-102

Mocirc higravenh trễ

Hỏi Mất bao lacircu để nhận 1 đối tượng từ Web server sau khi gửi yecircu cầu

Bỏ qua tắc nghẽn trễ bị ảnh hưởng bởi

thiết lập kết nối TCP trễ truyền dữ liệu khởi động chậm

Notation caacutec giả định Giả sử một kết nối giữa

client vagrave server coacute tốc độ R

S MSS (bits) O kiacutech thước đối tượng

(bits) khocircng truyền lại (khocircng

mất maacutet khocircng hỏng)

Kiacutech thước cửa sổ Giả định 1 cửa sổ tắc

nghẽn cố định coacute W đoạn Sau đoacute cửa sổ thay đổi

mocirc higravenh khởi động chậm

Transport Layer 3-103

Cửa sổ tắc nghẽn cố định (1)

Trường hợp đầu tiecircnWSR gt RTT + SR cho

đoạn đầu tiecircn trong cửa sổ trả về trước khi cửa sổ dữ liệu gửi ACK

trễ = 2RTT + OR

Transport Layer 3-104

Cửa sổ tắc nghẽn cố định (2)

Trường hợp thứ hai WSR lt RTT + SR sent

chờ cho ACK sau khi gửi dữ liệu

trễ = 2RTT + OR+ (K-1)[SR + RTT - WSR]

Transport Layer 3-105

TCP Mocirc higravenh trễ Khởi động chậm (1)

Bacircy giờ giả sử kiacutech thước cửa sổ tăng lecircn tugravey theo quaacute trigravenh khởi động chậm

Độ trễ của một đối tượng sẽ lagrave

R

S

R

SRTTP

R

ORTTLatency P )12(2

trong đoacute P lagrave số lần TCP rảnh ở tại server

1min KQP

- trong đoacute Q lagrave số lần server rảnh nếu đối tượng đatilde khởi tạo kiacutech thước

- vagrave K lagrave số lượng cửa sổ bao trugravem đối tượng

Transport Layer 3-106

TCP Mocirc higravenh trễ Khởi động chậm (2)

RTT

initia te TCPconnection

requestobject

first w indow= S R

second w indow= 2S R

third w indow= 4S R

fourth w indow= 8S R

com pletetransm issionobject

delivered

tim e atc lient

tim e atserver

Viacute dụbull OS = 15 đoạnbull K = 4 cửa sổbull Q = 2bull P = minK-1Q = 2

Server rảnh P=2 lần

Caacutec thagravenh phần trễbull 2 RTT dagravenh cho thiết lập kết nối vagrave yecircu cầubull OR để truyền đối tượngbullthời gian server rảnh bởi vigrave khởi động chậm

Server rảnh P = minK-1Q lần

Transport Layer 3-107

TCP Mocirc higravenh trễ(3)

R

S

R

SRTTPRTT

R

O

R

SRTT

R

SRTT

R

O

idleTimeRTTR

O

P

kP

k

P

pp

)12(][2

]2[2

2delay

1

1

1

th window after the timeidle 2 1 kR

SRTT

R

S k

ementacknowledg receivesserver until

segment send tostartsserver when from time RTTR

S

window kth the transmit totime2 1

R

Sk

RTT

initia te TCPconnection

requestobject

first w indow= S R

second w indow= 2S R

third w indow= 4S R

fourth w indow= 8S R

com pletetransm issionobject

delivered

tim e atc lient

tim e atserver

Transport Layer 3-108

TCP Mocirc higravenh trễ (4)

)1(log

)1(logmin

12min

222min

222min

2

2

110

110

S

OS

Okk

S

Ok

SOk

OSSSkK

k

k

k

caacutech tiacutenh toaacuten Q tương tự (xem HW)

K = số lượng cửa sổ bao trugravem đối tượngLagravem thế nagraveo tiacutenh được K

Transport Layer 3-109

HTTP Mocirc higravenh Giả sử trang Web chứa

1 trang HTML (kiacutech thước O bits) M higravenh ảnh (mỗi caacutei kiacutech thướcO bits)

HTTP khocircng bền vững M+1 TCP kết nối Thời gian đaacutep ứng = (M+1)OR + (M+1)2RTT + tổng số thời

gian rảnh HTTP bền vững

2 RTT để yecircu cầu vagrave nhận file HTML 1 RTT để yecircu cầu vagrave nhận M higravenh ảnh Thời gian đaacutep ứng = (M+1)OR + 3RTT + tổng số thời gian

rảnh HTTP khocircng bền vững với X kết nối song song

Giả sử MX lagrave số nguyecircn 1 TCP kết nối cho file MX thiết lập caacutec kết nối song song cho caacutec higravenh ảnh Thời gian đaacutep ứng = (M+1)OR + (MX + 1)2RTT + tổng số

thời gian rảnh

Transport Layer 3-110

02468

101214161820

28Kbps

100Kbps

1Mbps

10Mbps

non-persistent

persistent

parallel non-persistent

HTTP thời gian đaacutep ứng (giacircy)RTT = 100 msec O = 5 Kbytes M=10 vagrave X=5

Với băng thocircng thấp thời gian kết nối amp đaacutep ứng trội hơn thời gian truyền

Caacutec kết nối bền vững chỉ cho sự cải thiện khocircng đaacuteng kể trecircn caacutec kết nối song song

Transport Layer 3-111

0

10

20

30

40

50

60

70

28Kbps

100Kbps

1Mbps

10Mbps

non-persistent

persistent

parallel non-persistent

HTTP thời gian đaacutep ứng (giacircy)

RTT =1 sec O = 5 Kbytes M=10 and X=5

Với RTT lớn hơn thời gian đaacutep ứng trội hơn thời gian trễ chờ thiết lập kết nốiTCP amp khởi động chậm Caacutec kết nối bền vững bacircy giờ cho thấy cải thiện rotilde rệt đặc biệtvới caacutec mạng băng thocircng cao

Transport Layer 3-112

Chương 3 Tổng kết caacutec nguyecircn lyacute của caacutec

dịch vụ lớp transport multiplexing

demultiplexing truyền dữ liệu tin cậy điều khiển luồng điều khiển tắc nghẽn

khởi tạo vagrave hiện thực trong Internet UDP TCP

Tiếp theo nghiecircn cứu xong

caacutec vấn đề ldquongoagravei biecircnrdquo (caacutec lớp application transport)

chuẩn bị vagraveo phần ldquolotildeirdquo của mạng

  • Slide 1
  • Chương 3 Lớp Transport
  • Chương 3 Nội dung trigravenh bagravey
  • Caacutec dịch vụ vagrave giao thức Transport
  • Lớp Transport với lớp network
  • Caacutec giao thức lớp transport trecircn Internet
  • Slide 7
  • Multiplexingdemultiplexing
  • Demultiplexing lagravem việc như thế nagraveo
  • Demultiplexing khocircng kết nối
  • Demultiplexing khocircng kết nối (tiếp)
  • Demultiplexing hướng kết nối
  • Demultiplexing hướng kết nối (tiếp)
  • Demultiplexing hướng kết nối Threaded Web Server
  • Slide 15
  • UDP User Datagram Protocol [RFC 768]
  • UDP (tt)
  • UDP checksum
  • Viacute dụ Checksum
  • Slide 20
  • Caacutec nguyecircn lyacute truyền dữ liệu tin cậy
  • Slide 22
  • Slide 23
  • Truyền dữ liệu tin cậy
  • Slide 25
  • Rdt10 truyền dữ liệu tin cậy trecircn 1 kecircnh truyền tin cậy
  • Rdt20 kecircnh với caacutec lỗi
  • rdt20 đặc tả FSM
  • rdt20 hoạt động khi khocircng lỗi
  • rdt20 hoạt động khi coacute lỗi
  • rdt20 coacute lỗ hổng nghiecircm trọng
  • rdt21 người gửi quản lyacute caacutec ACKNAK bị hỏng
  • Slide 33
  • rdt21 thảo luận
  • rdt22 một giao thức khocircng cần NAK
  • rdt22 gửi nhận caacutec mảnh
  • rdt30 caacutec kecircnh với lỗi vagrave mất maacutet
  • rdt30 gửi
  • hagravenh động của rdt30
  • Slide 40
  • Hiệu suất của rdt30
  • rdt30 hoạt động dừng-vagrave-chờ
  • Caacutec giao thức Pipelined
  • Pipelining độ khả dụng tăng
  • Go-Back-N
  • GBN becircn gửi mở rộng FSM
  • GBN becircn nhận mở rộng FSM
  • GBN hoạt động
  • Lặp coacute lựa chọn
  • Lặp coacute lựa chọn caacutec cửa sổ gửi nhận
  • Slide 51
  • Hoạt động của lặp coacute lựa chọn
  • Lặp coacute lựa chọn tigravenh trạng khoacute giải quyết
  • Slide 54
  • TCP Tổng quan RFCs 793 1122 1323 2018 2581
  • TCP cấu truacutec đoạn
  • Caacutec số thứ tự TCP vagrave ACK
  • TCP Round Trip Time vagraveTimeout
  • TCP Round Trip Time vagrave Timeout
  • Viacute dụ đaacutenh giaacute RTT
  • Slide 61
  • TCP truyền dữ liệu tin cậy
  • TCP caacutec sự kiện
  • TCP becircn gửi (đơn giản)
  • TCP caacutec tigravenh huống truyền lại
  • TCP caacutec tigravenh huống truyền lại (tt)
  • TCP sinh ra ACK [RFC 1122 RFC 2581]
  • Truyền lại nhanh
  • Giải thuật truyền lại nhanh
  • Slide 70
  • TCP điều khiển luồng
  • TCP điều khiển luồng caacutech lagravem
  • Slide 73
  • TCP quản lyacute kết nối
  • TCP quản lyacute kết nối (tt)
  • Slide 76
  • Slide 77
  • Slide 78
  • Caacutec nguyecircn lyacute điều khiển tắc nghẽn
  • Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 1
  • Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 2
  • Slide 82
  • Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 3
  • Slide 84
  • Caacutec caacutech tiếp cận đối với điều khiển tắc nghẽn
  • Viacute dụ điều khiển tắc nghẽn ATM ABR
  • Slide 87
  • Slide 88
  • TCP điều khiển tắc nghẽn additive tăng lecircn multiplicative giảm xuống
  • TCP điều khiển tắc nghẽn chi tiết
  • TCP khởi động chậm
  • TCP khởi động chậm (tt)
  • Tinh chế
  • Tinh chế nhận biết mất maacutet
  • Tổng kết TCP điều khiển tắc nghẽn
  • TCP điều khiển tắc nghẽn becircn gửi
  • TCP throughput
  • TCP tương lai
  • TCP tiacutenh cocircng bằng
  • Tại sao phải TCP cocircng bằng
  • TCP tiacutenh cocircng bằng (tt)
  • Mocirc higravenh trễ
  • Cửa sổ tắc nghẽn cố định (1)
  • Cửa sổ tắc nghẽn cố định (2)
  • TCP Mocirc higravenh trễ Khởi động chậm (1)
  • TCP Mocirc higravenh trễ Khởi động chậm (2)
  • TCP Mocirc higravenh trễ(3)
  • TCP Mocirc higravenh trễ (4)
  • HTTP Mocirc higravenh
  • Slide 110
  • Slide 111
  • Chương 3 Tổng kết

Transport Layer 3-58

TCP Round Trip Time vagraveTimeout

Hỏi Lagravem thế nagraveo để thiết lập giaacute trị TCP timeout

dagravei hơn RTT khaacutec với RTT

quaacute ngắn timeout sớm truyền lại khocircng

cần thiết quaacute dagravei phản ứng

chậm đối với việc mất maacutet goacutei

Hỏi Lagravem thế nagraveo để thiết lập RTT

SampleRTT thời gian được đo từ khi truyền đoạn đến khi baacuteo nhận ACK lờ đi việc truyền lại

SampleRTT sẽ thay đổi muốn ước lượng RTT ldquomượt hơnrdquo tiacutenh trung bigravenh một số giaacute

trị đo được gần đoacute khocircng chỉ SampleRTT hiện tại

Transport Layer 3-59

TCP Round Trip Time vagrave Timeout

EstimatedRTT = (1- )EstimatedRTT + SampleRTT

giaacute trị đặc trưng = 0125

Transport Layer 3-60

Viacute dụ đaacutenh giaacute RTTRTT gaiacsumassedu to fantasiaeurecomfr

100

150

200

250

300

350

1 8 15 22 29 36 43 50 57 64 71 78 85 92 99 106

time (seconnds)

RTT

(mill

isec

onds

)

SampleRTT Estimated RTT

Transport Layer 3-61

TCP Round Trip Time vagrave Timeout

Thiết lập timeout EstimtedRTT cộng ldquohệ số dự trữ an toagravenrdquo

sự biến thiecircn lớn trong EstimatedRTT -gt hệ số dự trữ an toagraven lớn hơn ước lượng đầu tiecircn về sự biến thiecircn của SampleRTT từ EstimatedRTT

TimeoutInterval = EstimatedRTT + 4DevRTT

DevRTT = (1-)DevRTT + |SampleRTT-EstimatedRTT|

(tiecircu biểu = 025)

Sau đoacute thiết lập timeout interval

Transport Layer 3-62

TCP truyền dữ liệu tin cậy

TCP tạo dịch vụ rdt trecircn dịch vụ khocircng tin cậy IP

caacutec đoạn Pipelined caacutec ACK tiacutech lũy TCP dugraveng bộ định thigrave

truyền lại đơn

Truyền lại được kiacutech hoạt bởi caacutec sự kiện timeout caacutec ack trugraveng lặp

luacutec đầu khảo saacutet caacutec becircn gửi TCP đơn giản lờ đi caacutec ack trugraveng lặp lờ đi điều khiển luồng

điều khiển tắc nghẽn

Transport Layer 3-63

TCP caacutec sự kiệndữ liệu đatilde nhận từ ứng

dụng tạo đoạn với số thứ

tự của noacute số thứ tự lagrave số theo

byte dữ liệu đầu tiecircn khởi động bộ định thigrave

nếu chưa chạy khoảng thời gian hết

hạn TimeOutInterval

timeout gửi lại đoạn nagraveo gacircy

ra timeout khởi động lại bộ định

thigrave Ack đatilde nhận

cập nhật caacutei gigrave sẽ được ACK

khởi động bộ định thigrave nếu coacute caacutec đoạn cograven chờ

Transport Layer 3-64

TCP becircn gửi(đơn giản)

NextSeqNum = InitialSeqNum SendBase = InitialSeqNum

loop (forever) switch(event)

event data received from application above create TCP segment with sequence number NextSeqNum if (timer currently not running) start timer pass segment to IP NextSeqNum = NextSeqNum + length(data)

event timer timeout retransmit not-yet-acknowledged segment with smallest sequence number start timer

event ACK received with ACK field value of y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer

end of loop forever

Chuacute thiacutechbull SendBase-1 byte vừa được ACK tiacutech lũy Viacute dụbull SendBase-1 = 71y= 73 vigrave thế becircn nhận muốn 73+ y gt SendBase vigrave thế dữ liệu mới được chấp nhận

Transport Layer 3-65

TCP caacutec tigravenh huống truyền lại

Host A

Seq=100 20 bytes data

ACK=100

timetimeout sớm

Host B

Seq=92 8 bytes data

ACK=120

Seq=92 8 bytes data

Seq=

92

tim

eout

ACK=120

Host A

Seq=92 8 bytes data

ACK=100

loss

tim

eout

tigravenh huống mất ACK

Host B

X

Seq=92 8 bytes data

ACK=100

time

Seq=

92

tim

eout

SendBase= 100

SendBase= 120

SendBase= 120

Sendbase= 100

Transport Layer 3-66

TCP caacutec tigravenh huống truyền lại (tt)Host A

Seq=92 8 bytes data

ACK=100

loss

tim

eout

Cumulative ACK scenario

Host B

X

Seq=100 20 bytes data

ACK=120

time

SendBase= 120

Transport Layer 3-67

TCP sinh ra ACK [RFC 1122 RFC 2581]

Sự kiện tại becircn nhận

Đoạn đến với đuacuteng số thứ tự mong muốn Tất cả dữ liệu đếnđatilde được ACK

Đoạn đến với đuacuteng số thứ tự mong muốn Một đoạn khaacutec đangchờ ACK

Caacutec đoạn đến khocircng thứ tựlớn hơn số thứ tự đoạn mong muốnCoacute khoảng trống

Đoạn đếnlấp đầy từng phần hoặc toagraven bộkhoảng trống

TCP becircn nhận hagravenh động

ACK trễ Chờ đến 500mscho đoạn kế tiếp Nếu khocircng coacute đoạnkế tiếp gửi ACK

Gửi ngay một ACK tiacutech lũy chấp nhậncho cả caacutec đoạn theo thứ tự

Gửi ngay ACK trugraveng lặp chỉ thị số thứ tựđoạn của byte kế tiếp đang mong chờ

Gửi ngay ACK với điều kiện lagrave đoạnbắt đầu ngay điểm coacute khoảng trống

Transport Layer 3-68

Truyền lại nhanh

Chu kỳ Time-out thường tương đối dagravei độ trễ dagravei trước khi gửi

lại goacutei đatilde mất

Xaacutec nhận caacutec đoạn đatilde mất bằng caacutec ACK trugraveng lặp becircn gửi thường gửi

nhiều đoạn song song Nếu đoạn bị mất sẽ

xảy ra tigravenh trạng giống như nhiều ACK trugraveng nhau

Nếu becircn gửi nhận 3 ACK của cugraveng một dữ liệu noacute cho lagrave đoạn sau dữ liệu đatilde ACK bị mất Truyền lại nhanh gửi

lại đoạn trước khi bộ định thigrave hết hạn

Transport Layer 3-69

sự kiện ACK đatilde nhận với trường lagrave y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer else increment count of dup ACKs received for y if (count of dup ACKs received for y = 3) resend segment with sequence number y

Giải thuật truyền lại nhanh

một ACK trugraveng lặp cho đoạn đatilde được ACK

Truyền lại nhanh

Transport Layer 3-70

Chương 3 Nội dung trigravenh bagravey

31 Caacutec dịch vụ lớp Transport

32 Multiplexing vagrave demultiplexing

33 Vận chuyển khocircng kết nối UDP

34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy

35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối

36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn

37 Điều khiển tắc nghẽn TCP

Transport Layer 3-71

TCP điều khiển luồng

becircn nhận của kết nối TCP coacute một bộ đệm nhận

dịch vụ so trugraveng tốc độ so trugraveng tốc độ gửi với tốc độ nhận của ứng dụng

tiến trigravenh ứng dụng coacute thể chậm tại luacutec đọc bộ đệm

becircn gửi sẽ khocircng lagravem tragraven bộ đệm vigrave truyền quaacute nhiều vagrave

quaacute nhanh

điều khiển luồng

Transport Layer 3-72

TCP điều khiển luồng caacutech lagravem

(Giả sử becircn nhận TCP loại bỏ caacutec đoạn khocircng coacute thứ tự)

dự phograveng trong bộ đệm= RcvWindow

= RcvBuffer-[LastByteRcvd - LastByteRead]

Becircn nhận thocircng baacuteo khoảng dự trữ nhờ giaacute trị RcvWindow trong caacutec đoạn

Becircn gửi hạn chế dữ liệu khocircng được ACK vagraveo RcvWindow bảo đảm bộ đệm nhận

khocircng tragraven

Transport Layer 3-73

Chương 3 Nội dung trigravenh bagravey

31 Caacutec dịch vụ lớp Transport

32 Multiplexing vagrave demultiplexing

33 Vận chuyển khocircng kết nối UDP

34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy

35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối

36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn

37 Điều khiển tắc nghẽn TCP

Transport Layer 3-74

TCP quản lyacute kết nối

Chuacute yacute Becircn gửi vagrave becircn nhận TCP thiết lập ldquokết nốirdquo trước khi trao đổi dữ liệu

khởi tạo caacutec biến TCP caacutec số thứ tự đoạn thocircng tin caacutec bộ đệm điều

khiển luồng (như RcvWindow)

client người khởi xướng kết nối

Socket clientSocket = new Socket(hostnameport

number) server được tiếp xuacutec bởi

client Socket connectionSocket =

welcomeSocketaccept()

3 phương phaacutep bắt tay

Bước 1 client host gửi đoạnTCP SYN đến server xaacutec định số thứ tự khởi đầu khocircng phải dữ liệu

Bước 2 server host nhận SYN trả lời với đoạn SYNACK

server cấp phaacutet caacutec bộ đệm

xaacutec định số thứ tự khởi đầuBước 3 client nhận SYNACK trả

lời với đoạn ACK (coacute thể chứa dữ liệu)

Transport Layer 3-75

TCP quản lyacute kết nối (tt)

Đoacuteng một kết nối

client đoacuteng socket clientSocketclose()

Bước 1 client gửi đoạn điều khiển TCP FIN đến server

Bước 2 server nhận FIN trả lời với ACK Đoacuteng kết nối gửi FIN

client

FIN

server

ACK

ACK

FIN

đoacuteng

đoacuteng

đatilde đoacutengthời g

ian c

hờ

Transport Layer 3-76

TCP quản lyacute kết nối (tt)

Bước 3 client nhận FIN trả lời với ACK

Trong khoảng ldquothời gian chờrdquo ndash sẽ phản hồi với ACK để nhận caacutec FIN

Bước 4 server nhận ACK Kết nối đatilde đoacuteng

Chuacute yacute với một sửa đổi nhỏ coacute thể quản lyacute nhiều FIN đồng thời

client

FIN

server

ACK

ACK

FIN

đang đoacuteng

đang đoacuteng

đatilde đoacuteng

thời g

ian c

hờ

đatilde đoacuteng

Transport Layer 3-77

TCP quản lyacute kết nối (tt)

chu kỳ sống củaTCP client

chu kỳ sống củaTCP server

Transport Layer 3-78

Chương 3 Nội dung trigravenh bagravey

31 Caacutec dịch vụ lớp Transport

32 Multiplexing vagrave demultiplexing

33 Vận chuyển khocircng kết nối UDP

34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy

35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối

36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn

37 Điều khiển tắc nghẽn TCP

Transport Layer 3-79

Caacutec nguyecircn lyacute điều khiển tắc nghẽn

Tắc nghẽn ldquoquaacute nhiều nguồn gửi quaacute nhanh vagrave quaacute nhiều

dữ liệu đến mạngrdquo khaacutec với điều khiển luồng caacutec biểu hiện

caacutec goacutei bị mất (tragraven bộ đệm tại caacutec router) caacutec độ trễ quaacute dagravei (xếp hagraveng trong bộ đệm

của router) lagrave 1 trong 10 vấn đề nan giải nhất

Transport Layer 3-80

Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 1

2 gửi 2 nhận 1 router caacutec bộ

đệm khocircng giới hạn

khocircng coacute truyền lại

caacutec độ trễ lớn hơn khi tắc nghẽn

năng suất coacute thể đạt tối đa

unlimited shared output link buffers

Host Ain original data

Host B

out

Transport Layer 3-81

Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 2

1 router caacutec bộ đệm coacute giới hạn becircn gửi truyền lại caacutec goacutei đatilde mất

chia sẻ vocirc hạncaacutec bộ đệm ouput

Host A in dữ liệu gốc

Host B

out

in dữ liệu gốc cugraveng với dữ liệu truyền lại

Transport Layer 3-82

Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 2 luocircn luocircn

truyền lại ldquohoagraven toagravenrdquo chỉ khi mất maacutet

truyền lại vigrave trễ (khocircng mất) lagravem cho lớn hơn với cugraveng

in

out

=

in

out

gt

in

out

ldquocaacutec chi phiacuterdquo của tắc nghẽn nhiều việc (truyền lại) caacutec truyền lại khocircng cần thiết liecircn kết nhiều bản sao của

goacutei

R2

R2in

ou

t

b

R2

R2in

ou

t

a

R2

R2in

ou

t

c

R4

R3

Transport Layer 3-83

Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 3 4 người gửi caacutec đường qua nhiều hop timeouttruyền lại

in

Hỏi điều gigrave xảy ra nếu vagrave tăng lecircn

in

chia sẻ vocirc hạncaacutec bộ đệm ouput

Host Ain dữ liệu gốc

Host B

out

in dữ liệu gốc cugraveng với dữ liệu truyền lại

Transport Layer 3-84

Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 3

ldquochi phiacuterdquo khaacutec của tắc nghẽn khi caacutec goacutei bị bỏ bất kỳ ldquokhả năng truyền

upstream dugraveng cho goacutei đoacute sẽ bị latildeng phiacuterdquo

Host A

Host B

o

u

t

Transport Layer 3-85

Caacutec caacutech tiếp cận đối với điều khiển tắc nghẽn

điều khiển tắc nghẽn end-end

khocircng coacute phản hồi rotilde ragraveng từ mạng

tắc nghẽn được suy ra từ việc quan saacutet caacutec hệ thống đầu cuối coacute mất maacutet trễ

tiếp cận được quản lyacute bởi TCP

điều khiển tắc nghẽn coacute sự hỗ trợ của mạng

caacutec router cung cấp phản hồi về caacutec hệ thống đầu cuối 1 bit duy nhất chỉ thị

tắc nghẽn (SNA DECbit TCPIP ECN ATM)

tốc độ sẽ gửi được xaacutec định rotilde ragraveng

2 caacutech

Transport Layer 3-86

Viacute dụ điều khiển tắc nghẽn ATM ABR

ABR tốc độ bit sẵn sagraveng

ldquodịch vụ mềm dẻordquo nếu đường gửi ldquochưa

hếtrdquo becircn gửi sẽ dugraveng

băng thocircng sẵn sagraveng nếu đường gửi tắc

nghẽn becircn gửi điều tiết với

tốc độ tối thiểu

RM (resource management)

gửi bởi becircn gửi rải raacutec với caacutec ocirc dữ liệu

caacutec bit trong ocirc thiết lập bởi caacutec switch bit NI khocircng tăng tốc độ

(tắc nghẽn nhẹ) bit CI tắc nghẽn rotilde rệt

Caacutec ocirc RM được trả về becircn gửi từ becircn nhận với nguyecircn vẹn caacutec bit

Transport Layer 3-87

Viacute dụ điều khiển tắc nghẽn ATM ABR

trường 2-byte ER trong ocirc RM switch đatilde tắc nghẽn coacute thể coacute giaacute trị ER thấp hơn trong ocirc tốc độ gửi do đoacute coacute thể được hỗ trợ tối đa trecircn đường

EFCI bit trong caacutec ocirc dữ liệu được cagravei giaacute trị 1 trong switch đatilde tắc nghẽn nếu ocirc dữ liệu đứng trước ocirc RM coacute cagravei EFCI becircn gửi sẽ cagravei

bit CI trong ocirc RM trả về

Transport Layer 3-88

Chương 3 Nội dung trigravenh bagravey

31 Caacutec dịch vụ lớp Transport

32 Multiplexing vagrave demultiplexing

33 Vận chuyển khocircng kết nối UDP

34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy

35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối

36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn

37 Điều khiển tắc nghẽn TCP

Transport Layer 3-89

TCP điều khiển tắc nghẽn additive tăng lecircn multiplicative giảm xuống

8 Kbytes

16 Kbytes

24 Kbytes

time

congestionwindow

Caacutech tiếp cận tăng tốc độ truyền (kiacutech thước cửa sổ) tigravem khả năng băng thocircng coacute thể cho đến khi coacute mất maacutet xảy ra additive tăng lecircn tăng CongWin bởi 1 MSS

mỗi RTT cho đến khi coacute mất maacutet xảy ra multiplicative giảm xuống bỏ CongWin trong

nửa giai đoạn sau khi mất maacutet

timekiacutech

thư

ớc

cửa

sổ

tắc

nghẽ

n

Tigravem kiếm băng thocircng

Transport Layer 3-90

TCP điều khiển tắc nghẽn chi tiết

becircn gửi hạn chế việc truyền LastByteSent-LastByteAcked

CongWin Cocircng thức

CongWin thay đổi chức năng lagrave nhận biết tắc nghẽn trecircn mạng

Lagravem thế nagraveo becircn gửi nhận biết tắc nghẽn

mất maacutet xảy ra = timeout hoặc 3 ack trugraveng lặp

becircn gửi giảm tốc độ (CongWin) sau khi mất maacutet xảy ra

3 cơ chế AIMD khởi động chậm thận trọng sau khi coacute

caacutec sự kiện timeout

tốc độ = CongWin

RTT Bytess

Transport Layer 3-91

TCP khởi động chậm

Khi kết nối bắt đầu CongWin = 1 MSS Viacute dụ MSS = 500 bytes

amp RTT = 200 ms tốc độ khởi tạo = 20

kbps

băng thocircng sẵn sagraveng coacute thể gtgt MSSRTT mong muốn nhanh

choacuteng tăng tốc lecircn tốc độ coacute thể đaacutep ứng

Khi kết nối bắt đầu tăng tốc lecircn rất nhanh cho đến khi sự cố mất maacutet xảy ra đầu tiecircn

Transport Layer 3-92

TCP khởi động chậm (tt)

Khi kết nối bắt đầu tăng tốc lecircn rất nhanh cho đến khi sự cố mất maacutet xảy ra đầu tiecircn nhacircn đocirci CongWin mỗi

RTT hoagraven thagravenh nhờ tăng CongWin ứng với mỗi ACK đatilde nhận

Tổng kết tốc độ khởi đầu lagrave chậm nhưng sau đoacute tăng tốc rất nhanh

Host A

1 đoạn

RTT

Host B

thời gian

2 đoạn

4 đoạn

Transport Layer 3-93

Tinh chếHỏi Khi nagraveo việc tăng

tốc trở thagravenh tuyến tiacutenh

Trả lời Khi CongWin đạt đến 12 giaacute trị của noacute trước khi timeout

Hiện thực Ngưỡng thay đổi Tại thời điểm coacute sự cố

mất maacutet ngưỡng được cagravei giaacute trị bằng frac12 của CongWin ngay trước đoacute

Transport Layer 3-94

Tinh chế nhận biết mất maacutet

Sau 3 ACK trugraveng lặp CongWin sẽ giảm 12 kiacutech thước cửa sổ

tăng tuyến tiacutenh nhưng sau sự cố

timeout CongWin thay giaacute trị

bằng 1 MSS kiacutech thước cửa sổ

tăng cấp lũy thừa khi đến một ngưỡng

thigrave tăng tuyến tiacutenh

3 ACK trugraveng nhau chỉ ra khả năng truyền của mạng timeout chỉ thị ldquonhiều cảnh baacuteordquo về tigravenh huống tắc nghẽn

Nguyecircn lyacute

Transport Layer 3-95

Tổng kết TCP điều khiển tắc nghẽn

Khi CongWin dưới Threshold becircn gửi đang trong giai đoạn khởi động chậm kiacutech thước cửa sổ tăng nhanh theo cấp lũy thừa

Khi CongWin trecircn Threshold becircn gửi đang trong giai đoạn traacutenh tắc nghẽn kiacutech thước cửa sổ tăng nhanh theo cấp tuyến tiacutenh

Khi coacute 3 ACK trugraveng lặp xảy ra Threshold = CongWin2 vagrave CongWin = Threshold

Khi timeout xảy ra Threshold = CongWin2 vagrave CongWin = 1 MSS

Transport Layer 3-96

TCP điều khiển tắc nghẽn becircn gửi

Trạng thaacutei Sự kiện TCP becircn gửi hagravenh động Diễn giải

Slow Start (SS)-Khởi động chậm

ACK baacuteo nhận cho dữ liệu chưa ACK trước đoacute

CongWin = CongWin + MSS If (CongWin gt Threshold) cagravei đặt trạng thaacutei ldquoTraacutenh tắc nghẽnrdquo

Hậu quả lagravem tăng gấp đocirci CongWin mỗi RTT

CongestionAvoidance (CA) ndashTraacutenh tắc nghẽn

ACK baacuteo nhận cho dữ liệu chưa ACK trước đoacute

CongWin = CongWin+MSS (MSSCongWin)

Additive tăng lecircn lagravem tăng CongWin lecircn 1 MSS mỗi RTT

SS hoặc CA Sự cố mất maacutet xảy ra khi thấy coacute 3 ACK trugraveng lặp

Threshold = CongWin2 CongWin = Thresholdcagravei đặt trạng thaacutei ldquoTraacutenh tắc nghẽnrdquo

Khocirci phục nhanh hiện thực giảm xuống multiplicative CongWin sẽ khocircng giảm xuống dưới 1 MSS

SS hoặc CA Timeout Threshold = CongWin2 CongWin = 1 MSScagravei đặt trạng thaacutei ldquoKhởi động chậmrdquo

Vagraveo chế độ ldquoKhởi động chậmrdquo

SS hoặc CA ACK trugraveng lặp

Đếm ACK tăng lecircn cho đoạn vừa được ACK

CongWin vagrave Threshold khocircng thay đổi

Transport Layer 3-97

TCP throughput

Throughout trung bigravenh của TCP biểu diễn qua kiacutech thước của sổ vagrave RTT Bỏ qua trạng thaacutei ldquoKhởi động chậmrdquo

Cho W lagrave kiacutech thước cửa sổ khi coacute mất maacutet xảy ra

Khi kiacutech thước cửa sổ = W lưu lượng = WRTT

Chỉ ngay sau khi mất maacutet cửa sổ giảm xuống = W2 lưu lượng = W2RTT

throughout trung bigravenh 075 WRTT

Transport Layer 3-98

TCP tương lai

Viacute dụ caacutec đoạn dagravei 1500 byte RTT 100ms lưu lượng 10 Gbps

Kiacutech thước cửa sổ yecircu cầu W = 83333 đoạn trecircn đường truyền

Lưu lượng trong caacutec trường hợp mất maacutet

L = 210-10

Phiecircn bản mới của TCP dagravenh cho nhu cầu tốc độ cao

LRTT

MSS221

Transport Layer 3-99

Mục tiecircu nếu K phiecircn lagravem việc TCP chia sẻ kết nối cổ chai của băng thocircng lagrave R mỗi phiecircn coacute tốc độ trung bigravenh lagrave RK

TCP kết nối 1

router cổ chaikhả năng R

TCP kết nối 2

TCP tiacutenh cocircng bằng

Transport Layer 3-100

Tại sao phải TCP cocircng bằng

2 phiecircn lagravem việc cạnh tranh nhau Additive tăng lưu lượng tăng multiplicative giảm lưu lượng tương xứng

R

R

chia sẻ băng thocircng bằng nhau

Connection 1 throughputConnect

ion 2

th

roughput

traacutenh tắc nghẽn additive tăng lecircnmất maacutet giảm cửa sổ bằng 12

traacutenh tắc nghẽn additive tăng lecircnmất maacutet giảm cửa sổ bằng 12

Transport Layer 3-101

TCP tiacutenh cocircng bằng (tt)

Tiacutenh cocircng bằng amp UDP nhiều ứng dụng

thường khocircng dugraveng TCP khocircng muốn tốc độ bị

điều tiết do điều khiển tắc nghẽn

Thay bằng dugraveng UDP truyền audiovideo với

tốc độ ổn định chịu được mất maacutet

Nghiecircn cứu giao thức thacircn thiện với TCP

Tiacutenh cocircng bằng amp caacutec kết nối TCP song song

khocircng coacute gigrave ngăn cản việc ứng dụng mở caacutec kết nối song song giữa 2 host

Trigravenh duyệt Web lagravem giống như thế

Viacute dụ tốc độ R hỗ trợ 9 kết nối ứng dụng mới yecircu cầu 1

TCP coacute tốc độ R10 ứng dụng mới yecircu cầu 11

TCP coacute tốc độ R2

Transport Layer 3-102

Mocirc higravenh trễ

Hỏi Mất bao lacircu để nhận 1 đối tượng từ Web server sau khi gửi yecircu cầu

Bỏ qua tắc nghẽn trễ bị ảnh hưởng bởi

thiết lập kết nối TCP trễ truyền dữ liệu khởi động chậm

Notation caacutec giả định Giả sử một kết nối giữa

client vagrave server coacute tốc độ R

S MSS (bits) O kiacutech thước đối tượng

(bits) khocircng truyền lại (khocircng

mất maacutet khocircng hỏng)

Kiacutech thước cửa sổ Giả định 1 cửa sổ tắc

nghẽn cố định coacute W đoạn Sau đoacute cửa sổ thay đổi

mocirc higravenh khởi động chậm

Transport Layer 3-103

Cửa sổ tắc nghẽn cố định (1)

Trường hợp đầu tiecircnWSR gt RTT + SR cho

đoạn đầu tiecircn trong cửa sổ trả về trước khi cửa sổ dữ liệu gửi ACK

trễ = 2RTT + OR

Transport Layer 3-104

Cửa sổ tắc nghẽn cố định (2)

Trường hợp thứ hai WSR lt RTT + SR sent

chờ cho ACK sau khi gửi dữ liệu

trễ = 2RTT + OR+ (K-1)[SR + RTT - WSR]

Transport Layer 3-105

TCP Mocirc higravenh trễ Khởi động chậm (1)

Bacircy giờ giả sử kiacutech thước cửa sổ tăng lecircn tugravey theo quaacute trigravenh khởi động chậm

Độ trễ của một đối tượng sẽ lagrave

R

S

R

SRTTP

R

ORTTLatency P )12(2

trong đoacute P lagrave số lần TCP rảnh ở tại server

1min KQP

- trong đoacute Q lagrave số lần server rảnh nếu đối tượng đatilde khởi tạo kiacutech thước

- vagrave K lagrave số lượng cửa sổ bao trugravem đối tượng

Transport Layer 3-106

TCP Mocirc higravenh trễ Khởi động chậm (2)

RTT

initia te TCPconnection

requestobject

first w indow= S R

second w indow= 2S R

third w indow= 4S R

fourth w indow= 8S R

com pletetransm issionobject

delivered

tim e atc lient

tim e atserver

Viacute dụbull OS = 15 đoạnbull K = 4 cửa sổbull Q = 2bull P = minK-1Q = 2

Server rảnh P=2 lần

Caacutec thagravenh phần trễbull 2 RTT dagravenh cho thiết lập kết nối vagrave yecircu cầubull OR để truyền đối tượngbullthời gian server rảnh bởi vigrave khởi động chậm

Server rảnh P = minK-1Q lần

Transport Layer 3-107

TCP Mocirc higravenh trễ(3)

R

S

R

SRTTPRTT

R

O

R

SRTT

R

SRTT

R

O

idleTimeRTTR

O

P

kP

k

P

pp

)12(][2

]2[2

2delay

1

1

1

th window after the timeidle 2 1 kR

SRTT

R

S k

ementacknowledg receivesserver until

segment send tostartsserver when from time RTTR

S

window kth the transmit totime2 1

R

Sk

RTT

initia te TCPconnection

requestobject

first w indow= S R

second w indow= 2S R

third w indow= 4S R

fourth w indow= 8S R

com pletetransm issionobject

delivered

tim e atc lient

tim e atserver

Transport Layer 3-108

TCP Mocirc higravenh trễ (4)

)1(log

)1(logmin

12min

222min

222min

2

2

110

110

S

OS

Okk

S

Ok

SOk

OSSSkK

k

k

k

caacutech tiacutenh toaacuten Q tương tự (xem HW)

K = số lượng cửa sổ bao trugravem đối tượngLagravem thế nagraveo tiacutenh được K

Transport Layer 3-109

HTTP Mocirc higravenh Giả sử trang Web chứa

1 trang HTML (kiacutech thước O bits) M higravenh ảnh (mỗi caacutei kiacutech thướcO bits)

HTTP khocircng bền vững M+1 TCP kết nối Thời gian đaacutep ứng = (M+1)OR + (M+1)2RTT + tổng số thời

gian rảnh HTTP bền vững

2 RTT để yecircu cầu vagrave nhận file HTML 1 RTT để yecircu cầu vagrave nhận M higravenh ảnh Thời gian đaacutep ứng = (M+1)OR + 3RTT + tổng số thời gian

rảnh HTTP khocircng bền vững với X kết nối song song

Giả sử MX lagrave số nguyecircn 1 TCP kết nối cho file MX thiết lập caacutec kết nối song song cho caacutec higravenh ảnh Thời gian đaacutep ứng = (M+1)OR + (MX + 1)2RTT + tổng số

thời gian rảnh

Transport Layer 3-110

02468

101214161820

28Kbps

100Kbps

1Mbps

10Mbps

non-persistent

persistent

parallel non-persistent

HTTP thời gian đaacutep ứng (giacircy)RTT = 100 msec O = 5 Kbytes M=10 vagrave X=5

Với băng thocircng thấp thời gian kết nối amp đaacutep ứng trội hơn thời gian truyền

Caacutec kết nối bền vững chỉ cho sự cải thiện khocircng đaacuteng kể trecircn caacutec kết nối song song

Transport Layer 3-111

0

10

20

30

40

50

60

70

28Kbps

100Kbps

1Mbps

10Mbps

non-persistent

persistent

parallel non-persistent

HTTP thời gian đaacutep ứng (giacircy)

RTT =1 sec O = 5 Kbytes M=10 and X=5

Với RTT lớn hơn thời gian đaacutep ứng trội hơn thời gian trễ chờ thiết lập kết nốiTCP amp khởi động chậm Caacutec kết nối bền vững bacircy giờ cho thấy cải thiện rotilde rệt đặc biệtvới caacutec mạng băng thocircng cao

Transport Layer 3-112

Chương 3 Tổng kết caacutec nguyecircn lyacute của caacutec

dịch vụ lớp transport multiplexing

demultiplexing truyền dữ liệu tin cậy điều khiển luồng điều khiển tắc nghẽn

khởi tạo vagrave hiện thực trong Internet UDP TCP

Tiếp theo nghiecircn cứu xong

caacutec vấn đề ldquongoagravei biecircnrdquo (caacutec lớp application transport)

chuẩn bị vagraveo phần ldquolotildeirdquo của mạng

  • Slide 1
  • Chương 3 Lớp Transport
  • Chương 3 Nội dung trigravenh bagravey
  • Caacutec dịch vụ vagrave giao thức Transport
  • Lớp Transport với lớp network
  • Caacutec giao thức lớp transport trecircn Internet
  • Slide 7
  • Multiplexingdemultiplexing
  • Demultiplexing lagravem việc như thế nagraveo
  • Demultiplexing khocircng kết nối
  • Demultiplexing khocircng kết nối (tiếp)
  • Demultiplexing hướng kết nối
  • Demultiplexing hướng kết nối (tiếp)
  • Demultiplexing hướng kết nối Threaded Web Server
  • Slide 15
  • UDP User Datagram Protocol [RFC 768]
  • UDP (tt)
  • UDP checksum
  • Viacute dụ Checksum
  • Slide 20
  • Caacutec nguyecircn lyacute truyền dữ liệu tin cậy
  • Slide 22
  • Slide 23
  • Truyền dữ liệu tin cậy
  • Slide 25
  • Rdt10 truyền dữ liệu tin cậy trecircn 1 kecircnh truyền tin cậy
  • Rdt20 kecircnh với caacutec lỗi
  • rdt20 đặc tả FSM
  • rdt20 hoạt động khi khocircng lỗi
  • rdt20 hoạt động khi coacute lỗi
  • rdt20 coacute lỗ hổng nghiecircm trọng
  • rdt21 người gửi quản lyacute caacutec ACKNAK bị hỏng
  • Slide 33
  • rdt21 thảo luận
  • rdt22 một giao thức khocircng cần NAK
  • rdt22 gửi nhận caacutec mảnh
  • rdt30 caacutec kecircnh với lỗi vagrave mất maacutet
  • rdt30 gửi
  • hagravenh động của rdt30
  • Slide 40
  • Hiệu suất của rdt30
  • rdt30 hoạt động dừng-vagrave-chờ
  • Caacutec giao thức Pipelined
  • Pipelining độ khả dụng tăng
  • Go-Back-N
  • GBN becircn gửi mở rộng FSM
  • GBN becircn nhận mở rộng FSM
  • GBN hoạt động
  • Lặp coacute lựa chọn
  • Lặp coacute lựa chọn caacutec cửa sổ gửi nhận
  • Slide 51
  • Hoạt động của lặp coacute lựa chọn
  • Lặp coacute lựa chọn tigravenh trạng khoacute giải quyết
  • Slide 54
  • TCP Tổng quan RFCs 793 1122 1323 2018 2581
  • TCP cấu truacutec đoạn
  • Caacutec số thứ tự TCP vagrave ACK
  • TCP Round Trip Time vagraveTimeout
  • TCP Round Trip Time vagrave Timeout
  • Viacute dụ đaacutenh giaacute RTT
  • Slide 61
  • TCP truyền dữ liệu tin cậy
  • TCP caacutec sự kiện
  • TCP becircn gửi (đơn giản)
  • TCP caacutec tigravenh huống truyền lại
  • TCP caacutec tigravenh huống truyền lại (tt)
  • TCP sinh ra ACK [RFC 1122 RFC 2581]
  • Truyền lại nhanh
  • Giải thuật truyền lại nhanh
  • Slide 70
  • TCP điều khiển luồng
  • TCP điều khiển luồng caacutech lagravem
  • Slide 73
  • TCP quản lyacute kết nối
  • TCP quản lyacute kết nối (tt)
  • Slide 76
  • Slide 77
  • Slide 78
  • Caacutec nguyecircn lyacute điều khiển tắc nghẽn
  • Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 1
  • Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 2
  • Slide 82
  • Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 3
  • Slide 84
  • Caacutec caacutech tiếp cận đối với điều khiển tắc nghẽn
  • Viacute dụ điều khiển tắc nghẽn ATM ABR
  • Slide 87
  • Slide 88
  • TCP điều khiển tắc nghẽn additive tăng lecircn multiplicative giảm xuống
  • TCP điều khiển tắc nghẽn chi tiết
  • TCP khởi động chậm
  • TCP khởi động chậm (tt)
  • Tinh chế
  • Tinh chế nhận biết mất maacutet
  • Tổng kết TCP điều khiển tắc nghẽn
  • TCP điều khiển tắc nghẽn becircn gửi
  • TCP throughput
  • TCP tương lai
  • TCP tiacutenh cocircng bằng
  • Tại sao phải TCP cocircng bằng
  • TCP tiacutenh cocircng bằng (tt)
  • Mocirc higravenh trễ
  • Cửa sổ tắc nghẽn cố định (1)
  • Cửa sổ tắc nghẽn cố định (2)
  • TCP Mocirc higravenh trễ Khởi động chậm (1)
  • TCP Mocirc higravenh trễ Khởi động chậm (2)
  • TCP Mocirc higravenh trễ(3)
  • TCP Mocirc higravenh trễ (4)
  • HTTP Mocirc higravenh
  • Slide 110
  • Slide 111
  • Chương 3 Tổng kết

Transport Layer 3-59

TCP Round Trip Time vagrave Timeout

EstimatedRTT = (1- )EstimatedRTT + SampleRTT

giaacute trị đặc trưng = 0125

Transport Layer 3-60

Viacute dụ đaacutenh giaacute RTTRTT gaiacsumassedu to fantasiaeurecomfr

100

150

200

250

300

350

1 8 15 22 29 36 43 50 57 64 71 78 85 92 99 106

time (seconnds)

RTT

(mill

isec

onds

)

SampleRTT Estimated RTT

Transport Layer 3-61

TCP Round Trip Time vagrave Timeout

Thiết lập timeout EstimtedRTT cộng ldquohệ số dự trữ an toagravenrdquo

sự biến thiecircn lớn trong EstimatedRTT -gt hệ số dự trữ an toagraven lớn hơn ước lượng đầu tiecircn về sự biến thiecircn của SampleRTT từ EstimatedRTT

TimeoutInterval = EstimatedRTT + 4DevRTT

DevRTT = (1-)DevRTT + |SampleRTT-EstimatedRTT|

(tiecircu biểu = 025)

Sau đoacute thiết lập timeout interval

Transport Layer 3-62

TCP truyền dữ liệu tin cậy

TCP tạo dịch vụ rdt trecircn dịch vụ khocircng tin cậy IP

caacutec đoạn Pipelined caacutec ACK tiacutech lũy TCP dugraveng bộ định thigrave

truyền lại đơn

Truyền lại được kiacutech hoạt bởi caacutec sự kiện timeout caacutec ack trugraveng lặp

luacutec đầu khảo saacutet caacutec becircn gửi TCP đơn giản lờ đi caacutec ack trugraveng lặp lờ đi điều khiển luồng

điều khiển tắc nghẽn

Transport Layer 3-63

TCP caacutec sự kiệndữ liệu đatilde nhận từ ứng

dụng tạo đoạn với số thứ

tự của noacute số thứ tự lagrave số theo

byte dữ liệu đầu tiecircn khởi động bộ định thigrave

nếu chưa chạy khoảng thời gian hết

hạn TimeOutInterval

timeout gửi lại đoạn nagraveo gacircy

ra timeout khởi động lại bộ định

thigrave Ack đatilde nhận

cập nhật caacutei gigrave sẽ được ACK

khởi động bộ định thigrave nếu coacute caacutec đoạn cograven chờ

Transport Layer 3-64

TCP becircn gửi(đơn giản)

NextSeqNum = InitialSeqNum SendBase = InitialSeqNum

loop (forever) switch(event)

event data received from application above create TCP segment with sequence number NextSeqNum if (timer currently not running) start timer pass segment to IP NextSeqNum = NextSeqNum + length(data)

event timer timeout retransmit not-yet-acknowledged segment with smallest sequence number start timer

event ACK received with ACK field value of y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer

end of loop forever

Chuacute thiacutechbull SendBase-1 byte vừa được ACK tiacutech lũy Viacute dụbull SendBase-1 = 71y= 73 vigrave thế becircn nhận muốn 73+ y gt SendBase vigrave thế dữ liệu mới được chấp nhận

Transport Layer 3-65

TCP caacutec tigravenh huống truyền lại

Host A

Seq=100 20 bytes data

ACK=100

timetimeout sớm

Host B

Seq=92 8 bytes data

ACK=120

Seq=92 8 bytes data

Seq=

92

tim

eout

ACK=120

Host A

Seq=92 8 bytes data

ACK=100

loss

tim

eout

tigravenh huống mất ACK

Host B

X

Seq=92 8 bytes data

ACK=100

time

Seq=

92

tim

eout

SendBase= 100

SendBase= 120

SendBase= 120

Sendbase= 100

Transport Layer 3-66

TCP caacutec tigravenh huống truyền lại (tt)Host A

Seq=92 8 bytes data

ACK=100

loss

tim

eout

Cumulative ACK scenario

Host B

X

Seq=100 20 bytes data

ACK=120

time

SendBase= 120

Transport Layer 3-67

TCP sinh ra ACK [RFC 1122 RFC 2581]

Sự kiện tại becircn nhận

Đoạn đến với đuacuteng số thứ tự mong muốn Tất cả dữ liệu đếnđatilde được ACK

Đoạn đến với đuacuteng số thứ tự mong muốn Một đoạn khaacutec đangchờ ACK

Caacutec đoạn đến khocircng thứ tựlớn hơn số thứ tự đoạn mong muốnCoacute khoảng trống

Đoạn đếnlấp đầy từng phần hoặc toagraven bộkhoảng trống

TCP becircn nhận hagravenh động

ACK trễ Chờ đến 500mscho đoạn kế tiếp Nếu khocircng coacute đoạnkế tiếp gửi ACK

Gửi ngay một ACK tiacutech lũy chấp nhậncho cả caacutec đoạn theo thứ tự

Gửi ngay ACK trugraveng lặp chỉ thị số thứ tựđoạn của byte kế tiếp đang mong chờ

Gửi ngay ACK với điều kiện lagrave đoạnbắt đầu ngay điểm coacute khoảng trống

Transport Layer 3-68

Truyền lại nhanh

Chu kỳ Time-out thường tương đối dagravei độ trễ dagravei trước khi gửi

lại goacutei đatilde mất

Xaacutec nhận caacutec đoạn đatilde mất bằng caacutec ACK trugraveng lặp becircn gửi thường gửi

nhiều đoạn song song Nếu đoạn bị mất sẽ

xảy ra tigravenh trạng giống như nhiều ACK trugraveng nhau

Nếu becircn gửi nhận 3 ACK của cugraveng một dữ liệu noacute cho lagrave đoạn sau dữ liệu đatilde ACK bị mất Truyền lại nhanh gửi

lại đoạn trước khi bộ định thigrave hết hạn

Transport Layer 3-69

sự kiện ACK đatilde nhận với trường lagrave y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer else increment count of dup ACKs received for y if (count of dup ACKs received for y = 3) resend segment with sequence number y

Giải thuật truyền lại nhanh

một ACK trugraveng lặp cho đoạn đatilde được ACK

Truyền lại nhanh

Transport Layer 3-70

Chương 3 Nội dung trigravenh bagravey

31 Caacutec dịch vụ lớp Transport

32 Multiplexing vagrave demultiplexing

33 Vận chuyển khocircng kết nối UDP

34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy

35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối

36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn

37 Điều khiển tắc nghẽn TCP

Transport Layer 3-71

TCP điều khiển luồng

becircn nhận của kết nối TCP coacute một bộ đệm nhận

dịch vụ so trugraveng tốc độ so trugraveng tốc độ gửi với tốc độ nhận của ứng dụng

tiến trigravenh ứng dụng coacute thể chậm tại luacutec đọc bộ đệm

becircn gửi sẽ khocircng lagravem tragraven bộ đệm vigrave truyền quaacute nhiều vagrave

quaacute nhanh

điều khiển luồng

Transport Layer 3-72

TCP điều khiển luồng caacutech lagravem

(Giả sử becircn nhận TCP loại bỏ caacutec đoạn khocircng coacute thứ tự)

dự phograveng trong bộ đệm= RcvWindow

= RcvBuffer-[LastByteRcvd - LastByteRead]

Becircn nhận thocircng baacuteo khoảng dự trữ nhờ giaacute trị RcvWindow trong caacutec đoạn

Becircn gửi hạn chế dữ liệu khocircng được ACK vagraveo RcvWindow bảo đảm bộ đệm nhận

khocircng tragraven

Transport Layer 3-73

Chương 3 Nội dung trigravenh bagravey

31 Caacutec dịch vụ lớp Transport

32 Multiplexing vagrave demultiplexing

33 Vận chuyển khocircng kết nối UDP

34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy

35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối

36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn

37 Điều khiển tắc nghẽn TCP

Transport Layer 3-74

TCP quản lyacute kết nối

Chuacute yacute Becircn gửi vagrave becircn nhận TCP thiết lập ldquokết nốirdquo trước khi trao đổi dữ liệu

khởi tạo caacutec biến TCP caacutec số thứ tự đoạn thocircng tin caacutec bộ đệm điều

khiển luồng (như RcvWindow)

client người khởi xướng kết nối

Socket clientSocket = new Socket(hostnameport

number) server được tiếp xuacutec bởi

client Socket connectionSocket =

welcomeSocketaccept()

3 phương phaacutep bắt tay

Bước 1 client host gửi đoạnTCP SYN đến server xaacutec định số thứ tự khởi đầu khocircng phải dữ liệu

Bước 2 server host nhận SYN trả lời với đoạn SYNACK

server cấp phaacutet caacutec bộ đệm

xaacutec định số thứ tự khởi đầuBước 3 client nhận SYNACK trả

lời với đoạn ACK (coacute thể chứa dữ liệu)

Transport Layer 3-75

TCP quản lyacute kết nối (tt)

Đoacuteng một kết nối

client đoacuteng socket clientSocketclose()

Bước 1 client gửi đoạn điều khiển TCP FIN đến server

Bước 2 server nhận FIN trả lời với ACK Đoacuteng kết nối gửi FIN

client

FIN

server

ACK

ACK

FIN

đoacuteng

đoacuteng

đatilde đoacutengthời g

ian c

hờ

Transport Layer 3-76

TCP quản lyacute kết nối (tt)

Bước 3 client nhận FIN trả lời với ACK

Trong khoảng ldquothời gian chờrdquo ndash sẽ phản hồi với ACK để nhận caacutec FIN

Bước 4 server nhận ACK Kết nối đatilde đoacuteng

Chuacute yacute với một sửa đổi nhỏ coacute thể quản lyacute nhiều FIN đồng thời

client

FIN

server

ACK

ACK

FIN

đang đoacuteng

đang đoacuteng

đatilde đoacuteng

thời g

ian c

hờ

đatilde đoacuteng

Transport Layer 3-77

TCP quản lyacute kết nối (tt)

chu kỳ sống củaTCP client

chu kỳ sống củaTCP server

Transport Layer 3-78

Chương 3 Nội dung trigravenh bagravey

31 Caacutec dịch vụ lớp Transport

32 Multiplexing vagrave demultiplexing

33 Vận chuyển khocircng kết nối UDP

34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy

35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối

36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn

37 Điều khiển tắc nghẽn TCP

Transport Layer 3-79

Caacutec nguyecircn lyacute điều khiển tắc nghẽn

Tắc nghẽn ldquoquaacute nhiều nguồn gửi quaacute nhanh vagrave quaacute nhiều

dữ liệu đến mạngrdquo khaacutec với điều khiển luồng caacutec biểu hiện

caacutec goacutei bị mất (tragraven bộ đệm tại caacutec router) caacutec độ trễ quaacute dagravei (xếp hagraveng trong bộ đệm

của router) lagrave 1 trong 10 vấn đề nan giải nhất

Transport Layer 3-80

Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 1

2 gửi 2 nhận 1 router caacutec bộ

đệm khocircng giới hạn

khocircng coacute truyền lại

caacutec độ trễ lớn hơn khi tắc nghẽn

năng suất coacute thể đạt tối đa

unlimited shared output link buffers

Host Ain original data

Host B

out

Transport Layer 3-81

Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 2

1 router caacutec bộ đệm coacute giới hạn becircn gửi truyền lại caacutec goacutei đatilde mất

chia sẻ vocirc hạncaacutec bộ đệm ouput

Host A in dữ liệu gốc

Host B

out

in dữ liệu gốc cugraveng với dữ liệu truyền lại

Transport Layer 3-82

Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 2 luocircn luocircn

truyền lại ldquohoagraven toagravenrdquo chỉ khi mất maacutet

truyền lại vigrave trễ (khocircng mất) lagravem cho lớn hơn với cugraveng

in

out

=

in

out

gt

in

out

ldquocaacutec chi phiacuterdquo của tắc nghẽn nhiều việc (truyền lại) caacutec truyền lại khocircng cần thiết liecircn kết nhiều bản sao của

goacutei

R2

R2in

ou

t

b

R2

R2in

ou

t

a

R2

R2in

ou

t

c

R4

R3

Transport Layer 3-83

Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 3 4 người gửi caacutec đường qua nhiều hop timeouttruyền lại

in

Hỏi điều gigrave xảy ra nếu vagrave tăng lecircn

in

chia sẻ vocirc hạncaacutec bộ đệm ouput

Host Ain dữ liệu gốc

Host B

out

in dữ liệu gốc cugraveng với dữ liệu truyền lại

Transport Layer 3-84

Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 3

ldquochi phiacuterdquo khaacutec của tắc nghẽn khi caacutec goacutei bị bỏ bất kỳ ldquokhả năng truyền

upstream dugraveng cho goacutei đoacute sẽ bị latildeng phiacuterdquo

Host A

Host B

o

u

t

Transport Layer 3-85

Caacutec caacutech tiếp cận đối với điều khiển tắc nghẽn

điều khiển tắc nghẽn end-end

khocircng coacute phản hồi rotilde ragraveng từ mạng

tắc nghẽn được suy ra từ việc quan saacutet caacutec hệ thống đầu cuối coacute mất maacutet trễ

tiếp cận được quản lyacute bởi TCP

điều khiển tắc nghẽn coacute sự hỗ trợ của mạng

caacutec router cung cấp phản hồi về caacutec hệ thống đầu cuối 1 bit duy nhất chỉ thị

tắc nghẽn (SNA DECbit TCPIP ECN ATM)

tốc độ sẽ gửi được xaacutec định rotilde ragraveng

2 caacutech

Transport Layer 3-86

Viacute dụ điều khiển tắc nghẽn ATM ABR

ABR tốc độ bit sẵn sagraveng

ldquodịch vụ mềm dẻordquo nếu đường gửi ldquochưa

hếtrdquo becircn gửi sẽ dugraveng

băng thocircng sẵn sagraveng nếu đường gửi tắc

nghẽn becircn gửi điều tiết với

tốc độ tối thiểu

RM (resource management)

gửi bởi becircn gửi rải raacutec với caacutec ocirc dữ liệu

caacutec bit trong ocirc thiết lập bởi caacutec switch bit NI khocircng tăng tốc độ

(tắc nghẽn nhẹ) bit CI tắc nghẽn rotilde rệt

Caacutec ocirc RM được trả về becircn gửi từ becircn nhận với nguyecircn vẹn caacutec bit

Transport Layer 3-87

Viacute dụ điều khiển tắc nghẽn ATM ABR

trường 2-byte ER trong ocirc RM switch đatilde tắc nghẽn coacute thể coacute giaacute trị ER thấp hơn trong ocirc tốc độ gửi do đoacute coacute thể được hỗ trợ tối đa trecircn đường

EFCI bit trong caacutec ocirc dữ liệu được cagravei giaacute trị 1 trong switch đatilde tắc nghẽn nếu ocirc dữ liệu đứng trước ocirc RM coacute cagravei EFCI becircn gửi sẽ cagravei

bit CI trong ocirc RM trả về

Transport Layer 3-88

Chương 3 Nội dung trigravenh bagravey

31 Caacutec dịch vụ lớp Transport

32 Multiplexing vagrave demultiplexing

33 Vận chuyển khocircng kết nối UDP

34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy

35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối

36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn

37 Điều khiển tắc nghẽn TCP

Transport Layer 3-89

TCP điều khiển tắc nghẽn additive tăng lecircn multiplicative giảm xuống

8 Kbytes

16 Kbytes

24 Kbytes

time

congestionwindow

Caacutech tiếp cận tăng tốc độ truyền (kiacutech thước cửa sổ) tigravem khả năng băng thocircng coacute thể cho đến khi coacute mất maacutet xảy ra additive tăng lecircn tăng CongWin bởi 1 MSS

mỗi RTT cho đến khi coacute mất maacutet xảy ra multiplicative giảm xuống bỏ CongWin trong

nửa giai đoạn sau khi mất maacutet

timekiacutech

thư

ớc

cửa

sổ

tắc

nghẽ

n

Tigravem kiếm băng thocircng

Transport Layer 3-90

TCP điều khiển tắc nghẽn chi tiết

becircn gửi hạn chế việc truyền LastByteSent-LastByteAcked

CongWin Cocircng thức

CongWin thay đổi chức năng lagrave nhận biết tắc nghẽn trecircn mạng

Lagravem thế nagraveo becircn gửi nhận biết tắc nghẽn

mất maacutet xảy ra = timeout hoặc 3 ack trugraveng lặp

becircn gửi giảm tốc độ (CongWin) sau khi mất maacutet xảy ra

3 cơ chế AIMD khởi động chậm thận trọng sau khi coacute

caacutec sự kiện timeout

tốc độ = CongWin

RTT Bytess

Transport Layer 3-91

TCP khởi động chậm

Khi kết nối bắt đầu CongWin = 1 MSS Viacute dụ MSS = 500 bytes

amp RTT = 200 ms tốc độ khởi tạo = 20

kbps

băng thocircng sẵn sagraveng coacute thể gtgt MSSRTT mong muốn nhanh

choacuteng tăng tốc lecircn tốc độ coacute thể đaacutep ứng

Khi kết nối bắt đầu tăng tốc lecircn rất nhanh cho đến khi sự cố mất maacutet xảy ra đầu tiecircn

Transport Layer 3-92

TCP khởi động chậm (tt)

Khi kết nối bắt đầu tăng tốc lecircn rất nhanh cho đến khi sự cố mất maacutet xảy ra đầu tiecircn nhacircn đocirci CongWin mỗi

RTT hoagraven thagravenh nhờ tăng CongWin ứng với mỗi ACK đatilde nhận

Tổng kết tốc độ khởi đầu lagrave chậm nhưng sau đoacute tăng tốc rất nhanh

Host A

1 đoạn

RTT

Host B

thời gian

2 đoạn

4 đoạn

Transport Layer 3-93

Tinh chếHỏi Khi nagraveo việc tăng

tốc trở thagravenh tuyến tiacutenh

Trả lời Khi CongWin đạt đến 12 giaacute trị của noacute trước khi timeout

Hiện thực Ngưỡng thay đổi Tại thời điểm coacute sự cố

mất maacutet ngưỡng được cagravei giaacute trị bằng frac12 của CongWin ngay trước đoacute

Transport Layer 3-94

Tinh chế nhận biết mất maacutet

Sau 3 ACK trugraveng lặp CongWin sẽ giảm 12 kiacutech thước cửa sổ

tăng tuyến tiacutenh nhưng sau sự cố

timeout CongWin thay giaacute trị

bằng 1 MSS kiacutech thước cửa sổ

tăng cấp lũy thừa khi đến một ngưỡng

thigrave tăng tuyến tiacutenh

3 ACK trugraveng nhau chỉ ra khả năng truyền của mạng timeout chỉ thị ldquonhiều cảnh baacuteordquo về tigravenh huống tắc nghẽn

Nguyecircn lyacute

Transport Layer 3-95

Tổng kết TCP điều khiển tắc nghẽn

Khi CongWin dưới Threshold becircn gửi đang trong giai đoạn khởi động chậm kiacutech thước cửa sổ tăng nhanh theo cấp lũy thừa

Khi CongWin trecircn Threshold becircn gửi đang trong giai đoạn traacutenh tắc nghẽn kiacutech thước cửa sổ tăng nhanh theo cấp tuyến tiacutenh

Khi coacute 3 ACK trugraveng lặp xảy ra Threshold = CongWin2 vagrave CongWin = Threshold

Khi timeout xảy ra Threshold = CongWin2 vagrave CongWin = 1 MSS

Transport Layer 3-96

TCP điều khiển tắc nghẽn becircn gửi

Trạng thaacutei Sự kiện TCP becircn gửi hagravenh động Diễn giải

Slow Start (SS)-Khởi động chậm

ACK baacuteo nhận cho dữ liệu chưa ACK trước đoacute

CongWin = CongWin + MSS If (CongWin gt Threshold) cagravei đặt trạng thaacutei ldquoTraacutenh tắc nghẽnrdquo

Hậu quả lagravem tăng gấp đocirci CongWin mỗi RTT

CongestionAvoidance (CA) ndashTraacutenh tắc nghẽn

ACK baacuteo nhận cho dữ liệu chưa ACK trước đoacute

CongWin = CongWin+MSS (MSSCongWin)

Additive tăng lecircn lagravem tăng CongWin lecircn 1 MSS mỗi RTT

SS hoặc CA Sự cố mất maacutet xảy ra khi thấy coacute 3 ACK trugraveng lặp

Threshold = CongWin2 CongWin = Thresholdcagravei đặt trạng thaacutei ldquoTraacutenh tắc nghẽnrdquo

Khocirci phục nhanh hiện thực giảm xuống multiplicative CongWin sẽ khocircng giảm xuống dưới 1 MSS

SS hoặc CA Timeout Threshold = CongWin2 CongWin = 1 MSScagravei đặt trạng thaacutei ldquoKhởi động chậmrdquo

Vagraveo chế độ ldquoKhởi động chậmrdquo

SS hoặc CA ACK trugraveng lặp

Đếm ACK tăng lecircn cho đoạn vừa được ACK

CongWin vagrave Threshold khocircng thay đổi

Transport Layer 3-97

TCP throughput

Throughout trung bigravenh của TCP biểu diễn qua kiacutech thước của sổ vagrave RTT Bỏ qua trạng thaacutei ldquoKhởi động chậmrdquo

Cho W lagrave kiacutech thước cửa sổ khi coacute mất maacutet xảy ra

Khi kiacutech thước cửa sổ = W lưu lượng = WRTT

Chỉ ngay sau khi mất maacutet cửa sổ giảm xuống = W2 lưu lượng = W2RTT

throughout trung bigravenh 075 WRTT

Transport Layer 3-98

TCP tương lai

Viacute dụ caacutec đoạn dagravei 1500 byte RTT 100ms lưu lượng 10 Gbps

Kiacutech thước cửa sổ yecircu cầu W = 83333 đoạn trecircn đường truyền

Lưu lượng trong caacutec trường hợp mất maacutet

L = 210-10

Phiecircn bản mới của TCP dagravenh cho nhu cầu tốc độ cao

LRTT

MSS221

Transport Layer 3-99

Mục tiecircu nếu K phiecircn lagravem việc TCP chia sẻ kết nối cổ chai của băng thocircng lagrave R mỗi phiecircn coacute tốc độ trung bigravenh lagrave RK

TCP kết nối 1

router cổ chaikhả năng R

TCP kết nối 2

TCP tiacutenh cocircng bằng

Transport Layer 3-100

Tại sao phải TCP cocircng bằng

2 phiecircn lagravem việc cạnh tranh nhau Additive tăng lưu lượng tăng multiplicative giảm lưu lượng tương xứng

R

R

chia sẻ băng thocircng bằng nhau

Connection 1 throughputConnect

ion 2

th

roughput

traacutenh tắc nghẽn additive tăng lecircnmất maacutet giảm cửa sổ bằng 12

traacutenh tắc nghẽn additive tăng lecircnmất maacutet giảm cửa sổ bằng 12

Transport Layer 3-101

TCP tiacutenh cocircng bằng (tt)

Tiacutenh cocircng bằng amp UDP nhiều ứng dụng

thường khocircng dugraveng TCP khocircng muốn tốc độ bị

điều tiết do điều khiển tắc nghẽn

Thay bằng dugraveng UDP truyền audiovideo với

tốc độ ổn định chịu được mất maacutet

Nghiecircn cứu giao thức thacircn thiện với TCP

Tiacutenh cocircng bằng amp caacutec kết nối TCP song song

khocircng coacute gigrave ngăn cản việc ứng dụng mở caacutec kết nối song song giữa 2 host

Trigravenh duyệt Web lagravem giống như thế

Viacute dụ tốc độ R hỗ trợ 9 kết nối ứng dụng mới yecircu cầu 1

TCP coacute tốc độ R10 ứng dụng mới yecircu cầu 11

TCP coacute tốc độ R2

Transport Layer 3-102

Mocirc higravenh trễ

Hỏi Mất bao lacircu để nhận 1 đối tượng từ Web server sau khi gửi yecircu cầu

Bỏ qua tắc nghẽn trễ bị ảnh hưởng bởi

thiết lập kết nối TCP trễ truyền dữ liệu khởi động chậm

Notation caacutec giả định Giả sử một kết nối giữa

client vagrave server coacute tốc độ R

S MSS (bits) O kiacutech thước đối tượng

(bits) khocircng truyền lại (khocircng

mất maacutet khocircng hỏng)

Kiacutech thước cửa sổ Giả định 1 cửa sổ tắc

nghẽn cố định coacute W đoạn Sau đoacute cửa sổ thay đổi

mocirc higravenh khởi động chậm

Transport Layer 3-103

Cửa sổ tắc nghẽn cố định (1)

Trường hợp đầu tiecircnWSR gt RTT + SR cho

đoạn đầu tiecircn trong cửa sổ trả về trước khi cửa sổ dữ liệu gửi ACK

trễ = 2RTT + OR

Transport Layer 3-104

Cửa sổ tắc nghẽn cố định (2)

Trường hợp thứ hai WSR lt RTT + SR sent

chờ cho ACK sau khi gửi dữ liệu

trễ = 2RTT + OR+ (K-1)[SR + RTT - WSR]

Transport Layer 3-105

TCP Mocirc higravenh trễ Khởi động chậm (1)

Bacircy giờ giả sử kiacutech thước cửa sổ tăng lecircn tugravey theo quaacute trigravenh khởi động chậm

Độ trễ của một đối tượng sẽ lagrave

R

S

R

SRTTP

R

ORTTLatency P )12(2

trong đoacute P lagrave số lần TCP rảnh ở tại server

1min KQP

- trong đoacute Q lagrave số lần server rảnh nếu đối tượng đatilde khởi tạo kiacutech thước

- vagrave K lagrave số lượng cửa sổ bao trugravem đối tượng

Transport Layer 3-106

TCP Mocirc higravenh trễ Khởi động chậm (2)

RTT

initia te TCPconnection

requestobject

first w indow= S R

second w indow= 2S R

third w indow= 4S R

fourth w indow= 8S R

com pletetransm issionobject

delivered

tim e atc lient

tim e atserver

Viacute dụbull OS = 15 đoạnbull K = 4 cửa sổbull Q = 2bull P = minK-1Q = 2

Server rảnh P=2 lần

Caacutec thagravenh phần trễbull 2 RTT dagravenh cho thiết lập kết nối vagrave yecircu cầubull OR để truyền đối tượngbullthời gian server rảnh bởi vigrave khởi động chậm

Server rảnh P = minK-1Q lần

Transport Layer 3-107

TCP Mocirc higravenh trễ(3)

R

S

R

SRTTPRTT

R

O

R

SRTT

R

SRTT

R

O

idleTimeRTTR

O

P

kP

k

P

pp

)12(][2

]2[2

2delay

1

1

1

th window after the timeidle 2 1 kR

SRTT

R

S k

ementacknowledg receivesserver until

segment send tostartsserver when from time RTTR

S

window kth the transmit totime2 1

R

Sk

RTT

initia te TCPconnection

requestobject

first w indow= S R

second w indow= 2S R

third w indow= 4S R

fourth w indow= 8S R

com pletetransm issionobject

delivered

tim e atc lient

tim e atserver

Transport Layer 3-108

TCP Mocirc higravenh trễ (4)

)1(log

)1(logmin

12min

222min

222min

2

2

110

110

S

OS

Okk

S

Ok

SOk

OSSSkK

k

k

k

caacutech tiacutenh toaacuten Q tương tự (xem HW)

K = số lượng cửa sổ bao trugravem đối tượngLagravem thế nagraveo tiacutenh được K

Transport Layer 3-109

HTTP Mocirc higravenh Giả sử trang Web chứa

1 trang HTML (kiacutech thước O bits) M higravenh ảnh (mỗi caacutei kiacutech thướcO bits)

HTTP khocircng bền vững M+1 TCP kết nối Thời gian đaacutep ứng = (M+1)OR + (M+1)2RTT + tổng số thời

gian rảnh HTTP bền vững

2 RTT để yecircu cầu vagrave nhận file HTML 1 RTT để yecircu cầu vagrave nhận M higravenh ảnh Thời gian đaacutep ứng = (M+1)OR + 3RTT + tổng số thời gian

rảnh HTTP khocircng bền vững với X kết nối song song

Giả sử MX lagrave số nguyecircn 1 TCP kết nối cho file MX thiết lập caacutec kết nối song song cho caacutec higravenh ảnh Thời gian đaacutep ứng = (M+1)OR + (MX + 1)2RTT + tổng số

thời gian rảnh

Transport Layer 3-110

02468

101214161820

28Kbps

100Kbps

1Mbps

10Mbps

non-persistent

persistent

parallel non-persistent

HTTP thời gian đaacutep ứng (giacircy)RTT = 100 msec O = 5 Kbytes M=10 vagrave X=5

Với băng thocircng thấp thời gian kết nối amp đaacutep ứng trội hơn thời gian truyền

Caacutec kết nối bền vững chỉ cho sự cải thiện khocircng đaacuteng kể trecircn caacutec kết nối song song

Transport Layer 3-111

0

10

20

30

40

50

60

70

28Kbps

100Kbps

1Mbps

10Mbps

non-persistent

persistent

parallel non-persistent

HTTP thời gian đaacutep ứng (giacircy)

RTT =1 sec O = 5 Kbytes M=10 and X=5

Với RTT lớn hơn thời gian đaacutep ứng trội hơn thời gian trễ chờ thiết lập kết nốiTCP amp khởi động chậm Caacutec kết nối bền vững bacircy giờ cho thấy cải thiện rotilde rệt đặc biệtvới caacutec mạng băng thocircng cao

Transport Layer 3-112

Chương 3 Tổng kết caacutec nguyecircn lyacute của caacutec

dịch vụ lớp transport multiplexing

demultiplexing truyền dữ liệu tin cậy điều khiển luồng điều khiển tắc nghẽn

khởi tạo vagrave hiện thực trong Internet UDP TCP

Tiếp theo nghiecircn cứu xong

caacutec vấn đề ldquongoagravei biecircnrdquo (caacutec lớp application transport)

chuẩn bị vagraveo phần ldquolotildeirdquo của mạng

  • Slide 1
  • Chương 3 Lớp Transport
  • Chương 3 Nội dung trigravenh bagravey
  • Caacutec dịch vụ vagrave giao thức Transport
  • Lớp Transport với lớp network
  • Caacutec giao thức lớp transport trecircn Internet
  • Slide 7
  • Multiplexingdemultiplexing
  • Demultiplexing lagravem việc như thế nagraveo
  • Demultiplexing khocircng kết nối
  • Demultiplexing khocircng kết nối (tiếp)
  • Demultiplexing hướng kết nối
  • Demultiplexing hướng kết nối (tiếp)
  • Demultiplexing hướng kết nối Threaded Web Server
  • Slide 15
  • UDP User Datagram Protocol [RFC 768]
  • UDP (tt)
  • UDP checksum
  • Viacute dụ Checksum
  • Slide 20
  • Caacutec nguyecircn lyacute truyền dữ liệu tin cậy
  • Slide 22
  • Slide 23
  • Truyền dữ liệu tin cậy
  • Slide 25
  • Rdt10 truyền dữ liệu tin cậy trecircn 1 kecircnh truyền tin cậy
  • Rdt20 kecircnh với caacutec lỗi
  • rdt20 đặc tả FSM
  • rdt20 hoạt động khi khocircng lỗi
  • rdt20 hoạt động khi coacute lỗi
  • rdt20 coacute lỗ hổng nghiecircm trọng
  • rdt21 người gửi quản lyacute caacutec ACKNAK bị hỏng
  • Slide 33
  • rdt21 thảo luận
  • rdt22 một giao thức khocircng cần NAK
  • rdt22 gửi nhận caacutec mảnh
  • rdt30 caacutec kecircnh với lỗi vagrave mất maacutet
  • rdt30 gửi
  • hagravenh động của rdt30
  • Slide 40
  • Hiệu suất của rdt30
  • rdt30 hoạt động dừng-vagrave-chờ
  • Caacutec giao thức Pipelined
  • Pipelining độ khả dụng tăng
  • Go-Back-N
  • GBN becircn gửi mở rộng FSM
  • GBN becircn nhận mở rộng FSM
  • GBN hoạt động
  • Lặp coacute lựa chọn
  • Lặp coacute lựa chọn caacutec cửa sổ gửi nhận
  • Slide 51
  • Hoạt động của lặp coacute lựa chọn
  • Lặp coacute lựa chọn tigravenh trạng khoacute giải quyết
  • Slide 54
  • TCP Tổng quan RFCs 793 1122 1323 2018 2581
  • TCP cấu truacutec đoạn
  • Caacutec số thứ tự TCP vagrave ACK
  • TCP Round Trip Time vagraveTimeout
  • TCP Round Trip Time vagrave Timeout
  • Viacute dụ đaacutenh giaacute RTT
  • Slide 61
  • TCP truyền dữ liệu tin cậy
  • TCP caacutec sự kiện
  • TCP becircn gửi (đơn giản)
  • TCP caacutec tigravenh huống truyền lại
  • TCP caacutec tigravenh huống truyền lại (tt)
  • TCP sinh ra ACK [RFC 1122 RFC 2581]
  • Truyền lại nhanh
  • Giải thuật truyền lại nhanh
  • Slide 70
  • TCP điều khiển luồng
  • TCP điều khiển luồng caacutech lagravem
  • Slide 73
  • TCP quản lyacute kết nối
  • TCP quản lyacute kết nối (tt)
  • Slide 76
  • Slide 77
  • Slide 78
  • Caacutec nguyecircn lyacute điều khiển tắc nghẽn
  • Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 1
  • Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 2
  • Slide 82
  • Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 3
  • Slide 84
  • Caacutec caacutech tiếp cận đối với điều khiển tắc nghẽn
  • Viacute dụ điều khiển tắc nghẽn ATM ABR
  • Slide 87
  • Slide 88
  • TCP điều khiển tắc nghẽn additive tăng lecircn multiplicative giảm xuống
  • TCP điều khiển tắc nghẽn chi tiết
  • TCP khởi động chậm
  • TCP khởi động chậm (tt)
  • Tinh chế
  • Tinh chế nhận biết mất maacutet
  • Tổng kết TCP điều khiển tắc nghẽn
  • TCP điều khiển tắc nghẽn becircn gửi
  • TCP throughput
  • TCP tương lai
  • TCP tiacutenh cocircng bằng
  • Tại sao phải TCP cocircng bằng
  • TCP tiacutenh cocircng bằng (tt)
  • Mocirc higravenh trễ
  • Cửa sổ tắc nghẽn cố định (1)
  • Cửa sổ tắc nghẽn cố định (2)
  • TCP Mocirc higravenh trễ Khởi động chậm (1)
  • TCP Mocirc higravenh trễ Khởi động chậm (2)
  • TCP Mocirc higravenh trễ(3)
  • TCP Mocirc higravenh trễ (4)
  • HTTP Mocirc higravenh
  • Slide 110
  • Slide 111
  • Chương 3 Tổng kết

Transport Layer 3-60

Viacute dụ đaacutenh giaacute RTTRTT gaiacsumassedu to fantasiaeurecomfr

100

150

200

250

300

350

1 8 15 22 29 36 43 50 57 64 71 78 85 92 99 106

time (seconnds)

RTT

(mill

isec

onds

)

SampleRTT Estimated RTT

Transport Layer 3-61

TCP Round Trip Time vagrave Timeout

Thiết lập timeout EstimtedRTT cộng ldquohệ số dự trữ an toagravenrdquo

sự biến thiecircn lớn trong EstimatedRTT -gt hệ số dự trữ an toagraven lớn hơn ước lượng đầu tiecircn về sự biến thiecircn của SampleRTT từ EstimatedRTT

TimeoutInterval = EstimatedRTT + 4DevRTT

DevRTT = (1-)DevRTT + |SampleRTT-EstimatedRTT|

(tiecircu biểu = 025)

Sau đoacute thiết lập timeout interval

Transport Layer 3-62

TCP truyền dữ liệu tin cậy

TCP tạo dịch vụ rdt trecircn dịch vụ khocircng tin cậy IP

caacutec đoạn Pipelined caacutec ACK tiacutech lũy TCP dugraveng bộ định thigrave

truyền lại đơn

Truyền lại được kiacutech hoạt bởi caacutec sự kiện timeout caacutec ack trugraveng lặp

luacutec đầu khảo saacutet caacutec becircn gửi TCP đơn giản lờ đi caacutec ack trugraveng lặp lờ đi điều khiển luồng

điều khiển tắc nghẽn

Transport Layer 3-63

TCP caacutec sự kiệndữ liệu đatilde nhận từ ứng

dụng tạo đoạn với số thứ

tự của noacute số thứ tự lagrave số theo

byte dữ liệu đầu tiecircn khởi động bộ định thigrave

nếu chưa chạy khoảng thời gian hết

hạn TimeOutInterval

timeout gửi lại đoạn nagraveo gacircy

ra timeout khởi động lại bộ định

thigrave Ack đatilde nhận

cập nhật caacutei gigrave sẽ được ACK

khởi động bộ định thigrave nếu coacute caacutec đoạn cograven chờ

Transport Layer 3-64

TCP becircn gửi(đơn giản)

NextSeqNum = InitialSeqNum SendBase = InitialSeqNum

loop (forever) switch(event)

event data received from application above create TCP segment with sequence number NextSeqNum if (timer currently not running) start timer pass segment to IP NextSeqNum = NextSeqNum + length(data)

event timer timeout retransmit not-yet-acknowledged segment with smallest sequence number start timer

event ACK received with ACK field value of y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer

end of loop forever

Chuacute thiacutechbull SendBase-1 byte vừa được ACK tiacutech lũy Viacute dụbull SendBase-1 = 71y= 73 vigrave thế becircn nhận muốn 73+ y gt SendBase vigrave thế dữ liệu mới được chấp nhận

Transport Layer 3-65

TCP caacutec tigravenh huống truyền lại

Host A

Seq=100 20 bytes data

ACK=100

timetimeout sớm

Host B

Seq=92 8 bytes data

ACK=120

Seq=92 8 bytes data

Seq=

92

tim

eout

ACK=120

Host A

Seq=92 8 bytes data

ACK=100

loss

tim

eout

tigravenh huống mất ACK

Host B

X

Seq=92 8 bytes data

ACK=100

time

Seq=

92

tim

eout

SendBase= 100

SendBase= 120

SendBase= 120

Sendbase= 100

Transport Layer 3-66

TCP caacutec tigravenh huống truyền lại (tt)Host A

Seq=92 8 bytes data

ACK=100

loss

tim

eout

Cumulative ACK scenario

Host B

X

Seq=100 20 bytes data

ACK=120

time

SendBase= 120

Transport Layer 3-67

TCP sinh ra ACK [RFC 1122 RFC 2581]

Sự kiện tại becircn nhận

Đoạn đến với đuacuteng số thứ tự mong muốn Tất cả dữ liệu đếnđatilde được ACK

Đoạn đến với đuacuteng số thứ tự mong muốn Một đoạn khaacutec đangchờ ACK

Caacutec đoạn đến khocircng thứ tựlớn hơn số thứ tự đoạn mong muốnCoacute khoảng trống

Đoạn đếnlấp đầy từng phần hoặc toagraven bộkhoảng trống

TCP becircn nhận hagravenh động

ACK trễ Chờ đến 500mscho đoạn kế tiếp Nếu khocircng coacute đoạnkế tiếp gửi ACK

Gửi ngay một ACK tiacutech lũy chấp nhậncho cả caacutec đoạn theo thứ tự

Gửi ngay ACK trugraveng lặp chỉ thị số thứ tựđoạn của byte kế tiếp đang mong chờ

Gửi ngay ACK với điều kiện lagrave đoạnbắt đầu ngay điểm coacute khoảng trống

Transport Layer 3-68

Truyền lại nhanh

Chu kỳ Time-out thường tương đối dagravei độ trễ dagravei trước khi gửi

lại goacutei đatilde mất

Xaacutec nhận caacutec đoạn đatilde mất bằng caacutec ACK trugraveng lặp becircn gửi thường gửi

nhiều đoạn song song Nếu đoạn bị mất sẽ

xảy ra tigravenh trạng giống như nhiều ACK trugraveng nhau

Nếu becircn gửi nhận 3 ACK của cugraveng một dữ liệu noacute cho lagrave đoạn sau dữ liệu đatilde ACK bị mất Truyền lại nhanh gửi

lại đoạn trước khi bộ định thigrave hết hạn

Transport Layer 3-69

sự kiện ACK đatilde nhận với trường lagrave y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer else increment count of dup ACKs received for y if (count of dup ACKs received for y = 3) resend segment with sequence number y

Giải thuật truyền lại nhanh

một ACK trugraveng lặp cho đoạn đatilde được ACK

Truyền lại nhanh

Transport Layer 3-70

Chương 3 Nội dung trigravenh bagravey

31 Caacutec dịch vụ lớp Transport

32 Multiplexing vagrave demultiplexing

33 Vận chuyển khocircng kết nối UDP

34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy

35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối

36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn

37 Điều khiển tắc nghẽn TCP

Transport Layer 3-71

TCP điều khiển luồng

becircn nhận của kết nối TCP coacute một bộ đệm nhận

dịch vụ so trugraveng tốc độ so trugraveng tốc độ gửi với tốc độ nhận của ứng dụng

tiến trigravenh ứng dụng coacute thể chậm tại luacutec đọc bộ đệm

becircn gửi sẽ khocircng lagravem tragraven bộ đệm vigrave truyền quaacute nhiều vagrave

quaacute nhanh

điều khiển luồng

Transport Layer 3-72

TCP điều khiển luồng caacutech lagravem

(Giả sử becircn nhận TCP loại bỏ caacutec đoạn khocircng coacute thứ tự)

dự phograveng trong bộ đệm= RcvWindow

= RcvBuffer-[LastByteRcvd - LastByteRead]

Becircn nhận thocircng baacuteo khoảng dự trữ nhờ giaacute trị RcvWindow trong caacutec đoạn

Becircn gửi hạn chế dữ liệu khocircng được ACK vagraveo RcvWindow bảo đảm bộ đệm nhận

khocircng tragraven

Transport Layer 3-73

Chương 3 Nội dung trigravenh bagravey

31 Caacutec dịch vụ lớp Transport

32 Multiplexing vagrave demultiplexing

33 Vận chuyển khocircng kết nối UDP

34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy

35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối

36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn

37 Điều khiển tắc nghẽn TCP

Transport Layer 3-74

TCP quản lyacute kết nối

Chuacute yacute Becircn gửi vagrave becircn nhận TCP thiết lập ldquokết nốirdquo trước khi trao đổi dữ liệu

khởi tạo caacutec biến TCP caacutec số thứ tự đoạn thocircng tin caacutec bộ đệm điều

khiển luồng (như RcvWindow)

client người khởi xướng kết nối

Socket clientSocket = new Socket(hostnameport

number) server được tiếp xuacutec bởi

client Socket connectionSocket =

welcomeSocketaccept()

3 phương phaacutep bắt tay

Bước 1 client host gửi đoạnTCP SYN đến server xaacutec định số thứ tự khởi đầu khocircng phải dữ liệu

Bước 2 server host nhận SYN trả lời với đoạn SYNACK

server cấp phaacutet caacutec bộ đệm

xaacutec định số thứ tự khởi đầuBước 3 client nhận SYNACK trả

lời với đoạn ACK (coacute thể chứa dữ liệu)

Transport Layer 3-75

TCP quản lyacute kết nối (tt)

Đoacuteng một kết nối

client đoacuteng socket clientSocketclose()

Bước 1 client gửi đoạn điều khiển TCP FIN đến server

Bước 2 server nhận FIN trả lời với ACK Đoacuteng kết nối gửi FIN

client

FIN

server

ACK

ACK

FIN

đoacuteng

đoacuteng

đatilde đoacutengthời g

ian c

hờ

Transport Layer 3-76

TCP quản lyacute kết nối (tt)

Bước 3 client nhận FIN trả lời với ACK

Trong khoảng ldquothời gian chờrdquo ndash sẽ phản hồi với ACK để nhận caacutec FIN

Bước 4 server nhận ACK Kết nối đatilde đoacuteng

Chuacute yacute với một sửa đổi nhỏ coacute thể quản lyacute nhiều FIN đồng thời

client

FIN

server

ACK

ACK

FIN

đang đoacuteng

đang đoacuteng

đatilde đoacuteng

thời g

ian c

hờ

đatilde đoacuteng

Transport Layer 3-77

TCP quản lyacute kết nối (tt)

chu kỳ sống củaTCP client

chu kỳ sống củaTCP server

Transport Layer 3-78

Chương 3 Nội dung trigravenh bagravey

31 Caacutec dịch vụ lớp Transport

32 Multiplexing vagrave demultiplexing

33 Vận chuyển khocircng kết nối UDP

34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy

35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối

36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn

37 Điều khiển tắc nghẽn TCP

Transport Layer 3-79

Caacutec nguyecircn lyacute điều khiển tắc nghẽn

Tắc nghẽn ldquoquaacute nhiều nguồn gửi quaacute nhanh vagrave quaacute nhiều

dữ liệu đến mạngrdquo khaacutec với điều khiển luồng caacutec biểu hiện

caacutec goacutei bị mất (tragraven bộ đệm tại caacutec router) caacutec độ trễ quaacute dagravei (xếp hagraveng trong bộ đệm

của router) lagrave 1 trong 10 vấn đề nan giải nhất

Transport Layer 3-80

Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 1

2 gửi 2 nhận 1 router caacutec bộ

đệm khocircng giới hạn

khocircng coacute truyền lại

caacutec độ trễ lớn hơn khi tắc nghẽn

năng suất coacute thể đạt tối đa

unlimited shared output link buffers

Host Ain original data

Host B

out

Transport Layer 3-81

Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 2

1 router caacutec bộ đệm coacute giới hạn becircn gửi truyền lại caacutec goacutei đatilde mất

chia sẻ vocirc hạncaacutec bộ đệm ouput

Host A in dữ liệu gốc

Host B

out

in dữ liệu gốc cugraveng với dữ liệu truyền lại

Transport Layer 3-82

Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 2 luocircn luocircn

truyền lại ldquohoagraven toagravenrdquo chỉ khi mất maacutet

truyền lại vigrave trễ (khocircng mất) lagravem cho lớn hơn với cugraveng

in

out

=

in

out

gt

in

out

ldquocaacutec chi phiacuterdquo của tắc nghẽn nhiều việc (truyền lại) caacutec truyền lại khocircng cần thiết liecircn kết nhiều bản sao của

goacutei

R2

R2in

ou

t

b

R2

R2in

ou

t

a

R2

R2in

ou

t

c

R4

R3

Transport Layer 3-83

Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 3 4 người gửi caacutec đường qua nhiều hop timeouttruyền lại

in

Hỏi điều gigrave xảy ra nếu vagrave tăng lecircn

in

chia sẻ vocirc hạncaacutec bộ đệm ouput

Host Ain dữ liệu gốc

Host B

out

in dữ liệu gốc cugraveng với dữ liệu truyền lại

Transport Layer 3-84

Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 3

ldquochi phiacuterdquo khaacutec của tắc nghẽn khi caacutec goacutei bị bỏ bất kỳ ldquokhả năng truyền

upstream dugraveng cho goacutei đoacute sẽ bị latildeng phiacuterdquo

Host A

Host B

o

u

t

Transport Layer 3-85

Caacutec caacutech tiếp cận đối với điều khiển tắc nghẽn

điều khiển tắc nghẽn end-end

khocircng coacute phản hồi rotilde ragraveng từ mạng

tắc nghẽn được suy ra từ việc quan saacutet caacutec hệ thống đầu cuối coacute mất maacutet trễ

tiếp cận được quản lyacute bởi TCP

điều khiển tắc nghẽn coacute sự hỗ trợ của mạng

caacutec router cung cấp phản hồi về caacutec hệ thống đầu cuối 1 bit duy nhất chỉ thị

tắc nghẽn (SNA DECbit TCPIP ECN ATM)

tốc độ sẽ gửi được xaacutec định rotilde ragraveng

2 caacutech

Transport Layer 3-86

Viacute dụ điều khiển tắc nghẽn ATM ABR

ABR tốc độ bit sẵn sagraveng

ldquodịch vụ mềm dẻordquo nếu đường gửi ldquochưa

hếtrdquo becircn gửi sẽ dugraveng

băng thocircng sẵn sagraveng nếu đường gửi tắc

nghẽn becircn gửi điều tiết với

tốc độ tối thiểu

RM (resource management)

gửi bởi becircn gửi rải raacutec với caacutec ocirc dữ liệu

caacutec bit trong ocirc thiết lập bởi caacutec switch bit NI khocircng tăng tốc độ

(tắc nghẽn nhẹ) bit CI tắc nghẽn rotilde rệt

Caacutec ocirc RM được trả về becircn gửi từ becircn nhận với nguyecircn vẹn caacutec bit

Transport Layer 3-87

Viacute dụ điều khiển tắc nghẽn ATM ABR

trường 2-byte ER trong ocirc RM switch đatilde tắc nghẽn coacute thể coacute giaacute trị ER thấp hơn trong ocirc tốc độ gửi do đoacute coacute thể được hỗ trợ tối đa trecircn đường

EFCI bit trong caacutec ocirc dữ liệu được cagravei giaacute trị 1 trong switch đatilde tắc nghẽn nếu ocirc dữ liệu đứng trước ocirc RM coacute cagravei EFCI becircn gửi sẽ cagravei

bit CI trong ocirc RM trả về

Transport Layer 3-88

Chương 3 Nội dung trigravenh bagravey

31 Caacutec dịch vụ lớp Transport

32 Multiplexing vagrave demultiplexing

33 Vận chuyển khocircng kết nối UDP

34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy

35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối

36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn

37 Điều khiển tắc nghẽn TCP

Transport Layer 3-89

TCP điều khiển tắc nghẽn additive tăng lecircn multiplicative giảm xuống

8 Kbytes

16 Kbytes

24 Kbytes

time

congestionwindow

Caacutech tiếp cận tăng tốc độ truyền (kiacutech thước cửa sổ) tigravem khả năng băng thocircng coacute thể cho đến khi coacute mất maacutet xảy ra additive tăng lecircn tăng CongWin bởi 1 MSS

mỗi RTT cho đến khi coacute mất maacutet xảy ra multiplicative giảm xuống bỏ CongWin trong

nửa giai đoạn sau khi mất maacutet

timekiacutech

thư

ớc

cửa

sổ

tắc

nghẽ

n

Tigravem kiếm băng thocircng

Transport Layer 3-90

TCP điều khiển tắc nghẽn chi tiết

becircn gửi hạn chế việc truyền LastByteSent-LastByteAcked

CongWin Cocircng thức

CongWin thay đổi chức năng lagrave nhận biết tắc nghẽn trecircn mạng

Lagravem thế nagraveo becircn gửi nhận biết tắc nghẽn

mất maacutet xảy ra = timeout hoặc 3 ack trugraveng lặp

becircn gửi giảm tốc độ (CongWin) sau khi mất maacutet xảy ra

3 cơ chế AIMD khởi động chậm thận trọng sau khi coacute

caacutec sự kiện timeout

tốc độ = CongWin

RTT Bytess

Transport Layer 3-91

TCP khởi động chậm

Khi kết nối bắt đầu CongWin = 1 MSS Viacute dụ MSS = 500 bytes

amp RTT = 200 ms tốc độ khởi tạo = 20

kbps

băng thocircng sẵn sagraveng coacute thể gtgt MSSRTT mong muốn nhanh

choacuteng tăng tốc lecircn tốc độ coacute thể đaacutep ứng

Khi kết nối bắt đầu tăng tốc lecircn rất nhanh cho đến khi sự cố mất maacutet xảy ra đầu tiecircn

Transport Layer 3-92

TCP khởi động chậm (tt)

Khi kết nối bắt đầu tăng tốc lecircn rất nhanh cho đến khi sự cố mất maacutet xảy ra đầu tiecircn nhacircn đocirci CongWin mỗi

RTT hoagraven thagravenh nhờ tăng CongWin ứng với mỗi ACK đatilde nhận

Tổng kết tốc độ khởi đầu lagrave chậm nhưng sau đoacute tăng tốc rất nhanh

Host A

1 đoạn

RTT

Host B

thời gian

2 đoạn

4 đoạn

Transport Layer 3-93

Tinh chếHỏi Khi nagraveo việc tăng

tốc trở thagravenh tuyến tiacutenh

Trả lời Khi CongWin đạt đến 12 giaacute trị của noacute trước khi timeout

Hiện thực Ngưỡng thay đổi Tại thời điểm coacute sự cố

mất maacutet ngưỡng được cagravei giaacute trị bằng frac12 của CongWin ngay trước đoacute

Transport Layer 3-94

Tinh chế nhận biết mất maacutet

Sau 3 ACK trugraveng lặp CongWin sẽ giảm 12 kiacutech thước cửa sổ

tăng tuyến tiacutenh nhưng sau sự cố

timeout CongWin thay giaacute trị

bằng 1 MSS kiacutech thước cửa sổ

tăng cấp lũy thừa khi đến một ngưỡng

thigrave tăng tuyến tiacutenh

3 ACK trugraveng nhau chỉ ra khả năng truyền của mạng timeout chỉ thị ldquonhiều cảnh baacuteordquo về tigravenh huống tắc nghẽn

Nguyecircn lyacute

Transport Layer 3-95

Tổng kết TCP điều khiển tắc nghẽn

Khi CongWin dưới Threshold becircn gửi đang trong giai đoạn khởi động chậm kiacutech thước cửa sổ tăng nhanh theo cấp lũy thừa

Khi CongWin trecircn Threshold becircn gửi đang trong giai đoạn traacutenh tắc nghẽn kiacutech thước cửa sổ tăng nhanh theo cấp tuyến tiacutenh

Khi coacute 3 ACK trugraveng lặp xảy ra Threshold = CongWin2 vagrave CongWin = Threshold

Khi timeout xảy ra Threshold = CongWin2 vagrave CongWin = 1 MSS

Transport Layer 3-96

TCP điều khiển tắc nghẽn becircn gửi

Trạng thaacutei Sự kiện TCP becircn gửi hagravenh động Diễn giải

Slow Start (SS)-Khởi động chậm

ACK baacuteo nhận cho dữ liệu chưa ACK trước đoacute

CongWin = CongWin + MSS If (CongWin gt Threshold) cagravei đặt trạng thaacutei ldquoTraacutenh tắc nghẽnrdquo

Hậu quả lagravem tăng gấp đocirci CongWin mỗi RTT

CongestionAvoidance (CA) ndashTraacutenh tắc nghẽn

ACK baacuteo nhận cho dữ liệu chưa ACK trước đoacute

CongWin = CongWin+MSS (MSSCongWin)

Additive tăng lecircn lagravem tăng CongWin lecircn 1 MSS mỗi RTT

SS hoặc CA Sự cố mất maacutet xảy ra khi thấy coacute 3 ACK trugraveng lặp

Threshold = CongWin2 CongWin = Thresholdcagravei đặt trạng thaacutei ldquoTraacutenh tắc nghẽnrdquo

Khocirci phục nhanh hiện thực giảm xuống multiplicative CongWin sẽ khocircng giảm xuống dưới 1 MSS

SS hoặc CA Timeout Threshold = CongWin2 CongWin = 1 MSScagravei đặt trạng thaacutei ldquoKhởi động chậmrdquo

Vagraveo chế độ ldquoKhởi động chậmrdquo

SS hoặc CA ACK trugraveng lặp

Đếm ACK tăng lecircn cho đoạn vừa được ACK

CongWin vagrave Threshold khocircng thay đổi

Transport Layer 3-97

TCP throughput

Throughout trung bigravenh của TCP biểu diễn qua kiacutech thước của sổ vagrave RTT Bỏ qua trạng thaacutei ldquoKhởi động chậmrdquo

Cho W lagrave kiacutech thước cửa sổ khi coacute mất maacutet xảy ra

Khi kiacutech thước cửa sổ = W lưu lượng = WRTT

Chỉ ngay sau khi mất maacutet cửa sổ giảm xuống = W2 lưu lượng = W2RTT

throughout trung bigravenh 075 WRTT

Transport Layer 3-98

TCP tương lai

Viacute dụ caacutec đoạn dagravei 1500 byte RTT 100ms lưu lượng 10 Gbps

Kiacutech thước cửa sổ yecircu cầu W = 83333 đoạn trecircn đường truyền

Lưu lượng trong caacutec trường hợp mất maacutet

L = 210-10

Phiecircn bản mới của TCP dagravenh cho nhu cầu tốc độ cao

LRTT

MSS221

Transport Layer 3-99

Mục tiecircu nếu K phiecircn lagravem việc TCP chia sẻ kết nối cổ chai của băng thocircng lagrave R mỗi phiecircn coacute tốc độ trung bigravenh lagrave RK

TCP kết nối 1

router cổ chaikhả năng R

TCP kết nối 2

TCP tiacutenh cocircng bằng

Transport Layer 3-100

Tại sao phải TCP cocircng bằng

2 phiecircn lagravem việc cạnh tranh nhau Additive tăng lưu lượng tăng multiplicative giảm lưu lượng tương xứng

R

R

chia sẻ băng thocircng bằng nhau

Connection 1 throughputConnect

ion 2

th

roughput

traacutenh tắc nghẽn additive tăng lecircnmất maacutet giảm cửa sổ bằng 12

traacutenh tắc nghẽn additive tăng lecircnmất maacutet giảm cửa sổ bằng 12

Transport Layer 3-101

TCP tiacutenh cocircng bằng (tt)

Tiacutenh cocircng bằng amp UDP nhiều ứng dụng

thường khocircng dugraveng TCP khocircng muốn tốc độ bị

điều tiết do điều khiển tắc nghẽn

Thay bằng dugraveng UDP truyền audiovideo với

tốc độ ổn định chịu được mất maacutet

Nghiecircn cứu giao thức thacircn thiện với TCP

Tiacutenh cocircng bằng amp caacutec kết nối TCP song song

khocircng coacute gigrave ngăn cản việc ứng dụng mở caacutec kết nối song song giữa 2 host

Trigravenh duyệt Web lagravem giống như thế

Viacute dụ tốc độ R hỗ trợ 9 kết nối ứng dụng mới yecircu cầu 1

TCP coacute tốc độ R10 ứng dụng mới yecircu cầu 11

TCP coacute tốc độ R2

Transport Layer 3-102

Mocirc higravenh trễ

Hỏi Mất bao lacircu để nhận 1 đối tượng từ Web server sau khi gửi yecircu cầu

Bỏ qua tắc nghẽn trễ bị ảnh hưởng bởi

thiết lập kết nối TCP trễ truyền dữ liệu khởi động chậm

Notation caacutec giả định Giả sử một kết nối giữa

client vagrave server coacute tốc độ R

S MSS (bits) O kiacutech thước đối tượng

(bits) khocircng truyền lại (khocircng

mất maacutet khocircng hỏng)

Kiacutech thước cửa sổ Giả định 1 cửa sổ tắc

nghẽn cố định coacute W đoạn Sau đoacute cửa sổ thay đổi

mocirc higravenh khởi động chậm

Transport Layer 3-103

Cửa sổ tắc nghẽn cố định (1)

Trường hợp đầu tiecircnWSR gt RTT + SR cho

đoạn đầu tiecircn trong cửa sổ trả về trước khi cửa sổ dữ liệu gửi ACK

trễ = 2RTT + OR

Transport Layer 3-104

Cửa sổ tắc nghẽn cố định (2)

Trường hợp thứ hai WSR lt RTT + SR sent

chờ cho ACK sau khi gửi dữ liệu

trễ = 2RTT + OR+ (K-1)[SR + RTT - WSR]

Transport Layer 3-105

TCP Mocirc higravenh trễ Khởi động chậm (1)

Bacircy giờ giả sử kiacutech thước cửa sổ tăng lecircn tugravey theo quaacute trigravenh khởi động chậm

Độ trễ của một đối tượng sẽ lagrave

R

S

R

SRTTP

R

ORTTLatency P )12(2

trong đoacute P lagrave số lần TCP rảnh ở tại server

1min KQP

- trong đoacute Q lagrave số lần server rảnh nếu đối tượng đatilde khởi tạo kiacutech thước

- vagrave K lagrave số lượng cửa sổ bao trugravem đối tượng

Transport Layer 3-106

TCP Mocirc higravenh trễ Khởi động chậm (2)

RTT

initia te TCPconnection

requestobject

first w indow= S R

second w indow= 2S R

third w indow= 4S R

fourth w indow= 8S R

com pletetransm issionobject

delivered

tim e atc lient

tim e atserver

Viacute dụbull OS = 15 đoạnbull K = 4 cửa sổbull Q = 2bull P = minK-1Q = 2

Server rảnh P=2 lần

Caacutec thagravenh phần trễbull 2 RTT dagravenh cho thiết lập kết nối vagrave yecircu cầubull OR để truyền đối tượngbullthời gian server rảnh bởi vigrave khởi động chậm

Server rảnh P = minK-1Q lần

Transport Layer 3-107

TCP Mocirc higravenh trễ(3)

R

S

R

SRTTPRTT

R

O

R

SRTT

R

SRTT

R

O

idleTimeRTTR

O

P

kP

k

P

pp

)12(][2

]2[2

2delay

1

1

1

th window after the timeidle 2 1 kR

SRTT

R

S k

ementacknowledg receivesserver until

segment send tostartsserver when from time RTTR

S

window kth the transmit totime2 1

R

Sk

RTT

initia te TCPconnection

requestobject

first w indow= S R

second w indow= 2S R

third w indow= 4S R

fourth w indow= 8S R

com pletetransm issionobject

delivered

tim e atc lient

tim e atserver

Transport Layer 3-108

TCP Mocirc higravenh trễ (4)

)1(log

)1(logmin

12min

222min

222min

2

2

110

110

S

OS

Okk

S

Ok

SOk

OSSSkK

k

k

k

caacutech tiacutenh toaacuten Q tương tự (xem HW)

K = số lượng cửa sổ bao trugravem đối tượngLagravem thế nagraveo tiacutenh được K

Transport Layer 3-109

HTTP Mocirc higravenh Giả sử trang Web chứa

1 trang HTML (kiacutech thước O bits) M higravenh ảnh (mỗi caacutei kiacutech thướcO bits)

HTTP khocircng bền vững M+1 TCP kết nối Thời gian đaacutep ứng = (M+1)OR + (M+1)2RTT + tổng số thời

gian rảnh HTTP bền vững

2 RTT để yecircu cầu vagrave nhận file HTML 1 RTT để yecircu cầu vagrave nhận M higravenh ảnh Thời gian đaacutep ứng = (M+1)OR + 3RTT + tổng số thời gian

rảnh HTTP khocircng bền vững với X kết nối song song

Giả sử MX lagrave số nguyecircn 1 TCP kết nối cho file MX thiết lập caacutec kết nối song song cho caacutec higravenh ảnh Thời gian đaacutep ứng = (M+1)OR + (MX + 1)2RTT + tổng số

thời gian rảnh

Transport Layer 3-110

02468

101214161820

28Kbps

100Kbps

1Mbps

10Mbps

non-persistent

persistent

parallel non-persistent

HTTP thời gian đaacutep ứng (giacircy)RTT = 100 msec O = 5 Kbytes M=10 vagrave X=5

Với băng thocircng thấp thời gian kết nối amp đaacutep ứng trội hơn thời gian truyền

Caacutec kết nối bền vững chỉ cho sự cải thiện khocircng đaacuteng kể trecircn caacutec kết nối song song

Transport Layer 3-111

0

10

20

30

40

50

60

70

28Kbps

100Kbps

1Mbps

10Mbps

non-persistent

persistent

parallel non-persistent

HTTP thời gian đaacutep ứng (giacircy)

RTT =1 sec O = 5 Kbytes M=10 and X=5

Với RTT lớn hơn thời gian đaacutep ứng trội hơn thời gian trễ chờ thiết lập kết nốiTCP amp khởi động chậm Caacutec kết nối bền vững bacircy giờ cho thấy cải thiện rotilde rệt đặc biệtvới caacutec mạng băng thocircng cao

Transport Layer 3-112

Chương 3 Tổng kết caacutec nguyecircn lyacute của caacutec

dịch vụ lớp transport multiplexing

demultiplexing truyền dữ liệu tin cậy điều khiển luồng điều khiển tắc nghẽn

khởi tạo vagrave hiện thực trong Internet UDP TCP

Tiếp theo nghiecircn cứu xong

caacutec vấn đề ldquongoagravei biecircnrdquo (caacutec lớp application transport)

chuẩn bị vagraveo phần ldquolotildeirdquo của mạng

  • Slide 1
  • Chương 3 Lớp Transport
  • Chương 3 Nội dung trigravenh bagravey
  • Caacutec dịch vụ vagrave giao thức Transport
  • Lớp Transport với lớp network
  • Caacutec giao thức lớp transport trecircn Internet
  • Slide 7
  • Multiplexingdemultiplexing
  • Demultiplexing lagravem việc như thế nagraveo
  • Demultiplexing khocircng kết nối
  • Demultiplexing khocircng kết nối (tiếp)
  • Demultiplexing hướng kết nối
  • Demultiplexing hướng kết nối (tiếp)
  • Demultiplexing hướng kết nối Threaded Web Server
  • Slide 15
  • UDP User Datagram Protocol [RFC 768]
  • UDP (tt)
  • UDP checksum
  • Viacute dụ Checksum
  • Slide 20
  • Caacutec nguyecircn lyacute truyền dữ liệu tin cậy
  • Slide 22
  • Slide 23
  • Truyền dữ liệu tin cậy
  • Slide 25
  • Rdt10 truyền dữ liệu tin cậy trecircn 1 kecircnh truyền tin cậy
  • Rdt20 kecircnh với caacutec lỗi
  • rdt20 đặc tả FSM
  • rdt20 hoạt động khi khocircng lỗi
  • rdt20 hoạt động khi coacute lỗi
  • rdt20 coacute lỗ hổng nghiecircm trọng
  • rdt21 người gửi quản lyacute caacutec ACKNAK bị hỏng
  • Slide 33
  • rdt21 thảo luận
  • rdt22 một giao thức khocircng cần NAK
  • rdt22 gửi nhận caacutec mảnh
  • rdt30 caacutec kecircnh với lỗi vagrave mất maacutet
  • rdt30 gửi
  • hagravenh động của rdt30
  • Slide 40
  • Hiệu suất của rdt30
  • rdt30 hoạt động dừng-vagrave-chờ
  • Caacutec giao thức Pipelined
  • Pipelining độ khả dụng tăng
  • Go-Back-N
  • GBN becircn gửi mở rộng FSM
  • GBN becircn nhận mở rộng FSM
  • GBN hoạt động
  • Lặp coacute lựa chọn
  • Lặp coacute lựa chọn caacutec cửa sổ gửi nhận
  • Slide 51
  • Hoạt động của lặp coacute lựa chọn
  • Lặp coacute lựa chọn tigravenh trạng khoacute giải quyết
  • Slide 54
  • TCP Tổng quan RFCs 793 1122 1323 2018 2581
  • TCP cấu truacutec đoạn
  • Caacutec số thứ tự TCP vagrave ACK
  • TCP Round Trip Time vagraveTimeout
  • TCP Round Trip Time vagrave Timeout
  • Viacute dụ đaacutenh giaacute RTT
  • Slide 61
  • TCP truyền dữ liệu tin cậy
  • TCP caacutec sự kiện
  • TCP becircn gửi (đơn giản)
  • TCP caacutec tigravenh huống truyền lại
  • TCP caacutec tigravenh huống truyền lại (tt)
  • TCP sinh ra ACK [RFC 1122 RFC 2581]
  • Truyền lại nhanh
  • Giải thuật truyền lại nhanh
  • Slide 70
  • TCP điều khiển luồng
  • TCP điều khiển luồng caacutech lagravem
  • Slide 73
  • TCP quản lyacute kết nối
  • TCP quản lyacute kết nối (tt)
  • Slide 76
  • Slide 77
  • Slide 78
  • Caacutec nguyecircn lyacute điều khiển tắc nghẽn
  • Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 1
  • Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 2
  • Slide 82
  • Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 3
  • Slide 84
  • Caacutec caacutech tiếp cận đối với điều khiển tắc nghẽn
  • Viacute dụ điều khiển tắc nghẽn ATM ABR
  • Slide 87
  • Slide 88
  • TCP điều khiển tắc nghẽn additive tăng lecircn multiplicative giảm xuống
  • TCP điều khiển tắc nghẽn chi tiết
  • TCP khởi động chậm
  • TCP khởi động chậm (tt)
  • Tinh chế
  • Tinh chế nhận biết mất maacutet
  • Tổng kết TCP điều khiển tắc nghẽn
  • TCP điều khiển tắc nghẽn becircn gửi
  • TCP throughput
  • TCP tương lai
  • TCP tiacutenh cocircng bằng
  • Tại sao phải TCP cocircng bằng
  • TCP tiacutenh cocircng bằng (tt)
  • Mocirc higravenh trễ
  • Cửa sổ tắc nghẽn cố định (1)
  • Cửa sổ tắc nghẽn cố định (2)
  • TCP Mocirc higravenh trễ Khởi động chậm (1)
  • TCP Mocirc higravenh trễ Khởi động chậm (2)
  • TCP Mocirc higravenh trễ(3)
  • TCP Mocirc higravenh trễ (4)
  • HTTP Mocirc higravenh
  • Slide 110
  • Slide 111
  • Chương 3 Tổng kết

Transport Layer 3-61

TCP Round Trip Time vagrave Timeout

Thiết lập timeout EstimtedRTT cộng ldquohệ số dự trữ an toagravenrdquo

sự biến thiecircn lớn trong EstimatedRTT -gt hệ số dự trữ an toagraven lớn hơn ước lượng đầu tiecircn về sự biến thiecircn của SampleRTT từ EstimatedRTT

TimeoutInterval = EstimatedRTT + 4DevRTT

DevRTT = (1-)DevRTT + |SampleRTT-EstimatedRTT|

(tiecircu biểu = 025)

Sau đoacute thiết lập timeout interval

Transport Layer 3-62

TCP truyền dữ liệu tin cậy

TCP tạo dịch vụ rdt trecircn dịch vụ khocircng tin cậy IP

caacutec đoạn Pipelined caacutec ACK tiacutech lũy TCP dugraveng bộ định thigrave

truyền lại đơn

Truyền lại được kiacutech hoạt bởi caacutec sự kiện timeout caacutec ack trugraveng lặp

luacutec đầu khảo saacutet caacutec becircn gửi TCP đơn giản lờ đi caacutec ack trugraveng lặp lờ đi điều khiển luồng

điều khiển tắc nghẽn

Transport Layer 3-63

TCP caacutec sự kiệndữ liệu đatilde nhận từ ứng

dụng tạo đoạn với số thứ

tự của noacute số thứ tự lagrave số theo

byte dữ liệu đầu tiecircn khởi động bộ định thigrave

nếu chưa chạy khoảng thời gian hết

hạn TimeOutInterval

timeout gửi lại đoạn nagraveo gacircy

ra timeout khởi động lại bộ định

thigrave Ack đatilde nhận

cập nhật caacutei gigrave sẽ được ACK

khởi động bộ định thigrave nếu coacute caacutec đoạn cograven chờ

Transport Layer 3-64

TCP becircn gửi(đơn giản)

NextSeqNum = InitialSeqNum SendBase = InitialSeqNum

loop (forever) switch(event)

event data received from application above create TCP segment with sequence number NextSeqNum if (timer currently not running) start timer pass segment to IP NextSeqNum = NextSeqNum + length(data)

event timer timeout retransmit not-yet-acknowledged segment with smallest sequence number start timer

event ACK received with ACK field value of y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer

end of loop forever

Chuacute thiacutechbull SendBase-1 byte vừa được ACK tiacutech lũy Viacute dụbull SendBase-1 = 71y= 73 vigrave thế becircn nhận muốn 73+ y gt SendBase vigrave thế dữ liệu mới được chấp nhận

Transport Layer 3-65

TCP caacutec tigravenh huống truyền lại

Host A

Seq=100 20 bytes data

ACK=100

timetimeout sớm

Host B

Seq=92 8 bytes data

ACK=120

Seq=92 8 bytes data

Seq=

92

tim

eout

ACK=120

Host A

Seq=92 8 bytes data

ACK=100

loss

tim

eout

tigravenh huống mất ACK

Host B

X

Seq=92 8 bytes data

ACK=100

time

Seq=

92

tim

eout

SendBase= 100

SendBase= 120

SendBase= 120

Sendbase= 100

Transport Layer 3-66

TCP caacutec tigravenh huống truyền lại (tt)Host A

Seq=92 8 bytes data

ACK=100

loss

tim

eout

Cumulative ACK scenario

Host B

X

Seq=100 20 bytes data

ACK=120

time

SendBase= 120

Transport Layer 3-67

TCP sinh ra ACK [RFC 1122 RFC 2581]

Sự kiện tại becircn nhận

Đoạn đến với đuacuteng số thứ tự mong muốn Tất cả dữ liệu đếnđatilde được ACK

Đoạn đến với đuacuteng số thứ tự mong muốn Một đoạn khaacutec đangchờ ACK

Caacutec đoạn đến khocircng thứ tựlớn hơn số thứ tự đoạn mong muốnCoacute khoảng trống

Đoạn đếnlấp đầy từng phần hoặc toagraven bộkhoảng trống

TCP becircn nhận hagravenh động

ACK trễ Chờ đến 500mscho đoạn kế tiếp Nếu khocircng coacute đoạnkế tiếp gửi ACK

Gửi ngay một ACK tiacutech lũy chấp nhậncho cả caacutec đoạn theo thứ tự

Gửi ngay ACK trugraveng lặp chỉ thị số thứ tựđoạn của byte kế tiếp đang mong chờ

Gửi ngay ACK với điều kiện lagrave đoạnbắt đầu ngay điểm coacute khoảng trống

Transport Layer 3-68

Truyền lại nhanh

Chu kỳ Time-out thường tương đối dagravei độ trễ dagravei trước khi gửi

lại goacutei đatilde mất

Xaacutec nhận caacutec đoạn đatilde mất bằng caacutec ACK trugraveng lặp becircn gửi thường gửi

nhiều đoạn song song Nếu đoạn bị mất sẽ

xảy ra tigravenh trạng giống như nhiều ACK trugraveng nhau

Nếu becircn gửi nhận 3 ACK của cugraveng một dữ liệu noacute cho lagrave đoạn sau dữ liệu đatilde ACK bị mất Truyền lại nhanh gửi

lại đoạn trước khi bộ định thigrave hết hạn

Transport Layer 3-69

sự kiện ACK đatilde nhận với trường lagrave y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer else increment count of dup ACKs received for y if (count of dup ACKs received for y = 3) resend segment with sequence number y

Giải thuật truyền lại nhanh

một ACK trugraveng lặp cho đoạn đatilde được ACK

Truyền lại nhanh

Transport Layer 3-70

Chương 3 Nội dung trigravenh bagravey

31 Caacutec dịch vụ lớp Transport

32 Multiplexing vagrave demultiplexing

33 Vận chuyển khocircng kết nối UDP

34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy

35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối

36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn

37 Điều khiển tắc nghẽn TCP

Transport Layer 3-71

TCP điều khiển luồng

becircn nhận của kết nối TCP coacute một bộ đệm nhận

dịch vụ so trugraveng tốc độ so trugraveng tốc độ gửi với tốc độ nhận của ứng dụng

tiến trigravenh ứng dụng coacute thể chậm tại luacutec đọc bộ đệm

becircn gửi sẽ khocircng lagravem tragraven bộ đệm vigrave truyền quaacute nhiều vagrave

quaacute nhanh

điều khiển luồng

Transport Layer 3-72

TCP điều khiển luồng caacutech lagravem

(Giả sử becircn nhận TCP loại bỏ caacutec đoạn khocircng coacute thứ tự)

dự phograveng trong bộ đệm= RcvWindow

= RcvBuffer-[LastByteRcvd - LastByteRead]

Becircn nhận thocircng baacuteo khoảng dự trữ nhờ giaacute trị RcvWindow trong caacutec đoạn

Becircn gửi hạn chế dữ liệu khocircng được ACK vagraveo RcvWindow bảo đảm bộ đệm nhận

khocircng tragraven

Transport Layer 3-73

Chương 3 Nội dung trigravenh bagravey

31 Caacutec dịch vụ lớp Transport

32 Multiplexing vagrave demultiplexing

33 Vận chuyển khocircng kết nối UDP

34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy

35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối

36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn

37 Điều khiển tắc nghẽn TCP

Transport Layer 3-74

TCP quản lyacute kết nối

Chuacute yacute Becircn gửi vagrave becircn nhận TCP thiết lập ldquokết nốirdquo trước khi trao đổi dữ liệu

khởi tạo caacutec biến TCP caacutec số thứ tự đoạn thocircng tin caacutec bộ đệm điều

khiển luồng (như RcvWindow)

client người khởi xướng kết nối

Socket clientSocket = new Socket(hostnameport

number) server được tiếp xuacutec bởi

client Socket connectionSocket =

welcomeSocketaccept()

3 phương phaacutep bắt tay

Bước 1 client host gửi đoạnTCP SYN đến server xaacutec định số thứ tự khởi đầu khocircng phải dữ liệu

Bước 2 server host nhận SYN trả lời với đoạn SYNACK

server cấp phaacutet caacutec bộ đệm

xaacutec định số thứ tự khởi đầuBước 3 client nhận SYNACK trả

lời với đoạn ACK (coacute thể chứa dữ liệu)

Transport Layer 3-75

TCP quản lyacute kết nối (tt)

Đoacuteng một kết nối

client đoacuteng socket clientSocketclose()

Bước 1 client gửi đoạn điều khiển TCP FIN đến server

Bước 2 server nhận FIN trả lời với ACK Đoacuteng kết nối gửi FIN

client

FIN

server

ACK

ACK

FIN

đoacuteng

đoacuteng

đatilde đoacutengthời g

ian c

hờ

Transport Layer 3-76

TCP quản lyacute kết nối (tt)

Bước 3 client nhận FIN trả lời với ACK

Trong khoảng ldquothời gian chờrdquo ndash sẽ phản hồi với ACK để nhận caacutec FIN

Bước 4 server nhận ACK Kết nối đatilde đoacuteng

Chuacute yacute với một sửa đổi nhỏ coacute thể quản lyacute nhiều FIN đồng thời

client

FIN

server

ACK

ACK

FIN

đang đoacuteng

đang đoacuteng

đatilde đoacuteng

thời g

ian c

hờ

đatilde đoacuteng

Transport Layer 3-77

TCP quản lyacute kết nối (tt)

chu kỳ sống củaTCP client

chu kỳ sống củaTCP server

Transport Layer 3-78

Chương 3 Nội dung trigravenh bagravey

31 Caacutec dịch vụ lớp Transport

32 Multiplexing vagrave demultiplexing

33 Vận chuyển khocircng kết nối UDP

34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy

35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối

36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn

37 Điều khiển tắc nghẽn TCP

Transport Layer 3-79

Caacutec nguyecircn lyacute điều khiển tắc nghẽn

Tắc nghẽn ldquoquaacute nhiều nguồn gửi quaacute nhanh vagrave quaacute nhiều

dữ liệu đến mạngrdquo khaacutec với điều khiển luồng caacutec biểu hiện

caacutec goacutei bị mất (tragraven bộ đệm tại caacutec router) caacutec độ trễ quaacute dagravei (xếp hagraveng trong bộ đệm

của router) lagrave 1 trong 10 vấn đề nan giải nhất

Transport Layer 3-80

Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 1

2 gửi 2 nhận 1 router caacutec bộ

đệm khocircng giới hạn

khocircng coacute truyền lại

caacutec độ trễ lớn hơn khi tắc nghẽn

năng suất coacute thể đạt tối đa

unlimited shared output link buffers

Host Ain original data

Host B

out

Transport Layer 3-81

Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 2

1 router caacutec bộ đệm coacute giới hạn becircn gửi truyền lại caacutec goacutei đatilde mất

chia sẻ vocirc hạncaacutec bộ đệm ouput

Host A in dữ liệu gốc

Host B

out

in dữ liệu gốc cugraveng với dữ liệu truyền lại

Transport Layer 3-82

Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 2 luocircn luocircn

truyền lại ldquohoagraven toagravenrdquo chỉ khi mất maacutet

truyền lại vigrave trễ (khocircng mất) lagravem cho lớn hơn với cugraveng

in

out

=

in

out

gt

in

out

ldquocaacutec chi phiacuterdquo của tắc nghẽn nhiều việc (truyền lại) caacutec truyền lại khocircng cần thiết liecircn kết nhiều bản sao của

goacutei

R2

R2in

ou

t

b

R2

R2in

ou

t

a

R2

R2in

ou

t

c

R4

R3

Transport Layer 3-83

Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 3 4 người gửi caacutec đường qua nhiều hop timeouttruyền lại

in

Hỏi điều gigrave xảy ra nếu vagrave tăng lecircn

in

chia sẻ vocirc hạncaacutec bộ đệm ouput

Host Ain dữ liệu gốc

Host B

out

in dữ liệu gốc cugraveng với dữ liệu truyền lại

Transport Layer 3-84

Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 3

ldquochi phiacuterdquo khaacutec của tắc nghẽn khi caacutec goacutei bị bỏ bất kỳ ldquokhả năng truyền

upstream dugraveng cho goacutei đoacute sẽ bị latildeng phiacuterdquo

Host A

Host B

o

u

t

Transport Layer 3-85

Caacutec caacutech tiếp cận đối với điều khiển tắc nghẽn

điều khiển tắc nghẽn end-end

khocircng coacute phản hồi rotilde ragraveng từ mạng

tắc nghẽn được suy ra từ việc quan saacutet caacutec hệ thống đầu cuối coacute mất maacutet trễ

tiếp cận được quản lyacute bởi TCP

điều khiển tắc nghẽn coacute sự hỗ trợ của mạng

caacutec router cung cấp phản hồi về caacutec hệ thống đầu cuối 1 bit duy nhất chỉ thị

tắc nghẽn (SNA DECbit TCPIP ECN ATM)

tốc độ sẽ gửi được xaacutec định rotilde ragraveng

2 caacutech

Transport Layer 3-86

Viacute dụ điều khiển tắc nghẽn ATM ABR

ABR tốc độ bit sẵn sagraveng

ldquodịch vụ mềm dẻordquo nếu đường gửi ldquochưa

hếtrdquo becircn gửi sẽ dugraveng

băng thocircng sẵn sagraveng nếu đường gửi tắc

nghẽn becircn gửi điều tiết với

tốc độ tối thiểu

RM (resource management)

gửi bởi becircn gửi rải raacutec với caacutec ocirc dữ liệu

caacutec bit trong ocirc thiết lập bởi caacutec switch bit NI khocircng tăng tốc độ

(tắc nghẽn nhẹ) bit CI tắc nghẽn rotilde rệt

Caacutec ocirc RM được trả về becircn gửi từ becircn nhận với nguyecircn vẹn caacutec bit

Transport Layer 3-87

Viacute dụ điều khiển tắc nghẽn ATM ABR

trường 2-byte ER trong ocirc RM switch đatilde tắc nghẽn coacute thể coacute giaacute trị ER thấp hơn trong ocirc tốc độ gửi do đoacute coacute thể được hỗ trợ tối đa trecircn đường

EFCI bit trong caacutec ocirc dữ liệu được cagravei giaacute trị 1 trong switch đatilde tắc nghẽn nếu ocirc dữ liệu đứng trước ocirc RM coacute cagravei EFCI becircn gửi sẽ cagravei

bit CI trong ocirc RM trả về

Transport Layer 3-88

Chương 3 Nội dung trigravenh bagravey

31 Caacutec dịch vụ lớp Transport

32 Multiplexing vagrave demultiplexing

33 Vận chuyển khocircng kết nối UDP

34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy

35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối

36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn

37 Điều khiển tắc nghẽn TCP

Transport Layer 3-89

TCP điều khiển tắc nghẽn additive tăng lecircn multiplicative giảm xuống

8 Kbytes

16 Kbytes

24 Kbytes

time

congestionwindow

Caacutech tiếp cận tăng tốc độ truyền (kiacutech thước cửa sổ) tigravem khả năng băng thocircng coacute thể cho đến khi coacute mất maacutet xảy ra additive tăng lecircn tăng CongWin bởi 1 MSS

mỗi RTT cho đến khi coacute mất maacutet xảy ra multiplicative giảm xuống bỏ CongWin trong

nửa giai đoạn sau khi mất maacutet

timekiacutech

thư

ớc

cửa

sổ

tắc

nghẽ

n

Tigravem kiếm băng thocircng

Transport Layer 3-90

TCP điều khiển tắc nghẽn chi tiết

becircn gửi hạn chế việc truyền LastByteSent-LastByteAcked

CongWin Cocircng thức

CongWin thay đổi chức năng lagrave nhận biết tắc nghẽn trecircn mạng

Lagravem thế nagraveo becircn gửi nhận biết tắc nghẽn

mất maacutet xảy ra = timeout hoặc 3 ack trugraveng lặp

becircn gửi giảm tốc độ (CongWin) sau khi mất maacutet xảy ra

3 cơ chế AIMD khởi động chậm thận trọng sau khi coacute

caacutec sự kiện timeout

tốc độ = CongWin

RTT Bytess

Transport Layer 3-91

TCP khởi động chậm

Khi kết nối bắt đầu CongWin = 1 MSS Viacute dụ MSS = 500 bytes

amp RTT = 200 ms tốc độ khởi tạo = 20

kbps

băng thocircng sẵn sagraveng coacute thể gtgt MSSRTT mong muốn nhanh

choacuteng tăng tốc lecircn tốc độ coacute thể đaacutep ứng

Khi kết nối bắt đầu tăng tốc lecircn rất nhanh cho đến khi sự cố mất maacutet xảy ra đầu tiecircn

Transport Layer 3-92

TCP khởi động chậm (tt)

Khi kết nối bắt đầu tăng tốc lecircn rất nhanh cho đến khi sự cố mất maacutet xảy ra đầu tiecircn nhacircn đocirci CongWin mỗi

RTT hoagraven thagravenh nhờ tăng CongWin ứng với mỗi ACK đatilde nhận

Tổng kết tốc độ khởi đầu lagrave chậm nhưng sau đoacute tăng tốc rất nhanh

Host A

1 đoạn

RTT

Host B

thời gian

2 đoạn

4 đoạn

Transport Layer 3-93

Tinh chếHỏi Khi nagraveo việc tăng

tốc trở thagravenh tuyến tiacutenh

Trả lời Khi CongWin đạt đến 12 giaacute trị của noacute trước khi timeout

Hiện thực Ngưỡng thay đổi Tại thời điểm coacute sự cố

mất maacutet ngưỡng được cagravei giaacute trị bằng frac12 của CongWin ngay trước đoacute

Transport Layer 3-94

Tinh chế nhận biết mất maacutet

Sau 3 ACK trugraveng lặp CongWin sẽ giảm 12 kiacutech thước cửa sổ

tăng tuyến tiacutenh nhưng sau sự cố

timeout CongWin thay giaacute trị

bằng 1 MSS kiacutech thước cửa sổ

tăng cấp lũy thừa khi đến một ngưỡng

thigrave tăng tuyến tiacutenh

3 ACK trugraveng nhau chỉ ra khả năng truyền của mạng timeout chỉ thị ldquonhiều cảnh baacuteordquo về tigravenh huống tắc nghẽn

Nguyecircn lyacute

Transport Layer 3-95

Tổng kết TCP điều khiển tắc nghẽn

Khi CongWin dưới Threshold becircn gửi đang trong giai đoạn khởi động chậm kiacutech thước cửa sổ tăng nhanh theo cấp lũy thừa

Khi CongWin trecircn Threshold becircn gửi đang trong giai đoạn traacutenh tắc nghẽn kiacutech thước cửa sổ tăng nhanh theo cấp tuyến tiacutenh

Khi coacute 3 ACK trugraveng lặp xảy ra Threshold = CongWin2 vagrave CongWin = Threshold

Khi timeout xảy ra Threshold = CongWin2 vagrave CongWin = 1 MSS

Transport Layer 3-96

TCP điều khiển tắc nghẽn becircn gửi

Trạng thaacutei Sự kiện TCP becircn gửi hagravenh động Diễn giải

Slow Start (SS)-Khởi động chậm

ACK baacuteo nhận cho dữ liệu chưa ACK trước đoacute

CongWin = CongWin + MSS If (CongWin gt Threshold) cagravei đặt trạng thaacutei ldquoTraacutenh tắc nghẽnrdquo

Hậu quả lagravem tăng gấp đocirci CongWin mỗi RTT

CongestionAvoidance (CA) ndashTraacutenh tắc nghẽn

ACK baacuteo nhận cho dữ liệu chưa ACK trước đoacute

CongWin = CongWin+MSS (MSSCongWin)

Additive tăng lecircn lagravem tăng CongWin lecircn 1 MSS mỗi RTT

SS hoặc CA Sự cố mất maacutet xảy ra khi thấy coacute 3 ACK trugraveng lặp

Threshold = CongWin2 CongWin = Thresholdcagravei đặt trạng thaacutei ldquoTraacutenh tắc nghẽnrdquo

Khocirci phục nhanh hiện thực giảm xuống multiplicative CongWin sẽ khocircng giảm xuống dưới 1 MSS

SS hoặc CA Timeout Threshold = CongWin2 CongWin = 1 MSScagravei đặt trạng thaacutei ldquoKhởi động chậmrdquo

Vagraveo chế độ ldquoKhởi động chậmrdquo

SS hoặc CA ACK trugraveng lặp

Đếm ACK tăng lecircn cho đoạn vừa được ACK

CongWin vagrave Threshold khocircng thay đổi

Transport Layer 3-97

TCP throughput

Throughout trung bigravenh của TCP biểu diễn qua kiacutech thước của sổ vagrave RTT Bỏ qua trạng thaacutei ldquoKhởi động chậmrdquo

Cho W lagrave kiacutech thước cửa sổ khi coacute mất maacutet xảy ra

Khi kiacutech thước cửa sổ = W lưu lượng = WRTT

Chỉ ngay sau khi mất maacutet cửa sổ giảm xuống = W2 lưu lượng = W2RTT

throughout trung bigravenh 075 WRTT

Transport Layer 3-98

TCP tương lai

Viacute dụ caacutec đoạn dagravei 1500 byte RTT 100ms lưu lượng 10 Gbps

Kiacutech thước cửa sổ yecircu cầu W = 83333 đoạn trecircn đường truyền

Lưu lượng trong caacutec trường hợp mất maacutet

L = 210-10

Phiecircn bản mới của TCP dagravenh cho nhu cầu tốc độ cao

LRTT

MSS221

Transport Layer 3-99

Mục tiecircu nếu K phiecircn lagravem việc TCP chia sẻ kết nối cổ chai của băng thocircng lagrave R mỗi phiecircn coacute tốc độ trung bigravenh lagrave RK

TCP kết nối 1

router cổ chaikhả năng R

TCP kết nối 2

TCP tiacutenh cocircng bằng

Transport Layer 3-100

Tại sao phải TCP cocircng bằng

2 phiecircn lagravem việc cạnh tranh nhau Additive tăng lưu lượng tăng multiplicative giảm lưu lượng tương xứng

R

R

chia sẻ băng thocircng bằng nhau

Connection 1 throughputConnect

ion 2

th

roughput

traacutenh tắc nghẽn additive tăng lecircnmất maacutet giảm cửa sổ bằng 12

traacutenh tắc nghẽn additive tăng lecircnmất maacutet giảm cửa sổ bằng 12

Transport Layer 3-101

TCP tiacutenh cocircng bằng (tt)

Tiacutenh cocircng bằng amp UDP nhiều ứng dụng

thường khocircng dugraveng TCP khocircng muốn tốc độ bị

điều tiết do điều khiển tắc nghẽn

Thay bằng dugraveng UDP truyền audiovideo với

tốc độ ổn định chịu được mất maacutet

Nghiecircn cứu giao thức thacircn thiện với TCP

Tiacutenh cocircng bằng amp caacutec kết nối TCP song song

khocircng coacute gigrave ngăn cản việc ứng dụng mở caacutec kết nối song song giữa 2 host

Trigravenh duyệt Web lagravem giống như thế

Viacute dụ tốc độ R hỗ trợ 9 kết nối ứng dụng mới yecircu cầu 1

TCP coacute tốc độ R10 ứng dụng mới yecircu cầu 11

TCP coacute tốc độ R2

Transport Layer 3-102

Mocirc higravenh trễ

Hỏi Mất bao lacircu để nhận 1 đối tượng từ Web server sau khi gửi yecircu cầu

Bỏ qua tắc nghẽn trễ bị ảnh hưởng bởi

thiết lập kết nối TCP trễ truyền dữ liệu khởi động chậm

Notation caacutec giả định Giả sử một kết nối giữa

client vagrave server coacute tốc độ R

S MSS (bits) O kiacutech thước đối tượng

(bits) khocircng truyền lại (khocircng

mất maacutet khocircng hỏng)

Kiacutech thước cửa sổ Giả định 1 cửa sổ tắc

nghẽn cố định coacute W đoạn Sau đoacute cửa sổ thay đổi

mocirc higravenh khởi động chậm

Transport Layer 3-103

Cửa sổ tắc nghẽn cố định (1)

Trường hợp đầu tiecircnWSR gt RTT + SR cho

đoạn đầu tiecircn trong cửa sổ trả về trước khi cửa sổ dữ liệu gửi ACK

trễ = 2RTT + OR

Transport Layer 3-104

Cửa sổ tắc nghẽn cố định (2)

Trường hợp thứ hai WSR lt RTT + SR sent

chờ cho ACK sau khi gửi dữ liệu

trễ = 2RTT + OR+ (K-1)[SR + RTT - WSR]

Transport Layer 3-105

TCP Mocirc higravenh trễ Khởi động chậm (1)

Bacircy giờ giả sử kiacutech thước cửa sổ tăng lecircn tugravey theo quaacute trigravenh khởi động chậm

Độ trễ của một đối tượng sẽ lagrave

R

S

R

SRTTP

R

ORTTLatency P )12(2

trong đoacute P lagrave số lần TCP rảnh ở tại server

1min KQP

- trong đoacute Q lagrave số lần server rảnh nếu đối tượng đatilde khởi tạo kiacutech thước

- vagrave K lagrave số lượng cửa sổ bao trugravem đối tượng

Transport Layer 3-106

TCP Mocirc higravenh trễ Khởi động chậm (2)

RTT

initia te TCPconnection

requestobject

first w indow= S R

second w indow= 2S R

third w indow= 4S R

fourth w indow= 8S R

com pletetransm issionobject

delivered

tim e atc lient

tim e atserver

Viacute dụbull OS = 15 đoạnbull K = 4 cửa sổbull Q = 2bull P = minK-1Q = 2

Server rảnh P=2 lần

Caacutec thagravenh phần trễbull 2 RTT dagravenh cho thiết lập kết nối vagrave yecircu cầubull OR để truyền đối tượngbullthời gian server rảnh bởi vigrave khởi động chậm

Server rảnh P = minK-1Q lần

Transport Layer 3-107

TCP Mocirc higravenh trễ(3)

R

S

R

SRTTPRTT

R

O

R

SRTT

R

SRTT

R

O

idleTimeRTTR

O

P

kP

k

P

pp

)12(][2

]2[2

2delay

1

1

1

th window after the timeidle 2 1 kR

SRTT

R

S k

ementacknowledg receivesserver until

segment send tostartsserver when from time RTTR

S

window kth the transmit totime2 1

R

Sk

RTT

initia te TCPconnection

requestobject

first w indow= S R

second w indow= 2S R

third w indow= 4S R

fourth w indow= 8S R

com pletetransm issionobject

delivered

tim e atc lient

tim e atserver

Transport Layer 3-108

TCP Mocirc higravenh trễ (4)

)1(log

)1(logmin

12min

222min

222min

2

2

110

110

S

OS

Okk

S

Ok

SOk

OSSSkK

k

k

k

caacutech tiacutenh toaacuten Q tương tự (xem HW)

K = số lượng cửa sổ bao trugravem đối tượngLagravem thế nagraveo tiacutenh được K

Transport Layer 3-109

HTTP Mocirc higravenh Giả sử trang Web chứa

1 trang HTML (kiacutech thước O bits) M higravenh ảnh (mỗi caacutei kiacutech thướcO bits)

HTTP khocircng bền vững M+1 TCP kết nối Thời gian đaacutep ứng = (M+1)OR + (M+1)2RTT + tổng số thời

gian rảnh HTTP bền vững

2 RTT để yecircu cầu vagrave nhận file HTML 1 RTT để yecircu cầu vagrave nhận M higravenh ảnh Thời gian đaacutep ứng = (M+1)OR + 3RTT + tổng số thời gian

rảnh HTTP khocircng bền vững với X kết nối song song

Giả sử MX lagrave số nguyecircn 1 TCP kết nối cho file MX thiết lập caacutec kết nối song song cho caacutec higravenh ảnh Thời gian đaacutep ứng = (M+1)OR + (MX + 1)2RTT + tổng số

thời gian rảnh

Transport Layer 3-110

02468

101214161820

28Kbps

100Kbps

1Mbps

10Mbps

non-persistent

persistent

parallel non-persistent

HTTP thời gian đaacutep ứng (giacircy)RTT = 100 msec O = 5 Kbytes M=10 vagrave X=5

Với băng thocircng thấp thời gian kết nối amp đaacutep ứng trội hơn thời gian truyền

Caacutec kết nối bền vững chỉ cho sự cải thiện khocircng đaacuteng kể trecircn caacutec kết nối song song

Transport Layer 3-111

0

10

20

30

40

50

60

70

28Kbps

100Kbps

1Mbps

10Mbps

non-persistent

persistent

parallel non-persistent

HTTP thời gian đaacutep ứng (giacircy)

RTT =1 sec O = 5 Kbytes M=10 and X=5

Với RTT lớn hơn thời gian đaacutep ứng trội hơn thời gian trễ chờ thiết lập kết nốiTCP amp khởi động chậm Caacutec kết nối bền vững bacircy giờ cho thấy cải thiện rotilde rệt đặc biệtvới caacutec mạng băng thocircng cao

Transport Layer 3-112

Chương 3 Tổng kết caacutec nguyecircn lyacute của caacutec

dịch vụ lớp transport multiplexing

demultiplexing truyền dữ liệu tin cậy điều khiển luồng điều khiển tắc nghẽn

khởi tạo vagrave hiện thực trong Internet UDP TCP

Tiếp theo nghiecircn cứu xong

caacutec vấn đề ldquongoagravei biecircnrdquo (caacutec lớp application transport)

chuẩn bị vagraveo phần ldquolotildeirdquo của mạng

  • Slide 1
  • Chương 3 Lớp Transport
  • Chương 3 Nội dung trigravenh bagravey
  • Caacutec dịch vụ vagrave giao thức Transport
  • Lớp Transport với lớp network
  • Caacutec giao thức lớp transport trecircn Internet
  • Slide 7
  • Multiplexingdemultiplexing
  • Demultiplexing lagravem việc như thế nagraveo
  • Demultiplexing khocircng kết nối
  • Demultiplexing khocircng kết nối (tiếp)
  • Demultiplexing hướng kết nối
  • Demultiplexing hướng kết nối (tiếp)
  • Demultiplexing hướng kết nối Threaded Web Server
  • Slide 15
  • UDP User Datagram Protocol [RFC 768]
  • UDP (tt)
  • UDP checksum
  • Viacute dụ Checksum
  • Slide 20
  • Caacutec nguyecircn lyacute truyền dữ liệu tin cậy
  • Slide 22
  • Slide 23
  • Truyền dữ liệu tin cậy
  • Slide 25
  • Rdt10 truyền dữ liệu tin cậy trecircn 1 kecircnh truyền tin cậy
  • Rdt20 kecircnh với caacutec lỗi
  • rdt20 đặc tả FSM
  • rdt20 hoạt động khi khocircng lỗi
  • rdt20 hoạt động khi coacute lỗi
  • rdt20 coacute lỗ hổng nghiecircm trọng
  • rdt21 người gửi quản lyacute caacutec ACKNAK bị hỏng
  • Slide 33
  • rdt21 thảo luận
  • rdt22 một giao thức khocircng cần NAK
  • rdt22 gửi nhận caacutec mảnh
  • rdt30 caacutec kecircnh với lỗi vagrave mất maacutet
  • rdt30 gửi
  • hagravenh động của rdt30
  • Slide 40
  • Hiệu suất của rdt30
  • rdt30 hoạt động dừng-vagrave-chờ
  • Caacutec giao thức Pipelined
  • Pipelining độ khả dụng tăng
  • Go-Back-N
  • GBN becircn gửi mở rộng FSM
  • GBN becircn nhận mở rộng FSM
  • GBN hoạt động
  • Lặp coacute lựa chọn
  • Lặp coacute lựa chọn caacutec cửa sổ gửi nhận
  • Slide 51
  • Hoạt động của lặp coacute lựa chọn
  • Lặp coacute lựa chọn tigravenh trạng khoacute giải quyết
  • Slide 54
  • TCP Tổng quan RFCs 793 1122 1323 2018 2581
  • TCP cấu truacutec đoạn
  • Caacutec số thứ tự TCP vagrave ACK
  • TCP Round Trip Time vagraveTimeout
  • TCP Round Trip Time vagrave Timeout
  • Viacute dụ đaacutenh giaacute RTT
  • Slide 61
  • TCP truyền dữ liệu tin cậy
  • TCP caacutec sự kiện
  • TCP becircn gửi (đơn giản)
  • TCP caacutec tigravenh huống truyền lại
  • TCP caacutec tigravenh huống truyền lại (tt)
  • TCP sinh ra ACK [RFC 1122 RFC 2581]
  • Truyền lại nhanh
  • Giải thuật truyền lại nhanh
  • Slide 70
  • TCP điều khiển luồng
  • TCP điều khiển luồng caacutech lagravem
  • Slide 73
  • TCP quản lyacute kết nối
  • TCP quản lyacute kết nối (tt)
  • Slide 76
  • Slide 77
  • Slide 78
  • Caacutec nguyecircn lyacute điều khiển tắc nghẽn
  • Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 1
  • Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 2
  • Slide 82
  • Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 3
  • Slide 84
  • Caacutec caacutech tiếp cận đối với điều khiển tắc nghẽn
  • Viacute dụ điều khiển tắc nghẽn ATM ABR
  • Slide 87
  • Slide 88
  • TCP điều khiển tắc nghẽn additive tăng lecircn multiplicative giảm xuống
  • TCP điều khiển tắc nghẽn chi tiết
  • TCP khởi động chậm
  • TCP khởi động chậm (tt)
  • Tinh chế
  • Tinh chế nhận biết mất maacutet
  • Tổng kết TCP điều khiển tắc nghẽn
  • TCP điều khiển tắc nghẽn becircn gửi
  • TCP throughput
  • TCP tương lai
  • TCP tiacutenh cocircng bằng
  • Tại sao phải TCP cocircng bằng
  • TCP tiacutenh cocircng bằng (tt)
  • Mocirc higravenh trễ
  • Cửa sổ tắc nghẽn cố định (1)
  • Cửa sổ tắc nghẽn cố định (2)
  • TCP Mocirc higravenh trễ Khởi động chậm (1)
  • TCP Mocirc higravenh trễ Khởi động chậm (2)
  • TCP Mocirc higravenh trễ(3)
  • TCP Mocirc higravenh trễ (4)
  • HTTP Mocirc higravenh
  • Slide 110
  • Slide 111
  • Chương 3 Tổng kết

Transport Layer 3-62

TCP truyền dữ liệu tin cậy

TCP tạo dịch vụ rdt trecircn dịch vụ khocircng tin cậy IP

caacutec đoạn Pipelined caacutec ACK tiacutech lũy TCP dugraveng bộ định thigrave

truyền lại đơn

Truyền lại được kiacutech hoạt bởi caacutec sự kiện timeout caacutec ack trugraveng lặp

luacutec đầu khảo saacutet caacutec becircn gửi TCP đơn giản lờ đi caacutec ack trugraveng lặp lờ đi điều khiển luồng

điều khiển tắc nghẽn

Transport Layer 3-63

TCP caacutec sự kiệndữ liệu đatilde nhận từ ứng

dụng tạo đoạn với số thứ

tự của noacute số thứ tự lagrave số theo

byte dữ liệu đầu tiecircn khởi động bộ định thigrave

nếu chưa chạy khoảng thời gian hết

hạn TimeOutInterval

timeout gửi lại đoạn nagraveo gacircy

ra timeout khởi động lại bộ định

thigrave Ack đatilde nhận

cập nhật caacutei gigrave sẽ được ACK

khởi động bộ định thigrave nếu coacute caacutec đoạn cograven chờ

Transport Layer 3-64

TCP becircn gửi(đơn giản)

NextSeqNum = InitialSeqNum SendBase = InitialSeqNum

loop (forever) switch(event)

event data received from application above create TCP segment with sequence number NextSeqNum if (timer currently not running) start timer pass segment to IP NextSeqNum = NextSeqNum + length(data)

event timer timeout retransmit not-yet-acknowledged segment with smallest sequence number start timer

event ACK received with ACK field value of y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer

end of loop forever

Chuacute thiacutechbull SendBase-1 byte vừa được ACK tiacutech lũy Viacute dụbull SendBase-1 = 71y= 73 vigrave thế becircn nhận muốn 73+ y gt SendBase vigrave thế dữ liệu mới được chấp nhận

Transport Layer 3-65

TCP caacutec tigravenh huống truyền lại

Host A

Seq=100 20 bytes data

ACK=100

timetimeout sớm

Host B

Seq=92 8 bytes data

ACK=120

Seq=92 8 bytes data

Seq=

92

tim

eout

ACK=120

Host A

Seq=92 8 bytes data

ACK=100

loss

tim

eout

tigravenh huống mất ACK

Host B

X

Seq=92 8 bytes data

ACK=100

time

Seq=

92

tim

eout

SendBase= 100

SendBase= 120

SendBase= 120

Sendbase= 100

Transport Layer 3-66

TCP caacutec tigravenh huống truyền lại (tt)Host A

Seq=92 8 bytes data

ACK=100

loss

tim

eout

Cumulative ACK scenario

Host B

X

Seq=100 20 bytes data

ACK=120

time

SendBase= 120

Transport Layer 3-67

TCP sinh ra ACK [RFC 1122 RFC 2581]

Sự kiện tại becircn nhận

Đoạn đến với đuacuteng số thứ tự mong muốn Tất cả dữ liệu đếnđatilde được ACK

Đoạn đến với đuacuteng số thứ tự mong muốn Một đoạn khaacutec đangchờ ACK

Caacutec đoạn đến khocircng thứ tựlớn hơn số thứ tự đoạn mong muốnCoacute khoảng trống

Đoạn đếnlấp đầy từng phần hoặc toagraven bộkhoảng trống

TCP becircn nhận hagravenh động

ACK trễ Chờ đến 500mscho đoạn kế tiếp Nếu khocircng coacute đoạnkế tiếp gửi ACK

Gửi ngay một ACK tiacutech lũy chấp nhậncho cả caacutec đoạn theo thứ tự

Gửi ngay ACK trugraveng lặp chỉ thị số thứ tựđoạn của byte kế tiếp đang mong chờ

Gửi ngay ACK với điều kiện lagrave đoạnbắt đầu ngay điểm coacute khoảng trống

Transport Layer 3-68

Truyền lại nhanh

Chu kỳ Time-out thường tương đối dagravei độ trễ dagravei trước khi gửi

lại goacutei đatilde mất

Xaacutec nhận caacutec đoạn đatilde mất bằng caacutec ACK trugraveng lặp becircn gửi thường gửi

nhiều đoạn song song Nếu đoạn bị mất sẽ

xảy ra tigravenh trạng giống như nhiều ACK trugraveng nhau

Nếu becircn gửi nhận 3 ACK của cugraveng một dữ liệu noacute cho lagrave đoạn sau dữ liệu đatilde ACK bị mất Truyền lại nhanh gửi

lại đoạn trước khi bộ định thigrave hết hạn

Transport Layer 3-69

sự kiện ACK đatilde nhận với trường lagrave y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer else increment count of dup ACKs received for y if (count of dup ACKs received for y = 3) resend segment with sequence number y

Giải thuật truyền lại nhanh

một ACK trugraveng lặp cho đoạn đatilde được ACK

Truyền lại nhanh

Transport Layer 3-70

Chương 3 Nội dung trigravenh bagravey

31 Caacutec dịch vụ lớp Transport

32 Multiplexing vagrave demultiplexing

33 Vận chuyển khocircng kết nối UDP

34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy

35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối

36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn

37 Điều khiển tắc nghẽn TCP

Transport Layer 3-71

TCP điều khiển luồng

becircn nhận của kết nối TCP coacute một bộ đệm nhận

dịch vụ so trugraveng tốc độ so trugraveng tốc độ gửi với tốc độ nhận của ứng dụng

tiến trigravenh ứng dụng coacute thể chậm tại luacutec đọc bộ đệm

becircn gửi sẽ khocircng lagravem tragraven bộ đệm vigrave truyền quaacute nhiều vagrave

quaacute nhanh

điều khiển luồng

Transport Layer 3-72

TCP điều khiển luồng caacutech lagravem

(Giả sử becircn nhận TCP loại bỏ caacutec đoạn khocircng coacute thứ tự)

dự phograveng trong bộ đệm= RcvWindow

= RcvBuffer-[LastByteRcvd - LastByteRead]

Becircn nhận thocircng baacuteo khoảng dự trữ nhờ giaacute trị RcvWindow trong caacutec đoạn

Becircn gửi hạn chế dữ liệu khocircng được ACK vagraveo RcvWindow bảo đảm bộ đệm nhận

khocircng tragraven

Transport Layer 3-73

Chương 3 Nội dung trigravenh bagravey

31 Caacutec dịch vụ lớp Transport

32 Multiplexing vagrave demultiplexing

33 Vận chuyển khocircng kết nối UDP

34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy

35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối

36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn

37 Điều khiển tắc nghẽn TCP

Transport Layer 3-74

TCP quản lyacute kết nối

Chuacute yacute Becircn gửi vagrave becircn nhận TCP thiết lập ldquokết nốirdquo trước khi trao đổi dữ liệu

khởi tạo caacutec biến TCP caacutec số thứ tự đoạn thocircng tin caacutec bộ đệm điều

khiển luồng (như RcvWindow)

client người khởi xướng kết nối

Socket clientSocket = new Socket(hostnameport

number) server được tiếp xuacutec bởi

client Socket connectionSocket =

welcomeSocketaccept()

3 phương phaacutep bắt tay

Bước 1 client host gửi đoạnTCP SYN đến server xaacutec định số thứ tự khởi đầu khocircng phải dữ liệu

Bước 2 server host nhận SYN trả lời với đoạn SYNACK

server cấp phaacutet caacutec bộ đệm

xaacutec định số thứ tự khởi đầuBước 3 client nhận SYNACK trả

lời với đoạn ACK (coacute thể chứa dữ liệu)

Transport Layer 3-75

TCP quản lyacute kết nối (tt)

Đoacuteng một kết nối

client đoacuteng socket clientSocketclose()

Bước 1 client gửi đoạn điều khiển TCP FIN đến server

Bước 2 server nhận FIN trả lời với ACK Đoacuteng kết nối gửi FIN

client

FIN

server

ACK

ACK

FIN

đoacuteng

đoacuteng

đatilde đoacutengthời g

ian c

hờ

Transport Layer 3-76

TCP quản lyacute kết nối (tt)

Bước 3 client nhận FIN trả lời với ACK

Trong khoảng ldquothời gian chờrdquo ndash sẽ phản hồi với ACK để nhận caacutec FIN

Bước 4 server nhận ACK Kết nối đatilde đoacuteng

Chuacute yacute với một sửa đổi nhỏ coacute thể quản lyacute nhiều FIN đồng thời

client

FIN

server

ACK

ACK

FIN

đang đoacuteng

đang đoacuteng

đatilde đoacuteng

thời g

ian c

hờ

đatilde đoacuteng

Transport Layer 3-77

TCP quản lyacute kết nối (tt)

chu kỳ sống củaTCP client

chu kỳ sống củaTCP server

Transport Layer 3-78

Chương 3 Nội dung trigravenh bagravey

31 Caacutec dịch vụ lớp Transport

32 Multiplexing vagrave demultiplexing

33 Vận chuyển khocircng kết nối UDP

34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy

35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối

36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn

37 Điều khiển tắc nghẽn TCP

Transport Layer 3-79

Caacutec nguyecircn lyacute điều khiển tắc nghẽn

Tắc nghẽn ldquoquaacute nhiều nguồn gửi quaacute nhanh vagrave quaacute nhiều

dữ liệu đến mạngrdquo khaacutec với điều khiển luồng caacutec biểu hiện

caacutec goacutei bị mất (tragraven bộ đệm tại caacutec router) caacutec độ trễ quaacute dagravei (xếp hagraveng trong bộ đệm

của router) lagrave 1 trong 10 vấn đề nan giải nhất

Transport Layer 3-80

Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 1

2 gửi 2 nhận 1 router caacutec bộ

đệm khocircng giới hạn

khocircng coacute truyền lại

caacutec độ trễ lớn hơn khi tắc nghẽn

năng suất coacute thể đạt tối đa

unlimited shared output link buffers

Host Ain original data

Host B

out

Transport Layer 3-81

Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 2

1 router caacutec bộ đệm coacute giới hạn becircn gửi truyền lại caacutec goacutei đatilde mất

chia sẻ vocirc hạncaacutec bộ đệm ouput

Host A in dữ liệu gốc

Host B

out

in dữ liệu gốc cugraveng với dữ liệu truyền lại

Transport Layer 3-82

Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 2 luocircn luocircn

truyền lại ldquohoagraven toagravenrdquo chỉ khi mất maacutet

truyền lại vigrave trễ (khocircng mất) lagravem cho lớn hơn với cugraveng

in

out

=

in

out

gt

in

out

ldquocaacutec chi phiacuterdquo của tắc nghẽn nhiều việc (truyền lại) caacutec truyền lại khocircng cần thiết liecircn kết nhiều bản sao của

goacutei

R2

R2in

ou

t

b

R2

R2in

ou

t

a

R2

R2in

ou

t

c

R4

R3

Transport Layer 3-83

Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 3 4 người gửi caacutec đường qua nhiều hop timeouttruyền lại

in

Hỏi điều gigrave xảy ra nếu vagrave tăng lecircn

in

chia sẻ vocirc hạncaacutec bộ đệm ouput

Host Ain dữ liệu gốc

Host B

out

in dữ liệu gốc cugraveng với dữ liệu truyền lại

Transport Layer 3-84

Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 3

ldquochi phiacuterdquo khaacutec của tắc nghẽn khi caacutec goacutei bị bỏ bất kỳ ldquokhả năng truyền

upstream dugraveng cho goacutei đoacute sẽ bị latildeng phiacuterdquo

Host A

Host B

o

u

t

Transport Layer 3-85

Caacutec caacutech tiếp cận đối với điều khiển tắc nghẽn

điều khiển tắc nghẽn end-end

khocircng coacute phản hồi rotilde ragraveng từ mạng

tắc nghẽn được suy ra từ việc quan saacutet caacutec hệ thống đầu cuối coacute mất maacutet trễ

tiếp cận được quản lyacute bởi TCP

điều khiển tắc nghẽn coacute sự hỗ trợ của mạng

caacutec router cung cấp phản hồi về caacutec hệ thống đầu cuối 1 bit duy nhất chỉ thị

tắc nghẽn (SNA DECbit TCPIP ECN ATM)

tốc độ sẽ gửi được xaacutec định rotilde ragraveng

2 caacutech

Transport Layer 3-86

Viacute dụ điều khiển tắc nghẽn ATM ABR

ABR tốc độ bit sẵn sagraveng

ldquodịch vụ mềm dẻordquo nếu đường gửi ldquochưa

hếtrdquo becircn gửi sẽ dugraveng

băng thocircng sẵn sagraveng nếu đường gửi tắc

nghẽn becircn gửi điều tiết với

tốc độ tối thiểu

RM (resource management)

gửi bởi becircn gửi rải raacutec với caacutec ocirc dữ liệu

caacutec bit trong ocirc thiết lập bởi caacutec switch bit NI khocircng tăng tốc độ

(tắc nghẽn nhẹ) bit CI tắc nghẽn rotilde rệt

Caacutec ocirc RM được trả về becircn gửi từ becircn nhận với nguyecircn vẹn caacutec bit

Transport Layer 3-87

Viacute dụ điều khiển tắc nghẽn ATM ABR

trường 2-byte ER trong ocirc RM switch đatilde tắc nghẽn coacute thể coacute giaacute trị ER thấp hơn trong ocirc tốc độ gửi do đoacute coacute thể được hỗ trợ tối đa trecircn đường

EFCI bit trong caacutec ocirc dữ liệu được cagravei giaacute trị 1 trong switch đatilde tắc nghẽn nếu ocirc dữ liệu đứng trước ocirc RM coacute cagravei EFCI becircn gửi sẽ cagravei

bit CI trong ocirc RM trả về

Transport Layer 3-88

Chương 3 Nội dung trigravenh bagravey

31 Caacutec dịch vụ lớp Transport

32 Multiplexing vagrave demultiplexing

33 Vận chuyển khocircng kết nối UDP

34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy

35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối

36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn

37 Điều khiển tắc nghẽn TCP

Transport Layer 3-89

TCP điều khiển tắc nghẽn additive tăng lecircn multiplicative giảm xuống

8 Kbytes

16 Kbytes

24 Kbytes

time

congestionwindow

Caacutech tiếp cận tăng tốc độ truyền (kiacutech thước cửa sổ) tigravem khả năng băng thocircng coacute thể cho đến khi coacute mất maacutet xảy ra additive tăng lecircn tăng CongWin bởi 1 MSS

mỗi RTT cho đến khi coacute mất maacutet xảy ra multiplicative giảm xuống bỏ CongWin trong

nửa giai đoạn sau khi mất maacutet

timekiacutech

thư

ớc

cửa

sổ

tắc

nghẽ

n

Tigravem kiếm băng thocircng

Transport Layer 3-90

TCP điều khiển tắc nghẽn chi tiết

becircn gửi hạn chế việc truyền LastByteSent-LastByteAcked

CongWin Cocircng thức

CongWin thay đổi chức năng lagrave nhận biết tắc nghẽn trecircn mạng

Lagravem thế nagraveo becircn gửi nhận biết tắc nghẽn

mất maacutet xảy ra = timeout hoặc 3 ack trugraveng lặp

becircn gửi giảm tốc độ (CongWin) sau khi mất maacutet xảy ra

3 cơ chế AIMD khởi động chậm thận trọng sau khi coacute

caacutec sự kiện timeout

tốc độ = CongWin

RTT Bytess

Transport Layer 3-91

TCP khởi động chậm

Khi kết nối bắt đầu CongWin = 1 MSS Viacute dụ MSS = 500 bytes

amp RTT = 200 ms tốc độ khởi tạo = 20

kbps

băng thocircng sẵn sagraveng coacute thể gtgt MSSRTT mong muốn nhanh

choacuteng tăng tốc lecircn tốc độ coacute thể đaacutep ứng

Khi kết nối bắt đầu tăng tốc lecircn rất nhanh cho đến khi sự cố mất maacutet xảy ra đầu tiecircn

Transport Layer 3-92

TCP khởi động chậm (tt)

Khi kết nối bắt đầu tăng tốc lecircn rất nhanh cho đến khi sự cố mất maacutet xảy ra đầu tiecircn nhacircn đocirci CongWin mỗi

RTT hoagraven thagravenh nhờ tăng CongWin ứng với mỗi ACK đatilde nhận

Tổng kết tốc độ khởi đầu lagrave chậm nhưng sau đoacute tăng tốc rất nhanh

Host A

1 đoạn

RTT

Host B

thời gian

2 đoạn

4 đoạn

Transport Layer 3-93

Tinh chếHỏi Khi nagraveo việc tăng

tốc trở thagravenh tuyến tiacutenh

Trả lời Khi CongWin đạt đến 12 giaacute trị của noacute trước khi timeout

Hiện thực Ngưỡng thay đổi Tại thời điểm coacute sự cố

mất maacutet ngưỡng được cagravei giaacute trị bằng frac12 của CongWin ngay trước đoacute

Transport Layer 3-94

Tinh chế nhận biết mất maacutet

Sau 3 ACK trugraveng lặp CongWin sẽ giảm 12 kiacutech thước cửa sổ

tăng tuyến tiacutenh nhưng sau sự cố

timeout CongWin thay giaacute trị

bằng 1 MSS kiacutech thước cửa sổ

tăng cấp lũy thừa khi đến một ngưỡng

thigrave tăng tuyến tiacutenh

3 ACK trugraveng nhau chỉ ra khả năng truyền của mạng timeout chỉ thị ldquonhiều cảnh baacuteordquo về tigravenh huống tắc nghẽn

Nguyecircn lyacute

Transport Layer 3-95

Tổng kết TCP điều khiển tắc nghẽn

Khi CongWin dưới Threshold becircn gửi đang trong giai đoạn khởi động chậm kiacutech thước cửa sổ tăng nhanh theo cấp lũy thừa

Khi CongWin trecircn Threshold becircn gửi đang trong giai đoạn traacutenh tắc nghẽn kiacutech thước cửa sổ tăng nhanh theo cấp tuyến tiacutenh

Khi coacute 3 ACK trugraveng lặp xảy ra Threshold = CongWin2 vagrave CongWin = Threshold

Khi timeout xảy ra Threshold = CongWin2 vagrave CongWin = 1 MSS

Transport Layer 3-96

TCP điều khiển tắc nghẽn becircn gửi

Trạng thaacutei Sự kiện TCP becircn gửi hagravenh động Diễn giải

Slow Start (SS)-Khởi động chậm

ACK baacuteo nhận cho dữ liệu chưa ACK trước đoacute

CongWin = CongWin + MSS If (CongWin gt Threshold) cagravei đặt trạng thaacutei ldquoTraacutenh tắc nghẽnrdquo

Hậu quả lagravem tăng gấp đocirci CongWin mỗi RTT

CongestionAvoidance (CA) ndashTraacutenh tắc nghẽn

ACK baacuteo nhận cho dữ liệu chưa ACK trước đoacute

CongWin = CongWin+MSS (MSSCongWin)

Additive tăng lecircn lagravem tăng CongWin lecircn 1 MSS mỗi RTT

SS hoặc CA Sự cố mất maacutet xảy ra khi thấy coacute 3 ACK trugraveng lặp

Threshold = CongWin2 CongWin = Thresholdcagravei đặt trạng thaacutei ldquoTraacutenh tắc nghẽnrdquo

Khocirci phục nhanh hiện thực giảm xuống multiplicative CongWin sẽ khocircng giảm xuống dưới 1 MSS

SS hoặc CA Timeout Threshold = CongWin2 CongWin = 1 MSScagravei đặt trạng thaacutei ldquoKhởi động chậmrdquo

Vagraveo chế độ ldquoKhởi động chậmrdquo

SS hoặc CA ACK trugraveng lặp

Đếm ACK tăng lecircn cho đoạn vừa được ACK

CongWin vagrave Threshold khocircng thay đổi

Transport Layer 3-97

TCP throughput

Throughout trung bigravenh của TCP biểu diễn qua kiacutech thước của sổ vagrave RTT Bỏ qua trạng thaacutei ldquoKhởi động chậmrdquo

Cho W lagrave kiacutech thước cửa sổ khi coacute mất maacutet xảy ra

Khi kiacutech thước cửa sổ = W lưu lượng = WRTT

Chỉ ngay sau khi mất maacutet cửa sổ giảm xuống = W2 lưu lượng = W2RTT

throughout trung bigravenh 075 WRTT

Transport Layer 3-98

TCP tương lai

Viacute dụ caacutec đoạn dagravei 1500 byte RTT 100ms lưu lượng 10 Gbps

Kiacutech thước cửa sổ yecircu cầu W = 83333 đoạn trecircn đường truyền

Lưu lượng trong caacutec trường hợp mất maacutet

L = 210-10

Phiecircn bản mới của TCP dagravenh cho nhu cầu tốc độ cao

LRTT

MSS221

Transport Layer 3-99

Mục tiecircu nếu K phiecircn lagravem việc TCP chia sẻ kết nối cổ chai của băng thocircng lagrave R mỗi phiecircn coacute tốc độ trung bigravenh lagrave RK

TCP kết nối 1

router cổ chaikhả năng R

TCP kết nối 2

TCP tiacutenh cocircng bằng

Transport Layer 3-100

Tại sao phải TCP cocircng bằng

2 phiecircn lagravem việc cạnh tranh nhau Additive tăng lưu lượng tăng multiplicative giảm lưu lượng tương xứng

R

R

chia sẻ băng thocircng bằng nhau

Connection 1 throughputConnect

ion 2

th

roughput

traacutenh tắc nghẽn additive tăng lecircnmất maacutet giảm cửa sổ bằng 12

traacutenh tắc nghẽn additive tăng lecircnmất maacutet giảm cửa sổ bằng 12

Transport Layer 3-101

TCP tiacutenh cocircng bằng (tt)

Tiacutenh cocircng bằng amp UDP nhiều ứng dụng

thường khocircng dugraveng TCP khocircng muốn tốc độ bị

điều tiết do điều khiển tắc nghẽn

Thay bằng dugraveng UDP truyền audiovideo với

tốc độ ổn định chịu được mất maacutet

Nghiecircn cứu giao thức thacircn thiện với TCP

Tiacutenh cocircng bằng amp caacutec kết nối TCP song song

khocircng coacute gigrave ngăn cản việc ứng dụng mở caacutec kết nối song song giữa 2 host

Trigravenh duyệt Web lagravem giống như thế

Viacute dụ tốc độ R hỗ trợ 9 kết nối ứng dụng mới yecircu cầu 1

TCP coacute tốc độ R10 ứng dụng mới yecircu cầu 11

TCP coacute tốc độ R2

Transport Layer 3-102

Mocirc higravenh trễ

Hỏi Mất bao lacircu để nhận 1 đối tượng từ Web server sau khi gửi yecircu cầu

Bỏ qua tắc nghẽn trễ bị ảnh hưởng bởi

thiết lập kết nối TCP trễ truyền dữ liệu khởi động chậm

Notation caacutec giả định Giả sử một kết nối giữa

client vagrave server coacute tốc độ R

S MSS (bits) O kiacutech thước đối tượng

(bits) khocircng truyền lại (khocircng

mất maacutet khocircng hỏng)

Kiacutech thước cửa sổ Giả định 1 cửa sổ tắc

nghẽn cố định coacute W đoạn Sau đoacute cửa sổ thay đổi

mocirc higravenh khởi động chậm

Transport Layer 3-103

Cửa sổ tắc nghẽn cố định (1)

Trường hợp đầu tiecircnWSR gt RTT + SR cho

đoạn đầu tiecircn trong cửa sổ trả về trước khi cửa sổ dữ liệu gửi ACK

trễ = 2RTT + OR

Transport Layer 3-104

Cửa sổ tắc nghẽn cố định (2)

Trường hợp thứ hai WSR lt RTT + SR sent

chờ cho ACK sau khi gửi dữ liệu

trễ = 2RTT + OR+ (K-1)[SR + RTT - WSR]

Transport Layer 3-105

TCP Mocirc higravenh trễ Khởi động chậm (1)

Bacircy giờ giả sử kiacutech thước cửa sổ tăng lecircn tugravey theo quaacute trigravenh khởi động chậm

Độ trễ của một đối tượng sẽ lagrave

R

S

R

SRTTP

R

ORTTLatency P )12(2

trong đoacute P lagrave số lần TCP rảnh ở tại server

1min KQP

- trong đoacute Q lagrave số lần server rảnh nếu đối tượng đatilde khởi tạo kiacutech thước

- vagrave K lagrave số lượng cửa sổ bao trugravem đối tượng

Transport Layer 3-106

TCP Mocirc higravenh trễ Khởi động chậm (2)

RTT

initia te TCPconnection

requestobject

first w indow= S R

second w indow= 2S R

third w indow= 4S R

fourth w indow= 8S R

com pletetransm issionobject

delivered

tim e atc lient

tim e atserver

Viacute dụbull OS = 15 đoạnbull K = 4 cửa sổbull Q = 2bull P = minK-1Q = 2

Server rảnh P=2 lần

Caacutec thagravenh phần trễbull 2 RTT dagravenh cho thiết lập kết nối vagrave yecircu cầubull OR để truyền đối tượngbullthời gian server rảnh bởi vigrave khởi động chậm

Server rảnh P = minK-1Q lần

Transport Layer 3-107

TCP Mocirc higravenh trễ(3)

R

S

R

SRTTPRTT

R

O

R

SRTT

R

SRTT

R

O

idleTimeRTTR

O

P

kP

k

P

pp

)12(][2

]2[2

2delay

1

1

1

th window after the timeidle 2 1 kR

SRTT

R

S k

ementacknowledg receivesserver until

segment send tostartsserver when from time RTTR

S

window kth the transmit totime2 1

R

Sk

RTT

initia te TCPconnection

requestobject

first w indow= S R

second w indow= 2S R

third w indow= 4S R

fourth w indow= 8S R

com pletetransm issionobject

delivered

tim e atc lient

tim e atserver

Transport Layer 3-108

TCP Mocirc higravenh trễ (4)

)1(log

)1(logmin

12min

222min

222min

2

2

110

110

S

OS

Okk

S

Ok

SOk

OSSSkK

k

k

k

caacutech tiacutenh toaacuten Q tương tự (xem HW)

K = số lượng cửa sổ bao trugravem đối tượngLagravem thế nagraveo tiacutenh được K

Transport Layer 3-109

HTTP Mocirc higravenh Giả sử trang Web chứa

1 trang HTML (kiacutech thước O bits) M higravenh ảnh (mỗi caacutei kiacutech thướcO bits)

HTTP khocircng bền vững M+1 TCP kết nối Thời gian đaacutep ứng = (M+1)OR + (M+1)2RTT + tổng số thời

gian rảnh HTTP bền vững

2 RTT để yecircu cầu vagrave nhận file HTML 1 RTT để yecircu cầu vagrave nhận M higravenh ảnh Thời gian đaacutep ứng = (M+1)OR + 3RTT + tổng số thời gian

rảnh HTTP khocircng bền vững với X kết nối song song

Giả sử MX lagrave số nguyecircn 1 TCP kết nối cho file MX thiết lập caacutec kết nối song song cho caacutec higravenh ảnh Thời gian đaacutep ứng = (M+1)OR + (MX + 1)2RTT + tổng số

thời gian rảnh

Transport Layer 3-110

02468

101214161820

28Kbps

100Kbps

1Mbps

10Mbps

non-persistent

persistent

parallel non-persistent

HTTP thời gian đaacutep ứng (giacircy)RTT = 100 msec O = 5 Kbytes M=10 vagrave X=5

Với băng thocircng thấp thời gian kết nối amp đaacutep ứng trội hơn thời gian truyền

Caacutec kết nối bền vững chỉ cho sự cải thiện khocircng đaacuteng kể trecircn caacutec kết nối song song

Transport Layer 3-111

0

10

20

30

40

50

60

70

28Kbps

100Kbps

1Mbps

10Mbps

non-persistent

persistent

parallel non-persistent

HTTP thời gian đaacutep ứng (giacircy)

RTT =1 sec O = 5 Kbytes M=10 and X=5

Với RTT lớn hơn thời gian đaacutep ứng trội hơn thời gian trễ chờ thiết lập kết nốiTCP amp khởi động chậm Caacutec kết nối bền vững bacircy giờ cho thấy cải thiện rotilde rệt đặc biệtvới caacutec mạng băng thocircng cao

Transport Layer 3-112

Chương 3 Tổng kết caacutec nguyecircn lyacute của caacutec

dịch vụ lớp transport multiplexing

demultiplexing truyền dữ liệu tin cậy điều khiển luồng điều khiển tắc nghẽn

khởi tạo vagrave hiện thực trong Internet UDP TCP

Tiếp theo nghiecircn cứu xong

caacutec vấn đề ldquongoagravei biecircnrdquo (caacutec lớp application transport)

chuẩn bị vagraveo phần ldquolotildeirdquo của mạng

  • Slide 1
  • Chương 3 Lớp Transport
  • Chương 3 Nội dung trigravenh bagravey
  • Caacutec dịch vụ vagrave giao thức Transport
  • Lớp Transport với lớp network
  • Caacutec giao thức lớp transport trecircn Internet
  • Slide 7
  • Multiplexingdemultiplexing
  • Demultiplexing lagravem việc như thế nagraveo
  • Demultiplexing khocircng kết nối
  • Demultiplexing khocircng kết nối (tiếp)
  • Demultiplexing hướng kết nối
  • Demultiplexing hướng kết nối (tiếp)
  • Demultiplexing hướng kết nối Threaded Web Server
  • Slide 15
  • UDP User Datagram Protocol [RFC 768]
  • UDP (tt)
  • UDP checksum
  • Viacute dụ Checksum
  • Slide 20
  • Caacutec nguyecircn lyacute truyền dữ liệu tin cậy
  • Slide 22
  • Slide 23
  • Truyền dữ liệu tin cậy
  • Slide 25
  • Rdt10 truyền dữ liệu tin cậy trecircn 1 kecircnh truyền tin cậy
  • Rdt20 kecircnh với caacutec lỗi
  • rdt20 đặc tả FSM
  • rdt20 hoạt động khi khocircng lỗi
  • rdt20 hoạt động khi coacute lỗi
  • rdt20 coacute lỗ hổng nghiecircm trọng
  • rdt21 người gửi quản lyacute caacutec ACKNAK bị hỏng
  • Slide 33
  • rdt21 thảo luận
  • rdt22 một giao thức khocircng cần NAK
  • rdt22 gửi nhận caacutec mảnh
  • rdt30 caacutec kecircnh với lỗi vagrave mất maacutet
  • rdt30 gửi
  • hagravenh động của rdt30
  • Slide 40
  • Hiệu suất của rdt30
  • rdt30 hoạt động dừng-vagrave-chờ
  • Caacutec giao thức Pipelined
  • Pipelining độ khả dụng tăng
  • Go-Back-N
  • GBN becircn gửi mở rộng FSM
  • GBN becircn nhận mở rộng FSM
  • GBN hoạt động
  • Lặp coacute lựa chọn
  • Lặp coacute lựa chọn caacutec cửa sổ gửi nhận
  • Slide 51
  • Hoạt động của lặp coacute lựa chọn
  • Lặp coacute lựa chọn tigravenh trạng khoacute giải quyết
  • Slide 54
  • TCP Tổng quan RFCs 793 1122 1323 2018 2581
  • TCP cấu truacutec đoạn
  • Caacutec số thứ tự TCP vagrave ACK
  • TCP Round Trip Time vagraveTimeout
  • TCP Round Trip Time vagrave Timeout
  • Viacute dụ đaacutenh giaacute RTT
  • Slide 61
  • TCP truyền dữ liệu tin cậy
  • TCP caacutec sự kiện
  • TCP becircn gửi (đơn giản)
  • TCP caacutec tigravenh huống truyền lại
  • TCP caacutec tigravenh huống truyền lại (tt)
  • TCP sinh ra ACK [RFC 1122 RFC 2581]
  • Truyền lại nhanh
  • Giải thuật truyền lại nhanh
  • Slide 70
  • TCP điều khiển luồng
  • TCP điều khiển luồng caacutech lagravem
  • Slide 73
  • TCP quản lyacute kết nối
  • TCP quản lyacute kết nối (tt)
  • Slide 76
  • Slide 77
  • Slide 78
  • Caacutec nguyecircn lyacute điều khiển tắc nghẽn
  • Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 1
  • Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 2
  • Slide 82
  • Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 3
  • Slide 84
  • Caacutec caacutech tiếp cận đối với điều khiển tắc nghẽn
  • Viacute dụ điều khiển tắc nghẽn ATM ABR
  • Slide 87
  • Slide 88
  • TCP điều khiển tắc nghẽn additive tăng lecircn multiplicative giảm xuống
  • TCP điều khiển tắc nghẽn chi tiết
  • TCP khởi động chậm
  • TCP khởi động chậm (tt)
  • Tinh chế
  • Tinh chế nhận biết mất maacutet
  • Tổng kết TCP điều khiển tắc nghẽn
  • TCP điều khiển tắc nghẽn becircn gửi
  • TCP throughput
  • TCP tương lai
  • TCP tiacutenh cocircng bằng
  • Tại sao phải TCP cocircng bằng
  • TCP tiacutenh cocircng bằng (tt)
  • Mocirc higravenh trễ
  • Cửa sổ tắc nghẽn cố định (1)
  • Cửa sổ tắc nghẽn cố định (2)
  • TCP Mocirc higravenh trễ Khởi động chậm (1)
  • TCP Mocirc higravenh trễ Khởi động chậm (2)
  • TCP Mocirc higravenh trễ(3)
  • TCP Mocirc higravenh trễ (4)
  • HTTP Mocirc higravenh
  • Slide 110
  • Slide 111
  • Chương 3 Tổng kết

Transport Layer 3-63

TCP caacutec sự kiệndữ liệu đatilde nhận từ ứng

dụng tạo đoạn với số thứ

tự của noacute số thứ tự lagrave số theo

byte dữ liệu đầu tiecircn khởi động bộ định thigrave

nếu chưa chạy khoảng thời gian hết

hạn TimeOutInterval

timeout gửi lại đoạn nagraveo gacircy

ra timeout khởi động lại bộ định

thigrave Ack đatilde nhận

cập nhật caacutei gigrave sẽ được ACK

khởi động bộ định thigrave nếu coacute caacutec đoạn cograven chờ

Transport Layer 3-64

TCP becircn gửi(đơn giản)

NextSeqNum = InitialSeqNum SendBase = InitialSeqNum

loop (forever) switch(event)

event data received from application above create TCP segment with sequence number NextSeqNum if (timer currently not running) start timer pass segment to IP NextSeqNum = NextSeqNum + length(data)

event timer timeout retransmit not-yet-acknowledged segment with smallest sequence number start timer

event ACK received with ACK field value of y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer

end of loop forever

Chuacute thiacutechbull SendBase-1 byte vừa được ACK tiacutech lũy Viacute dụbull SendBase-1 = 71y= 73 vigrave thế becircn nhận muốn 73+ y gt SendBase vigrave thế dữ liệu mới được chấp nhận

Transport Layer 3-65

TCP caacutec tigravenh huống truyền lại

Host A

Seq=100 20 bytes data

ACK=100

timetimeout sớm

Host B

Seq=92 8 bytes data

ACK=120

Seq=92 8 bytes data

Seq=

92

tim

eout

ACK=120

Host A

Seq=92 8 bytes data

ACK=100

loss

tim

eout

tigravenh huống mất ACK

Host B

X

Seq=92 8 bytes data

ACK=100

time

Seq=

92

tim

eout

SendBase= 100

SendBase= 120

SendBase= 120

Sendbase= 100

Transport Layer 3-66

TCP caacutec tigravenh huống truyền lại (tt)Host A

Seq=92 8 bytes data

ACK=100

loss

tim

eout

Cumulative ACK scenario

Host B

X

Seq=100 20 bytes data

ACK=120

time

SendBase= 120

Transport Layer 3-67

TCP sinh ra ACK [RFC 1122 RFC 2581]

Sự kiện tại becircn nhận

Đoạn đến với đuacuteng số thứ tự mong muốn Tất cả dữ liệu đếnđatilde được ACK

Đoạn đến với đuacuteng số thứ tự mong muốn Một đoạn khaacutec đangchờ ACK

Caacutec đoạn đến khocircng thứ tựlớn hơn số thứ tự đoạn mong muốnCoacute khoảng trống

Đoạn đếnlấp đầy từng phần hoặc toagraven bộkhoảng trống

TCP becircn nhận hagravenh động

ACK trễ Chờ đến 500mscho đoạn kế tiếp Nếu khocircng coacute đoạnkế tiếp gửi ACK

Gửi ngay một ACK tiacutech lũy chấp nhậncho cả caacutec đoạn theo thứ tự

Gửi ngay ACK trugraveng lặp chỉ thị số thứ tựđoạn của byte kế tiếp đang mong chờ

Gửi ngay ACK với điều kiện lagrave đoạnbắt đầu ngay điểm coacute khoảng trống

Transport Layer 3-68

Truyền lại nhanh

Chu kỳ Time-out thường tương đối dagravei độ trễ dagravei trước khi gửi

lại goacutei đatilde mất

Xaacutec nhận caacutec đoạn đatilde mất bằng caacutec ACK trugraveng lặp becircn gửi thường gửi

nhiều đoạn song song Nếu đoạn bị mất sẽ

xảy ra tigravenh trạng giống như nhiều ACK trugraveng nhau

Nếu becircn gửi nhận 3 ACK của cugraveng một dữ liệu noacute cho lagrave đoạn sau dữ liệu đatilde ACK bị mất Truyền lại nhanh gửi

lại đoạn trước khi bộ định thigrave hết hạn

Transport Layer 3-69

sự kiện ACK đatilde nhận với trường lagrave y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer else increment count of dup ACKs received for y if (count of dup ACKs received for y = 3) resend segment with sequence number y

Giải thuật truyền lại nhanh

một ACK trugraveng lặp cho đoạn đatilde được ACK

Truyền lại nhanh

Transport Layer 3-70

Chương 3 Nội dung trigravenh bagravey

31 Caacutec dịch vụ lớp Transport

32 Multiplexing vagrave demultiplexing

33 Vận chuyển khocircng kết nối UDP

34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy

35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối

36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn

37 Điều khiển tắc nghẽn TCP

Transport Layer 3-71

TCP điều khiển luồng

becircn nhận của kết nối TCP coacute một bộ đệm nhận

dịch vụ so trugraveng tốc độ so trugraveng tốc độ gửi với tốc độ nhận của ứng dụng

tiến trigravenh ứng dụng coacute thể chậm tại luacutec đọc bộ đệm

becircn gửi sẽ khocircng lagravem tragraven bộ đệm vigrave truyền quaacute nhiều vagrave

quaacute nhanh

điều khiển luồng

Transport Layer 3-72

TCP điều khiển luồng caacutech lagravem

(Giả sử becircn nhận TCP loại bỏ caacutec đoạn khocircng coacute thứ tự)

dự phograveng trong bộ đệm= RcvWindow

= RcvBuffer-[LastByteRcvd - LastByteRead]

Becircn nhận thocircng baacuteo khoảng dự trữ nhờ giaacute trị RcvWindow trong caacutec đoạn

Becircn gửi hạn chế dữ liệu khocircng được ACK vagraveo RcvWindow bảo đảm bộ đệm nhận

khocircng tragraven

Transport Layer 3-73

Chương 3 Nội dung trigravenh bagravey

31 Caacutec dịch vụ lớp Transport

32 Multiplexing vagrave demultiplexing

33 Vận chuyển khocircng kết nối UDP

34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy

35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối

36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn

37 Điều khiển tắc nghẽn TCP

Transport Layer 3-74

TCP quản lyacute kết nối

Chuacute yacute Becircn gửi vagrave becircn nhận TCP thiết lập ldquokết nốirdquo trước khi trao đổi dữ liệu

khởi tạo caacutec biến TCP caacutec số thứ tự đoạn thocircng tin caacutec bộ đệm điều

khiển luồng (như RcvWindow)

client người khởi xướng kết nối

Socket clientSocket = new Socket(hostnameport

number) server được tiếp xuacutec bởi

client Socket connectionSocket =

welcomeSocketaccept()

3 phương phaacutep bắt tay

Bước 1 client host gửi đoạnTCP SYN đến server xaacutec định số thứ tự khởi đầu khocircng phải dữ liệu

Bước 2 server host nhận SYN trả lời với đoạn SYNACK

server cấp phaacutet caacutec bộ đệm

xaacutec định số thứ tự khởi đầuBước 3 client nhận SYNACK trả

lời với đoạn ACK (coacute thể chứa dữ liệu)

Transport Layer 3-75

TCP quản lyacute kết nối (tt)

Đoacuteng một kết nối

client đoacuteng socket clientSocketclose()

Bước 1 client gửi đoạn điều khiển TCP FIN đến server

Bước 2 server nhận FIN trả lời với ACK Đoacuteng kết nối gửi FIN

client

FIN

server

ACK

ACK

FIN

đoacuteng

đoacuteng

đatilde đoacutengthời g

ian c

hờ

Transport Layer 3-76

TCP quản lyacute kết nối (tt)

Bước 3 client nhận FIN trả lời với ACK

Trong khoảng ldquothời gian chờrdquo ndash sẽ phản hồi với ACK để nhận caacutec FIN

Bước 4 server nhận ACK Kết nối đatilde đoacuteng

Chuacute yacute với một sửa đổi nhỏ coacute thể quản lyacute nhiều FIN đồng thời

client

FIN

server

ACK

ACK

FIN

đang đoacuteng

đang đoacuteng

đatilde đoacuteng

thời g

ian c

hờ

đatilde đoacuteng

Transport Layer 3-77

TCP quản lyacute kết nối (tt)

chu kỳ sống củaTCP client

chu kỳ sống củaTCP server

Transport Layer 3-78

Chương 3 Nội dung trigravenh bagravey

31 Caacutec dịch vụ lớp Transport

32 Multiplexing vagrave demultiplexing

33 Vận chuyển khocircng kết nối UDP

34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy

35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối

36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn

37 Điều khiển tắc nghẽn TCP

Transport Layer 3-79

Caacutec nguyecircn lyacute điều khiển tắc nghẽn

Tắc nghẽn ldquoquaacute nhiều nguồn gửi quaacute nhanh vagrave quaacute nhiều

dữ liệu đến mạngrdquo khaacutec với điều khiển luồng caacutec biểu hiện

caacutec goacutei bị mất (tragraven bộ đệm tại caacutec router) caacutec độ trễ quaacute dagravei (xếp hagraveng trong bộ đệm

của router) lagrave 1 trong 10 vấn đề nan giải nhất

Transport Layer 3-80

Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 1

2 gửi 2 nhận 1 router caacutec bộ

đệm khocircng giới hạn

khocircng coacute truyền lại

caacutec độ trễ lớn hơn khi tắc nghẽn

năng suất coacute thể đạt tối đa

unlimited shared output link buffers

Host Ain original data

Host B

out

Transport Layer 3-81

Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 2

1 router caacutec bộ đệm coacute giới hạn becircn gửi truyền lại caacutec goacutei đatilde mất

chia sẻ vocirc hạncaacutec bộ đệm ouput

Host A in dữ liệu gốc

Host B

out

in dữ liệu gốc cugraveng với dữ liệu truyền lại

Transport Layer 3-82

Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 2 luocircn luocircn

truyền lại ldquohoagraven toagravenrdquo chỉ khi mất maacutet

truyền lại vigrave trễ (khocircng mất) lagravem cho lớn hơn với cugraveng

in

out

=

in

out

gt

in

out

ldquocaacutec chi phiacuterdquo của tắc nghẽn nhiều việc (truyền lại) caacutec truyền lại khocircng cần thiết liecircn kết nhiều bản sao của

goacutei

R2

R2in

ou

t

b

R2

R2in

ou

t

a

R2

R2in

ou

t

c

R4

R3

Transport Layer 3-83

Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 3 4 người gửi caacutec đường qua nhiều hop timeouttruyền lại

in

Hỏi điều gigrave xảy ra nếu vagrave tăng lecircn

in

chia sẻ vocirc hạncaacutec bộ đệm ouput

Host Ain dữ liệu gốc

Host B

out

in dữ liệu gốc cugraveng với dữ liệu truyền lại

Transport Layer 3-84

Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 3

ldquochi phiacuterdquo khaacutec của tắc nghẽn khi caacutec goacutei bị bỏ bất kỳ ldquokhả năng truyền

upstream dugraveng cho goacutei đoacute sẽ bị latildeng phiacuterdquo

Host A

Host B

o

u

t

Transport Layer 3-85

Caacutec caacutech tiếp cận đối với điều khiển tắc nghẽn

điều khiển tắc nghẽn end-end

khocircng coacute phản hồi rotilde ragraveng từ mạng

tắc nghẽn được suy ra từ việc quan saacutet caacutec hệ thống đầu cuối coacute mất maacutet trễ

tiếp cận được quản lyacute bởi TCP

điều khiển tắc nghẽn coacute sự hỗ trợ của mạng

caacutec router cung cấp phản hồi về caacutec hệ thống đầu cuối 1 bit duy nhất chỉ thị

tắc nghẽn (SNA DECbit TCPIP ECN ATM)

tốc độ sẽ gửi được xaacutec định rotilde ragraveng

2 caacutech

Transport Layer 3-86

Viacute dụ điều khiển tắc nghẽn ATM ABR

ABR tốc độ bit sẵn sagraveng

ldquodịch vụ mềm dẻordquo nếu đường gửi ldquochưa

hếtrdquo becircn gửi sẽ dugraveng

băng thocircng sẵn sagraveng nếu đường gửi tắc

nghẽn becircn gửi điều tiết với

tốc độ tối thiểu

RM (resource management)

gửi bởi becircn gửi rải raacutec với caacutec ocirc dữ liệu

caacutec bit trong ocirc thiết lập bởi caacutec switch bit NI khocircng tăng tốc độ

(tắc nghẽn nhẹ) bit CI tắc nghẽn rotilde rệt

Caacutec ocirc RM được trả về becircn gửi từ becircn nhận với nguyecircn vẹn caacutec bit

Transport Layer 3-87

Viacute dụ điều khiển tắc nghẽn ATM ABR

trường 2-byte ER trong ocirc RM switch đatilde tắc nghẽn coacute thể coacute giaacute trị ER thấp hơn trong ocirc tốc độ gửi do đoacute coacute thể được hỗ trợ tối đa trecircn đường

EFCI bit trong caacutec ocirc dữ liệu được cagravei giaacute trị 1 trong switch đatilde tắc nghẽn nếu ocirc dữ liệu đứng trước ocirc RM coacute cagravei EFCI becircn gửi sẽ cagravei

bit CI trong ocirc RM trả về

Transport Layer 3-88

Chương 3 Nội dung trigravenh bagravey

31 Caacutec dịch vụ lớp Transport

32 Multiplexing vagrave demultiplexing

33 Vận chuyển khocircng kết nối UDP

34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy

35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối

36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn

37 Điều khiển tắc nghẽn TCP

Transport Layer 3-89

TCP điều khiển tắc nghẽn additive tăng lecircn multiplicative giảm xuống

8 Kbytes

16 Kbytes

24 Kbytes

time

congestionwindow

Caacutech tiếp cận tăng tốc độ truyền (kiacutech thước cửa sổ) tigravem khả năng băng thocircng coacute thể cho đến khi coacute mất maacutet xảy ra additive tăng lecircn tăng CongWin bởi 1 MSS

mỗi RTT cho đến khi coacute mất maacutet xảy ra multiplicative giảm xuống bỏ CongWin trong

nửa giai đoạn sau khi mất maacutet

timekiacutech

thư

ớc

cửa

sổ

tắc

nghẽ

n

Tigravem kiếm băng thocircng

Transport Layer 3-90

TCP điều khiển tắc nghẽn chi tiết

becircn gửi hạn chế việc truyền LastByteSent-LastByteAcked

CongWin Cocircng thức

CongWin thay đổi chức năng lagrave nhận biết tắc nghẽn trecircn mạng

Lagravem thế nagraveo becircn gửi nhận biết tắc nghẽn

mất maacutet xảy ra = timeout hoặc 3 ack trugraveng lặp

becircn gửi giảm tốc độ (CongWin) sau khi mất maacutet xảy ra

3 cơ chế AIMD khởi động chậm thận trọng sau khi coacute

caacutec sự kiện timeout

tốc độ = CongWin

RTT Bytess

Transport Layer 3-91

TCP khởi động chậm

Khi kết nối bắt đầu CongWin = 1 MSS Viacute dụ MSS = 500 bytes

amp RTT = 200 ms tốc độ khởi tạo = 20

kbps

băng thocircng sẵn sagraveng coacute thể gtgt MSSRTT mong muốn nhanh

choacuteng tăng tốc lecircn tốc độ coacute thể đaacutep ứng

Khi kết nối bắt đầu tăng tốc lecircn rất nhanh cho đến khi sự cố mất maacutet xảy ra đầu tiecircn

Transport Layer 3-92

TCP khởi động chậm (tt)

Khi kết nối bắt đầu tăng tốc lecircn rất nhanh cho đến khi sự cố mất maacutet xảy ra đầu tiecircn nhacircn đocirci CongWin mỗi

RTT hoagraven thagravenh nhờ tăng CongWin ứng với mỗi ACK đatilde nhận

Tổng kết tốc độ khởi đầu lagrave chậm nhưng sau đoacute tăng tốc rất nhanh

Host A

1 đoạn

RTT

Host B

thời gian

2 đoạn

4 đoạn

Transport Layer 3-93

Tinh chếHỏi Khi nagraveo việc tăng

tốc trở thagravenh tuyến tiacutenh

Trả lời Khi CongWin đạt đến 12 giaacute trị của noacute trước khi timeout

Hiện thực Ngưỡng thay đổi Tại thời điểm coacute sự cố

mất maacutet ngưỡng được cagravei giaacute trị bằng frac12 của CongWin ngay trước đoacute

Transport Layer 3-94

Tinh chế nhận biết mất maacutet

Sau 3 ACK trugraveng lặp CongWin sẽ giảm 12 kiacutech thước cửa sổ

tăng tuyến tiacutenh nhưng sau sự cố

timeout CongWin thay giaacute trị

bằng 1 MSS kiacutech thước cửa sổ

tăng cấp lũy thừa khi đến một ngưỡng

thigrave tăng tuyến tiacutenh

3 ACK trugraveng nhau chỉ ra khả năng truyền của mạng timeout chỉ thị ldquonhiều cảnh baacuteordquo về tigravenh huống tắc nghẽn

Nguyecircn lyacute

Transport Layer 3-95

Tổng kết TCP điều khiển tắc nghẽn

Khi CongWin dưới Threshold becircn gửi đang trong giai đoạn khởi động chậm kiacutech thước cửa sổ tăng nhanh theo cấp lũy thừa

Khi CongWin trecircn Threshold becircn gửi đang trong giai đoạn traacutenh tắc nghẽn kiacutech thước cửa sổ tăng nhanh theo cấp tuyến tiacutenh

Khi coacute 3 ACK trugraveng lặp xảy ra Threshold = CongWin2 vagrave CongWin = Threshold

Khi timeout xảy ra Threshold = CongWin2 vagrave CongWin = 1 MSS

Transport Layer 3-96

TCP điều khiển tắc nghẽn becircn gửi

Trạng thaacutei Sự kiện TCP becircn gửi hagravenh động Diễn giải

Slow Start (SS)-Khởi động chậm

ACK baacuteo nhận cho dữ liệu chưa ACK trước đoacute

CongWin = CongWin + MSS If (CongWin gt Threshold) cagravei đặt trạng thaacutei ldquoTraacutenh tắc nghẽnrdquo

Hậu quả lagravem tăng gấp đocirci CongWin mỗi RTT

CongestionAvoidance (CA) ndashTraacutenh tắc nghẽn

ACK baacuteo nhận cho dữ liệu chưa ACK trước đoacute

CongWin = CongWin+MSS (MSSCongWin)

Additive tăng lecircn lagravem tăng CongWin lecircn 1 MSS mỗi RTT

SS hoặc CA Sự cố mất maacutet xảy ra khi thấy coacute 3 ACK trugraveng lặp

Threshold = CongWin2 CongWin = Thresholdcagravei đặt trạng thaacutei ldquoTraacutenh tắc nghẽnrdquo

Khocirci phục nhanh hiện thực giảm xuống multiplicative CongWin sẽ khocircng giảm xuống dưới 1 MSS

SS hoặc CA Timeout Threshold = CongWin2 CongWin = 1 MSScagravei đặt trạng thaacutei ldquoKhởi động chậmrdquo

Vagraveo chế độ ldquoKhởi động chậmrdquo

SS hoặc CA ACK trugraveng lặp

Đếm ACK tăng lecircn cho đoạn vừa được ACK

CongWin vagrave Threshold khocircng thay đổi

Transport Layer 3-97

TCP throughput

Throughout trung bigravenh của TCP biểu diễn qua kiacutech thước của sổ vagrave RTT Bỏ qua trạng thaacutei ldquoKhởi động chậmrdquo

Cho W lagrave kiacutech thước cửa sổ khi coacute mất maacutet xảy ra

Khi kiacutech thước cửa sổ = W lưu lượng = WRTT

Chỉ ngay sau khi mất maacutet cửa sổ giảm xuống = W2 lưu lượng = W2RTT

throughout trung bigravenh 075 WRTT

Transport Layer 3-98

TCP tương lai

Viacute dụ caacutec đoạn dagravei 1500 byte RTT 100ms lưu lượng 10 Gbps

Kiacutech thước cửa sổ yecircu cầu W = 83333 đoạn trecircn đường truyền

Lưu lượng trong caacutec trường hợp mất maacutet

L = 210-10

Phiecircn bản mới của TCP dagravenh cho nhu cầu tốc độ cao

LRTT

MSS221

Transport Layer 3-99

Mục tiecircu nếu K phiecircn lagravem việc TCP chia sẻ kết nối cổ chai của băng thocircng lagrave R mỗi phiecircn coacute tốc độ trung bigravenh lagrave RK

TCP kết nối 1

router cổ chaikhả năng R

TCP kết nối 2

TCP tiacutenh cocircng bằng

Transport Layer 3-100

Tại sao phải TCP cocircng bằng

2 phiecircn lagravem việc cạnh tranh nhau Additive tăng lưu lượng tăng multiplicative giảm lưu lượng tương xứng

R

R

chia sẻ băng thocircng bằng nhau

Connection 1 throughputConnect

ion 2

th

roughput

traacutenh tắc nghẽn additive tăng lecircnmất maacutet giảm cửa sổ bằng 12

traacutenh tắc nghẽn additive tăng lecircnmất maacutet giảm cửa sổ bằng 12

Transport Layer 3-101

TCP tiacutenh cocircng bằng (tt)

Tiacutenh cocircng bằng amp UDP nhiều ứng dụng

thường khocircng dugraveng TCP khocircng muốn tốc độ bị

điều tiết do điều khiển tắc nghẽn

Thay bằng dugraveng UDP truyền audiovideo với

tốc độ ổn định chịu được mất maacutet

Nghiecircn cứu giao thức thacircn thiện với TCP

Tiacutenh cocircng bằng amp caacutec kết nối TCP song song

khocircng coacute gigrave ngăn cản việc ứng dụng mở caacutec kết nối song song giữa 2 host

Trigravenh duyệt Web lagravem giống như thế

Viacute dụ tốc độ R hỗ trợ 9 kết nối ứng dụng mới yecircu cầu 1

TCP coacute tốc độ R10 ứng dụng mới yecircu cầu 11

TCP coacute tốc độ R2

Transport Layer 3-102

Mocirc higravenh trễ

Hỏi Mất bao lacircu để nhận 1 đối tượng từ Web server sau khi gửi yecircu cầu

Bỏ qua tắc nghẽn trễ bị ảnh hưởng bởi

thiết lập kết nối TCP trễ truyền dữ liệu khởi động chậm

Notation caacutec giả định Giả sử một kết nối giữa

client vagrave server coacute tốc độ R

S MSS (bits) O kiacutech thước đối tượng

(bits) khocircng truyền lại (khocircng

mất maacutet khocircng hỏng)

Kiacutech thước cửa sổ Giả định 1 cửa sổ tắc

nghẽn cố định coacute W đoạn Sau đoacute cửa sổ thay đổi

mocirc higravenh khởi động chậm

Transport Layer 3-103

Cửa sổ tắc nghẽn cố định (1)

Trường hợp đầu tiecircnWSR gt RTT + SR cho

đoạn đầu tiecircn trong cửa sổ trả về trước khi cửa sổ dữ liệu gửi ACK

trễ = 2RTT + OR

Transport Layer 3-104

Cửa sổ tắc nghẽn cố định (2)

Trường hợp thứ hai WSR lt RTT + SR sent

chờ cho ACK sau khi gửi dữ liệu

trễ = 2RTT + OR+ (K-1)[SR + RTT - WSR]

Transport Layer 3-105

TCP Mocirc higravenh trễ Khởi động chậm (1)

Bacircy giờ giả sử kiacutech thước cửa sổ tăng lecircn tugravey theo quaacute trigravenh khởi động chậm

Độ trễ của một đối tượng sẽ lagrave

R

S

R

SRTTP

R

ORTTLatency P )12(2

trong đoacute P lagrave số lần TCP rảnh ở tại server

1min KQP

- trong đoacute Q lagrave số lần server rảnh nếu đối tượng đatilde khởi tạo kiacutech thước

- vagrave K lagrave số lượng cửa sổ bao trugravem đối tượng

Transport Layer 3-106

TCP Mocirc higravenh trễ Khởi động chậm (2)

RTT

initia te TCPconnection

requestobject

first w indow= S R

second w indow= 2S R

third w indow= 4S R

fourth w indow= 8S R

com pletetransm issionobject

delivered

tim e atc lient

tim e atserver

Viacute dụbull OS = 15 đoạnbull K = 4 cửa sổbull Q = 2bull P = minK-1Q = 2

Server rảnh P=2 lần

Caacutec thagravenh phần trễbull 2 RTT dagravenh cho thiết lập kết nối vagrave yecircu cầubull OR để truyền đối tượngbullthời gian server rảnh bởi vigrave khởi động chậm

Server rảnh P = minK-1Q lần

Transport Layer 3-107

TCP Mocirc higravenh trễ(3)

R

S

R

SRTTPRTT

R

O

R

SRTT

R

SRTT

R

O

idleTimeRTTR

O

P

kP

k

P

pp

)12(][2

]2[2

2delay

1

1

1

th window after the timeidle 2 1 kR

SRTT

R

S k

ementacknowledg receivesserver until

segment send tostartsserver when from time RTTR

S

window kth the transmit totime2 1

R

Sk

RTT

initia te TCPconnection

requestobject

first w indow= S R

second w indow= 2S R

third w indow= 4S R

fourth w indow= 8S R

com pletetransm issionobject

delivered

tim e atc lient

tim e atserver

Transport Layer 3-108

TCP Mocirc higravenh trễ (4)

)1(log

)1(logmin

12min

222min

222min

2

2

110

110

S

OS

Okk

S

Ok

SOk

OSSSkK

k

k

k

caacutech tiacutenh toaacuten Q tương tự (xem HW)

K = số lượng cửa sổ bao trugravem đối tượngLagravem thế nagraveo tiacutenh được K

Transport Layer 3-109

HTTP Mocirc higravenh Giả sử trang Web chứa

1 trang HTML (kiacutech thước O bits) M higravenh ảnh (mỗi caacutei kiacutech thướcO bits)

HTTP khocircng bền vững M+1 TCP kết nối Thời gian đaacutep ứng = (M+1)OR + (M+1)2RTT + tổng số thời

gian rảnh HTTP bền vững

2 RTT để yecircu cầu vagrave nhận file HTML 1 RTT để yecircu cầu vagrave nhận M higravenh ảnh Thời gian đaacutep ứng = (M+1)OR + 3RTT + tổng số thời gian

rảnh HTTP khocircng bền vững với X kết nối song song

Giả sử MX lagrave số nguyecircn 1 TCP kết nối cho file MX thiết lập caacutec kết nối song song cho caacutec higravenh ảnh Thời gian đaacutep ứng = (M+1)OR + (MX + 1)2RTT + tổng số

thời gian rảnh

Transport Layer 3-110

02468

101214161820

28Kbps

100Kbps

1Mbps

10Mbps

non-persistent

persistent

parallel non-persistent

HTTP thời gian đaacutep ứng (giacircy)RTT = 100 msec O = 5 Kbytes M=10 vagrave X=5

Với băng thocircng thấp thời gian kết nối amp đaacutep ứng trội hơn thời gian truyền

Caacutec kết nối bền vững chỉ cho sự cải thiện khocircng đaacuteng kể trecircn caacutec kết nối song song

Transport Layer 3-111

0

10

20

30

40

50

60

70

28Kbps

100Kbps

1Mbps

10Mbps

non-persistent

persistent

parallel non-persistent

HTTP thời gian đaacutep ứng (giacircy)

RTT =1 sec O = 5 Kbytes M=10 and X=5

Với RTT lớn hơn thời gian đaacutep ứng trội hơn thời gian trễ chờ thiết lập kết nốiTCP amp khởi động chậm Caacutec kết nối bền vững bacircy giờ cho thấy cải thiện rotilde rệt đặc biệtvới caacutec mạng băng thocircng cao

Transport Layer 3-112

Chương 3 Tổng kết caacutec nguyecircn lyacute của caacutec

dịch vụ lớp transport multiplexing

demultiplexing truyền dữ liệu tin cậy điều khiển luồng điều khiển tắc nghẽn

khởi tạo vagrave hiện thực trong Internet UDP TCP

Tiếp theo nghiecircn cứu xong

caacutec vấn đề ldquongoagravei biecircnrdquo (caacutec lớp application transport)

chuẩn bị vagraveo phần ldquolotildeirdquo của mạng

  • Slide 1
  • Chương 3 Lớp Transport
  • Chương 3 Nội dung trigravenh bagravey
  • Caacutec dịch vụ vagrave giao thức Transport
  • Lớp Transport với lớp network
  • Caacutec giao thức lớp transport trecircn Internet
  • Slide 7
  • Multiplexingdemultiplexing
  • Demultiplexing lagravem việc như thế nagraveo
  • Demultiplexing khocircng kết nối
  • Demultiplexing khocircng kết nối (tiếp)
  • Demultiplexing hướng kết nối
  • Demultiplexing hướng kết nối (tiếp)
  • Demultiplexing hướng kết nối Threaded Web Server
  • Slide 15
  • UDP User Datagram Protocol [RFC 768]
  • UDP (tt)
  • UDP checksum
  • Viacute dụ Checksum
  • Slide 20
  • Caacutec nguyecircn lyacute truyền dữ liệu tin cậy
  • Slide 22
  • Slide 23
  • Truyền dữ liệu tin cậy
  • Slide 25
  • Rdt10 truyền dữ liệu tin cậy trecircn 1 kecircnh truyền tin cậy
  • Rdt20 kecircnh với caacutec lỗi
  • rdt20 đặc tả FSM
  • rdt20 hoạt động khi khocircng lỗi
  • rdt20 hoạt động khi coacute lỗi
  • rdt20 coacute lỗ hổng nghiecircm trọng
  • rdt21 người gửi quản lyacute caacutec ACKNAK bị hỏng
  • Slide 33
  • rdt21 thảo luận
  • rdt22 một giao thức khocircng cần NAK
  • rdt22 gửi nhận caacutec mảnh
  • rdt30 caacutec kecircnh với lỗi vagrave mất maacutet
  • rdt30 gửi
  • hagravenh động của rdt30
  • Slide 40
  • Hiệu suất của rdt30
  • rdt30 hoạt động dừng-vagrave-chờ
  • Caacutec giao thức Pipelined
  • Pipelining độ khả dụng tăng
  • Go-Back-N
  • GBN becircn gửi mở rộng FSM
  • GBN becircn nhận mở rộng FSM
  • GBN hoạt động
  • Lặp coacute lựa chọn
  • Lặp coacute lựa chọn caacutec cửa sổ gửi nhận
  • Slide 51
  • Hoạt động của lặp coacute lựa chọn
  • Lặp coacute lựa chọn tigravenh trạng khoacute giải quyết
  • Slide 54
  • TCP Tổng quan RFCs 793 1122 1323 2018 2581
  • TCP cấu truacutec đoạn
  • Caacutec số thứ tự TCP vagrave ACK
  • TCP Round Trip Time vagraveTimeout
  • TCP Round Trip Time vagrave Timeout
  • Viacute dụ đaacutenh giaacute RTT
  • Slide 61
  • TCP truyền dữ liệu tin cậy
  • TCP caacutec sự kiện
  • TCP becircn gửi (đơn giản)
  • TCP caacutec tigravenh huống truyền lại
  • TCP caacutec tigravenh huống truyền lại (tt)
  • TCP sinh ra ACK [RFC 1122 RFC 2581]
  • Truyền lại nhanh
  • Giải thuật truyền lại nhanh
  • Slide 70
  • TCP điều khiển luồng
  • TCP điều khiển luồng caacutech lagravem
  • Slide 73
  • TCP quản lyacute kết nối
  • TCP quản lyacute kết nối (tt)
  • Slide 76
  • Slide 77
  • Slide 78
  • Caacutec nguyecircn lyacute điều khiển tắc nghẽn
  • Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 1
  • Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 2
  • Slide 82
  • Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 3
  • Slide 84
  • Caacutec caacutech tiếp cận đối với điều khiển tắc nghẽn
  • Viacute dụ điều khiển tắc nghẽn ATM ABR
  • Slide 87
  • Slide 88
  • TCP điều khiển tắc nghẽn additive tăng lecircn multiplicative giảm xuống
  • TCP điều khiển tắc nghẽn chi tiết
  • TCP khởi động chậm
  • TCP khởi động chậm (tt)
  • Tinh chế
  • Tinh chế nhận biết mất maacutet
  • Tổng kết TCP điều khiển tắc nghẽn
  • TCP điều khiển tắc nghẽn becircn gửi
  • TCP throughput
  • TCP tương lai
  • TCP tiacutenh cocircng bằng
  • Tại sao phải TCP cocircng bằng
  • TCP tiacutenh cocircng bằng (tt)
  • Mocirc higravenh trễ
  • Cửa sổ tắc nghẽn cố định (1)
  • Cửa sổ tắc nghẽn cố định (2)
  • TCP Mocirc higravenh trễ Khởi động chậm (1)
  • TCP Mocirc higravenh trễ Khởi động chậm (2)
  • TCP Mocirc higravenh trễ(3)
  • TCP Mocirc higravenh trễ (4)
  • HTTP Mocirc higravenh
  • Slide 110
  • Slide 111
  • Chương 3 Tổng kết

Transport Layer 3-64

TCP becircn gửi(đơn giản)

NextSeqNum = InitialSeqNum SendBase = InitialSeqNum

loop (forever) switch(event)

event data received from application above create TCP segment with sequence number NextSeqNum if (timer currently not running) start timer pass segment to IP NextSeqNum = NextSeqNum + length(data)

event timer timeout retransmit not-yet-acknowledged segment with smallest sequence number start timer

event ACK received with ACK field value of y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer

end of loop forever

Chuacute thiacutechbull SendBase-1 byte vừa được ACK tiacutech lũy Viacute dụbull SendBase-1 = 71y= 73 vigrave thế becircn nhận muốn 73+ y gt SendBase vigrave thế dữ liệu mới được chấp nhận

Transport Layer 3-65

TCP caacutec tigravenh huống truyền lại

Host A

Seq=100 20 bytes data

ACK=100

timetimeout sớm

Host B

Seq=92 8 bytes data

ACK=120

Seq=92 8 bytes data

Seq=

92

tim

eout

ACK=120

Host A

Seq=92 8 bytes data

ACK=100

loss

tim

eout

tigravenh huống mất ACK

Host B

X

Seq=92 8 bytes data

ACK=100

time

Seq=

92

tim

eout

SendBase= 100

SendBase= 120

SendBase= 120

Sendbase= 100

Transport Layer 3-66

TCP caacutec tigravenh huống truyền lại (tt)Host A

Seq=92 8 bytes data

ACK=100

loss

tim

eout

Cumulative ACK scenario

Host B

X

Seq=100 20 bytes data

ACK=120

time

SendBase= 120

Transport Layer 3-67

TCP sinh ra ACK [RFC 1122 RFC 2581]

Sự kiện tại becircn nhận

Đoạn đến với đuacuteng số thứ tự mong muốn Tất cả dữ liệu đếnđatilde được ACK

Đoạn đến với đuacuteng số thứ tự mong muốn Một đoạn khaacutec đangchờ ACK

Caacutec đoạn đến khocircng thứ tựlớn hơn số thứ tự đoạn mong muốnCoacute khoảng trống

Đoạn đếnlấp đầy từng phần hoặc toagraven bộkhoảng trống

TCP becircn nhận hagravenh động

ACK trễ Chờ đến 500mscho đoạn kế tiếp Nếu khocircng coacute đoạnkế tiếp gửi ACK

Gửi ngay một ACK tiacutech lũy chấp nhậncho cả caacutec đoạn theo thứ tự

Gửi ngay ACK trugraveng lặp chỉ thị số thứ tựđoạn của byte kế tiếp đang mong chờ

Gửi ngay ACK với điều kiện lagrave đoạnbắt đầu ngay điểm coacute khoảng trống

Transport Layer 3-68

Truyền lại nhanh

Chu kỳ Time-out thường tương đối dagravei độ trễ dagravei trước khi gửi

lại goacutei đatilde mất

Xaacutec nhận caacutec đoạn đatilde mất bằng caacutec ACK trugraveng lặp becircn gửi thường gửi

nhiều đoạn song song Nếu đoạn bị mất sẽ

xảy ra tigravenh trạng giống như nhiều ACK trugraveng nhau

Nếu becircn gửi nhận 3 ACK của cugraveng một dữ liệu noacute cho lagrave đoạn sau dữ liệu đatilde ACK bị mất Truyền lại nhanh gửi

lại đoạn trước khi bộ định thigrave hết hạn

Transport Layer 3-69

sự kiện ACK đatilde nhận với trường lagrave y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer else increment count of dup ACKs received for y if (count of dup ACKs received for y = 3) resend segment with sequence number y

Giải thuật truyền lại nhanh

một ACK trugraveng lặp cho đoạn đatilde được ACK

Truyền lại nhanh

Transport Layer 3-70

Chương 3 Nội dung trigravenh bagravey

31 Caacutec dịch vụ lớp Transport

32 Multiplexing vagrave demultiplexing

33 Vận chuyển khocircng kết nối UDP

34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy

35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối

36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn

37 Điều khiển tắc nghẽn TCP

Transport Layer 3-71

TCP điều khiển luồng

becircn nhận của kết nối TCP coacute một bộ đệm nhận

dịch vụ so trugraveng tốc độ so trugraveng tốc độ gửi với tốc độ nhận của ứng dụng

tiến trigravenh ứng dụng coacute thể chậm tại luacutec đọc bộ đệm

becircn gửi sẽ khocircng lagravem tragraven bộ đệm vigrave truyền quaacute nhiều vagrave

quaacute nhanh

điều khiển luồng

Transport Layer 3-72

TCP điều khiển luồng caacutech lagravem

(Giả sử becircn nhận TCP loại bỏ caacutec đoạn khocircng coacute thứ tự)

dự phograveng trong bộ đệm= RcvWindow

= RcvBuffer-[LastByteRcvd - LastByteRead]

Becircn nhận thocircng baacuteo khoảng dự trữ nhờ giaacute trị RcvWindow trong caacutec đoạn

Becircn gửi hạn chế dữ liệu khocircng được ACK vagraveo RcvWindow bảo đảm bộ đệm nhận

khocircng tragraven

Transport Layer 3-73

Chương 3 Nội dung trigravenh bagravey

31 Caacutec dịch vụ lớp Transport

32 Multiplexing vagrave demultiplexing

33 Vận chuyển khocircng kết nối UDP

34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy

35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối

36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn

37 Điều khiển tắc nghẽn TCP

Transport Layer 3-74

TCP quản lyacute kết nối

Chuacute yacute Becircn gửi vagrave becircn nhận TCP thiết lập ldquokết nốirdquo trước khi trao đổi dữ liệu

khởi tạo caacutec biến TCP caacutec số thứ tự đoạn thocircng tin caacutec bộ đệm điều

khiển luồng (như RcvWindow)

client người khởi xướng kết nối

Socket clientSocket = new Socket(hostnameport

number) server được tiếp xuacutec bởi

client Socket connectionSocket =

welcomeSocketaccept()

3 phương phaacutep bắt tay

Bước 1 client host gửi đoạnTCP SYN đến server xaacutec định số thứ tự khởi đầu khocircng phải dữ liệu

Bước 2 server host nhận SYN trả lời với đoạn SYNACK

server cấp phaacutet caacutec bộ đệm

xaacutec định số thứ tự khởi đầuBước 3 client nhận SYNACK trả

lời với đoạn ACK (coacute thể chứa dữ liệu)

Transport Layer 3-75

TCP quản lyacute kết nối (tt)

Đoacuteng một kết nối

client đoacuteng socket clientSocketclose()

Bước 1 client gửi đoạn điều khiển TCP FIN đến server

Bước 2 server nhận FIN trả lời với ACK Đoacuteng kết nối gửi FIN

client

FIN

server

ACK

ACK

FIN

đoacuteng

đoacuteng

đatilde đoacutengthời g

ian c

hờ

Transport Layer 3-76

TCP quản lyacute kết nối (tt)

Bước 3 client nhận FIN trả lời với ACK

Trong khoảng ldquothời gian chờrdquo ndash sẽ phản hồi với ACK để nhận caacutec FIN

Bước 4 server nhận ACK Kết nối đatilde đoacuteng

Chuacute yacute với một sửa đổi nhỏ coacute thể quản lyacute nhiều FIN đồng thời

client

FIN

server

ACK

ACK

FIN

đang đoacuteng

đang đoacuteng

đatilde đoacuteng

thời g

ian c

hờ

đatilde đoacuteng

Transport Layer 3-77

TCP quản lyacute kết nối (tt)

chu kỳ sống củaTCP client

chu kỳ sống củaTCP server

Transport Layer 3-78

Chương 3 Nội dung trigravenh bagravey

31 Caacutec dịch vụ lớp Transport

32 Multiplexing vagrave demultiplexing

33 Vận chuyển khocircng kết nối UDP

34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy

35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối

36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn

37 Điều khiển tắc nghẽn TCP

Transport Layer 3-79

Caacutec nguyecircn lyacute điều khiển tắc nghẽn

Tắc nghẽn ldquoquaacute nhiều nguồn gửi quaacute nhanh vagrave quaacute nhiều

dữ liệu đến mạngrdquo khaacutec với điều khiển luồng caacutec biểu hiện

caacutec goacutei bị mất (tragraven bộ đệm tại caacutec router) caacutec độ trễ quaacute dagravei (xếp hagraveng trong bộ đệm

của router) lagrave 1 trong 10 vấn đề nan giải nhất

Transport Layer 3-80

Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 1

2 gửi 2 nhận 1 router caacutec bộ

đệm khocircng giới hạn

khocircng coacute truyền lại

caacutec độ trễ lớn hơn khi tắc nghẽn

năng suất coacute thể đạt tối đa

unlimited shared output link buffers

Host Ain original data

Host B

out

Transport Layer 3-81

Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 2

1 router caacutec bộ đệm coacute giới hạn becircn gửi truyền lại caacutec goacutei đatilde mất

chia sẻ vocirc hạncaacutec bộ đệm ouput

Host A in dữ liệu gốc

Host B

out

in dữ liệu gốc cugraveng với dữ liệu truyền lại

Transport Layer 3-82

Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 2 luocircn luocircn

truyền lại ldquohoagraven toagravenrdquo chỉ khi mất maacutet

truyền lại vigrave trễ (khocircng mất) lagravem cho lớn hơn với cugraveng

in

out

=

in

out

gt

in

out

ldquocaacutec chi phiacuterdquo của tắc nghẽn nhiều việc (truyền lại) caacutec truyền lại khocircng cần thiết liecircn kết nhiều bản sao của

goacutei

R2

R2in

ou

t

b

R2

R2in

ou

t

a

R2

R2in

ou

t

c

R4

R3

Transport Layer 3-83

Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 3 4 người gửi caacutec đường qua nhiều hop timeouttruyền lại

in

Hỏi điều gigrave xảy ra nếu vagrave tăng lecircn

in

chia sẻ vocirc hạncaacutec bộ đệm ouput

Host Ain dữ liệu gốc

Host B

out

in dữ liệu gốc cugraveng với dữ liệu truyền lại

Transport Layer 3-84

Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 3

ldquochi phiacuterdquo khaacutec của tắc nghẽn khi caacutec goacutei bị bỏ bất kỳ ldquokhả năng truyền

upstream dugraveng cho goacutei đoacute sẽ bị latildeng phiacuterdquo

Host A

Host B

o

u

t

Transport Layer 3-85

Caacutec caacutech tiếp cận đối với điều khiển tắc nghẽn

điều khiển tắc nghẽn end-end

khocircng coacute phản hồi rotilde ragraveng từ mạng

tắc nghẽn được suy ra từ việc quan saacutet caacutec hệ thống đầu cuối coacute mất maacutet trễ

tiếp cận được quản lyacute bởi TCP

điều khiển tắc nghẽn coacute sự hỗ trợ của mạng

caacutec router cung cấp phản hồi về caacutec hệ thống đầu cuối 1 bit duy nhất chỉ thị

tắc nghẽn (SNA DECbit TCPIP ECN ATM)

tốc độ sẽ gửi được xaacutec định rotilde ragraveng

2 caacutech

Transport Layer 3-86

Viacute dụ điều khiển tắc nghẽn ATM ABR

ABR tốc độ bit sẵn sagraveng

ldquodịch vụ mềm dẻordquo nếu đường gửi ldquochưa

hếtrdquo becircn gửi sẽ dugraveng

băng thocircng sẵn sagraveng nếu đường gửi tắc

nghẽn becircn gửi điều tiết với

tốc độ tối thiểu

RM (resource management)

gửi bởi becircn gửi rải raacutec với caacutec ocirc dữ liệu

caacutec bit trong ocirc thiết lập bởi caacutec switch bit NI khocircng tăng tốc độ

(tắc nghẽn nhẹ) bit CI tắc nghẽn rotilde rệt

Caacutec ocirc RM được trả về becircn gửi từ becircn nhận với nguyecircn vẹn caacutec bit

Transport Layer 3-87

Viacute dụ điều khiển tắc nghẽn ATM ABR

trường 2-byte ER trong ocirc RM switch đatilde tắc nghẽn coacute thể coacute giaacute trị ER thấp hơn trong ocirc tốc độ gửi do đoacute coacute thể được hỗ trợ tối đa trecircn đường

EFCI bit trong caacutec ocirc dữ liệu được cagravei giaacute trị 1 trong switch đatilde tắc nghẽn nếu ocirc dữ liệu đứng trước ocirc RM coacute cagravei EFCI becircn gửi sẽ cagravei

bit CI trong ocirc RM trả về

Transport Layer 3-88

Chương 3 Nội dung trigravenh bagravey

31 Caacutec dịch vụ lớp Transport

32 Multiplexing vagrave demultiplexing

33 Vận chuyển khocircng kết nối UDP

34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy

35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối

36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn

37 Điều khiển tắc nghẽn TCP

Transport Layer 3-89

TCP điều khiển tắc nghẽn additive tăng lecircn multiplicative giảm xuống

8 Kbytes

16 Kbytes

24 Kbytes

time

congestionwindow

Caacutech tiếp cận tăng tốc độ truyền (kiacutech thước cửa sổ) tigravem khả năng băng thocircng coacute thể cho đến khi coacute mất maacutet xảy ra additive tăng lecircn tăng CongWin bởi 1 MSS

mỗi RTT cho đến khi coacute mất maacutet xảy ra multiplicative giảm xuống bỏ CongWin trong

nửa giai đoạn sau khi mất maacutet

timekiacutech

thư

ớc

cửa

sổ

tắc

nghẽ

n

Tigravem kiếm băng thocircng

Transport Layer 3-90

TCP điều khiển tắc nghẽn chi tiết

becircn gửi hạn chế việc truyền LastByteSent-LastByteAcked

CongWin Cocircng thức

CongWin thay đổi chức năng lagrave nhận biết tắc nghẽn trecircn mạng

Lagravem thế nagraveo becircn gửi nhận biết tắc nghẽn

mất maacutet xảy ra = timeout hoặc 3 ack trugraveng lặp

becircn gửi giảm tốc độ (CongWin) sau khi mất maacutet xảy ra

3 cơ chế AIMD khởi động chậm thận trọng sau khi coacute

caacutec sự kiện timeout

tốc độ = CongWin

RTT Bytess

Transport Layer 3-91

TCP khởi động chậm

Khi kết nối bắt đầu CongWin = 1 MSS Viacute dụ MSS = 500 bytes

amp RTT = 200 ms tốc độ khởi tạo = 20

kbps

băng thocircng sẵn sagraveng coacute thể gtgt MSSRTT mong muốn nhanh

choacuteng tăng tốc lecircn tốc độ coacute thể đaacutep ứng

Khi kết nối bắt đầu tăng tốc lecircn rất nhanh cho đến khi sự cố mất maacutet xảy ra đầu tiecircn

Transport Layer 3-92

TCP khởi động chậm (tt)

Khi kết nối bắt đầu tăng tốc lecircn rất nhanh cho đến khi sự cố mất maacutet xảy ra đầu tiecircn nhacircn đocirci CongWin mỗi

RTT hoagraven thagravenh nhờ tăng CongWin ứng với mỗi ACK đatilde nhận

Tổng kết tốc độ khởi đầu lagrave chậm nhưng sau đoacute tăng tốc rất nhanh

Host A

1 đoạn

RTT

Host B

thời gian

2 đoạn

4 đoạn

Transport Layer 3-93

Tinh chếHỏi Khi nagraveo việc tăng

tốc trở thagravenh tuyến tiacutenh

Trả lời Khi CongWin đạt đến 12 giaacute trị của noacute trước khi timeout

Hiện thực Ngưỡng thay đổi Tại thời điểm coacute sự cố

mất maacutet ngưỡng được cagravei giaacute trị bằng frac12 của CongWin ngay trước đoacute

Transport Layer 3-94

Tinh chế nhận biết mất maacutet

Sau 3 ACK trugraveng lặp CongWin sẽ giảm 12 kiacutech thước cửa sổ

tăng tuyến tiacutenh nhưng sau sự cố

timeout CongWin thay giaacute trị

bằng 1 MSS kiacutech thước cửa sổ

tăng cấp lũy thừa khi đến một ngưỡng

thigrave tăng tuyến tiacutenh

3 ACK trugraveng nhau chỉ ra khả năng truyền của mạng timeout chỉ thị ldquonhiều cảnh baacuteordquo về tigravenh huống tắc nghẽn

Nguyecircn lyacute

Transport Layer 3-95

Tổng kết TCP điều khiển tắc nghẽn

Khi CongWin dưới Threshold becircn gửi đang trong giai đoạn khởi động chậm kiacutech thước cửa sổ tăng nhanh theo cấp lũy thừa

Khi CongWin trecircn Threshold becircn gửi đang trong giai đoạn traacutenh tắc nghẽn kiacutech thước cửa sổ tăng nhanh theo cấp tuyến tiacutenh

Khi coacute 3 ACK trugraveng lặp xảy ra Threshold = CongWin2 vagrave CongWin = Threshold

Khi timeout xảy ra Threshold = CongWin2 vagrave CongWin = 1 MSS

Transport Layer 3-96

TCP điều khiển tắc nghẽn becircn gửi

Trạng thaacutei Sự kiện TCP becircn gửi hagravenh động Diễn giải

Slow Start (SS)-Khởi động chậm

ACK baacuteo nhận cho dữ liệu chưa ACK trước đoacute

CongWin = CongWin + MSS If (CongWin gt Threshold) cagravei đặt trạng thaacutei ldquoTraacutenh tắc nghẽnrdquo

Hậu quả lagravem tăng gấp đocirci CongWin mỗi RTT

CongestionAvoidance (CA) ndashTraacutenh tắc nghẽn

ACK baacuteo nhận cho dữ liệu chưa ACK trước đoacute

CongWin = CongWin+MSS (MSSCongWin)

Additive tăng lecircn lagravem tăng CongWin lecircn 1 MSS mỗi RTT

SS hoặc CA Sự cố mất maacutet xảy ra khi thấy coacute 3 ACK trugraveng lặp

Threshold = CongWin2 CongWin = Thresholdcagravei đặt trạng thaacutei ldquoTraacutenh tắc nghẽnrdquo

Khocirci phục nhanh hiện thực giảm xuống multiplicative CongWin sẽ khocircng giảm xuống dưới 1 MSS

SS hoặc CA Timeout Threshold = CongWin2 CongWin = 1 MSScagravei đặt trạng thaacutei ldquoKhởi động chậmrdquo

Vagraveo chế độ ldquoKhởi động chậmrdquo

SS hoặc CA ACK trugraveng lặp

Đếm ACK tăng lecircn cho đoạn vừa được ACK

CongWin vagrave Threshold khocircng thay đổi

Transport Layer 3-97

TCP throughput

Throughout trung bigravenh của TCP biểu diễn qua kiacutech thước của sổ vagrave RTT Bỏ qua trạng thaacutei ldquoKhởi động chậmrdquo

Cho W lagrave kiacutech thước cửa sổ khi coacute mất maacutet xảy ra

Khi kiacutech thước cửa sổ = W lưu lượng = WRTT

Chỉ ngay sau khi mất maacutet cửa sổ giảm xuống = W2 lưu lượng = W2RTT

throughout trung bigravenh 075 WRTT

Transport Layer 3-98

TCP tương lai

Viacute dụ caacutec đoạn dagravei 1500 byte RTT 100ms lưu lượng 10 Gbps

Kiacutech thước cửa sổ yecircu cầu W = 83333 đoạn trecircn đường truyền

Lưu lượng trong caacutec trường hợp mất maacutet

L = 210-10

Phiecircn bản mới của TCP dagravenh cho nhu cầu tốc độ cao

LRTT

MSS221

Transport Layer 3-99

Mục tiecircu nếu K phiecircn lagravem việc TCP chia sẻ kết nối cổ chai của băng thocircng lagrave R mỗi phiecircn coacute tốc độ trung bigravenh lagrave RK

TCP kết nối 1

router cổ chaikhả năng R

TCP kết nối 2

TCP tiacutenh cocircng bằng

Transport Layer 3-100

Tại sao phải TCP cocircng bằng

2 phiecircn lagravem việc cạnh tranh nhau Additive tăng lưu lượng tăng multiplicative giảm lưu lượng tương xứng

R

R

chia sẻ băng thocircng bằng nhau

Connection 1 throughputConnect

ion 2

th

roughput

traacutenh tắc nghẽn additive tăng lecircnmất maacutet giảm cửa sổ bằng 12

traacutenh tắc nghẽn additive tăng lecircnmất maacutet giảm cửa sổ bằng 12

Transport Layer 3-101

TCP tiacutenh cocircng bằng (tt)

Tiacutenh cocircng bằng amp UDP nhiều ứng dụng

thường khocircng dugraveng TCP khocircng muốn tốc độ bị

điều tiết do điều khiển tắc nghẽn

Thay bằng dugraveng UDP truyền audiovideo với

tốc độ ổn định chịu được mất maacutet

Nghiecircn cứu giao thức thacircn thiện với TCP

Tiacutenh cocircng bằng amp caacutec kết nối TCP song song

khocircng coacute gigrave ngăn cản việc ứng dụng mở caacutec kết nối song song giữa 2 host

Trigravenh duyệt Web lagravem giống như thế

Viacute dụ tốc độ R hỗ trợ 9 kết nối ứng dụng mới yecircu cầu 1

TCP coacute tốc độ R10 ứng dụng mới yecircu cầu 11

TCP coacute tốc độ R2

Transport Layer 3-102

Mocirc higravenh trễ

Hỏi Mất bao lacircu để nhận 1 đối tượng từ Web server sau khi gửi yecircu cầu

Bỏ qua tắc nghẽn trễ bị ảnh hưởng bởi

thiết lập kết nối TCP trễ truyền dữ liệu khởi động chậm

Notation caacutec giả định Giả sử một kết nối giữa

client vagrave server coacute tốc độ R

S MSS (bits) O kiacutech thước đối tượng

(bits) khocircng truyền lại (khocircng

mất maacutet khocircng hỏng)

Kiacutech thước cửa sổ Giả định 1 cửa sổ tắc

nghẽn cố định coacute W đoạn Sau đoacute cửa sổ thay đổi

mocirc higravenh khởi động chậm

Transport Layer 3-103

Cửa sổ tắc nghẽn cố định (1)

Trường hợp đầu tiecircnWSR gt RTT + SR cho

đoạn đầu tiecircn trong cửa sổ trả về trước khi cửa sổ dữ liệu gửi ACK

trễ = 2RTT + OR

Transport Layer 3-104

Cửa sổ tắc nghẽn cố định (2)

Trường hợp thứ hai WSR lt RTT + SR sent

chờ cho ACK sau khi gửi dữ liệu

trễ = 2RTT + OR+ (K-1)[SR + RTT - WSR]

Transport Layer 3-105

TCP Mocirc higravenh trễ Khởi động chậm (1)

Bacircy giờ giả sử kiacutech thước cửa sổ tăng lecircn tugravey theo quaacute trigravenh khởi động chậm

Độ trễ của một đối tượng sẽ lagrave

R

S

R

SRTTP

R

ORTTLatency P )12(2

trong đoacute P lagrave số lần TCP rảnh ở tại server

1min KQP

- trong đoacute Q lagrave số lần server rảnh nếu đối tượng đatilde khởi tạo kiacutech thước

- vagrave K lagrave số lượng cửa sổ bao trugravem đối tượng

Transport Layer 3-106

TCP Mocirc higravenh trễ Khởi động chậm (2)

RTT

initia te TCPconnection

requestobject

first w indow= S R

second w indow= 2S R

third w indow= 4S R

fourth w indow= 8S R

com pletetransm issionobject

delivered

tim e atc lient

tim e atserver

Viacute dụbull OS = 15 đoạnbull K = 4 cửa sổbull Q = 2bull P = minK-1Q = 2

Server rảnh P=2 lần

Caacutec thagravenh phần trễbull 2 RTT dagravenh cho thiết lập kết nối vagrave yecircu cầubull OR để truyền đối tượngbullthời gian server rảnh bởi vigrave khởi động chậm

Server rảnh P = minK-1Q lần

Transport Layer 3-107

TCP Mocirc higravenh trễ(3)

R

S

R

SRTTPRTT

R

O

R

SRTT

R

SRTT

R

O

idleTimeRTTR

O

P

kP

k

P

pp

)12(][2

]2[2

2delay

1

1

1

th window after the timeidle 2 1 kR

SRTT

R

S k

ementacknowledg receivesserver until

segment send tostartsserver when from time RTTR

S

window kth the transmit totime2 1

R

Sk

RTT

initia te TCPconnection

requestobject

first w indow= S R

second w indow= 2S R

third w indow= 4S R

fourth w indow= 8S R

com pletetransm issionobject

delivered

tim e atc lient

tim e atserver

Transport Layer 3-108

TCP Mocirc higravenh trễ (4)

)1(log

)1(logmin

12min

222min

222min

2

2

110

110

S

OS

Okk

S

Ok

SOk

OSSSkK

k

k

k

caacutech tiacutenh toaacuten Q tương tự (xem HW)

K = số lượng cửa sổ bao trugravem đối tượngLagravem thế nagraveo tiacutenh được K

Transport Layer 3-109

HTTP Mocirc higravenh Giả sử trang Web chứa

1 trang HTML (kiacutech thước O bits) M higravenh ảnh (mỗi caacutei kiacutech thướcO bits)

HTTP khocircng bền vững M+1 TCP kết nối Thời gian đaacutep ứng = (M+1)OR + (M+1)2RTT + tổng số thời

gian rảnh HTTP bền vững

2 RTT để yecircu cầu vagrave nhận file HTML 1 RTT để yecircu cầu vagrave nhận M higravenh ảnh Thời gian đaacutep ứng = (M+1)OR + 3RTT + tổng số thời gian

rảnh HTTP khocircng bền vững với X kết nối song song

Giả sử MX lagrave số nguyecircn 1 TCP kết nối cho file MX thiết lập caacutec kết nối song song cho caacutec higravenh ảnh Thời gian đaacutep ứng = (M+1)OR + (MX + 1)2RTT + tổng số

thời gian rảnh

Transport Layer 3-110

02468

101214161820

28Kbps

100Kbps

1Mbps

10Mbps

non-persistent

persistent

parallel non-persistent

HTTP thời gian đaacutep ứng (giacircy)RTT = 100 msec O = 5 Kbytes M=10 vagrave X=5

Với băng thocircng thấp thời gian kết nối amp đaacutep ứng trội hơn thời gian truyền

Caacutec kết nối bền vững chỉ cho sự cải thiện khocircng đaacuteng kể trecircn caacutec kết nối song song

Transport Layer 3-111

0

10

20

30

40

50

60

70

28Kbps

100Kbps

1Mbps

10Mbps

non-persistent

persistent

parallel non-persistent

HTTP thời gian đaacutep ứng (giacircy)

RTT =1 sec O = 5 Kbytes M=10 and X=5

Với RTT lớn hơn thời gian đaacutep ứng trội hơn thời gian trễ chờ thiết lập kết nốiTCP amp khởi động chậm Caacutec kết nối bền vững bacircy giờ cho thấy cải thiện rotilde rệt đặc biệtvới caacutec mạng băng thocircng cao

Transport Layer 3-112

Chương 3 Tổng kết caacutec nguyecircn lyacute của caacutec

dịch vụ lớp transport multiplexing

demultiplexing truyền dữ liệu tin cậy điều khiển luồng điều khiển tắc nghẽn

khởi tạo vagrave hiện thực trong Internet UDP TCP

Tiếp theo nghiecircn cứu xong

caacutec vấn đề ldquongoagravei biecircnrdquo (caacutec lớp application transport)

chuẩn bị vagraveo phần ldquolotildeirdquo của mạng

  • Slide 1
  • Chương 3 Lớp Transport
  • Chương 3 Nội dung trigravenh bagravey
  • Caacutec dịch vụ vagrave giao thức Transport
  • Lớp Transport với lớp network
  • Caacutec giao thức lớp transport trecircn Internet
  • Slide 7
  • Multiplexingdemultiplexing
  • Demultiplexing lagravem việc như thế nagraveo
  • Demultiplexing khocircng kết nối
  • Demultiplexing khocircng kết nối (tiếp)
  • Demultiplexing hướng kết nối
  • Demultiplexing hướng kết nối (tiếp)
  • Demultiplexing hướng kết nối Threaded Web Server
  • Slide 15
  • UDP User Datagram Protocol [RFC 768]
  • UDP (tt)
  • UDP checksum
  • Viacute dụ Checksum
  • Slide 20
  • Caacutec nguyecircn lyacute truyền dữ liệu tin cậy
  • Slide 22
  • Slide 23
  • Truyền dữ liệu tin cậy
  • Slide 25
  • Rdt10 truyền dữ liệu tin cậy trecircn 1 kecircnh truyền tin cậy
  • Rdt20 kecircnh với caacutec lỗi
  • rdt20 đặc tả FSM
  • rdt20 hoạt động khi khocircng lỗi
  • rdt20 hoạt động khi coacute lỗi
  • rdt20 coacute lỗ hổng nghiecircm trọng
  • rdt21 người gửi quản lyacute caacutec ACKNAK bị hỏng
  • Slide 33
  • rdt21 thảo luận
  • rdt22 một giao thức khocircng cần NAK
  • rdt22 gửi nhận caacutec mảnh
  • rdt30 caacutec kecircnh với lỗi vagrave mất maacutet
  • rdt30 gửi
  • hagravenh động của rdt30
  • Slide 40
  • Hiệu suất của rdt30
  • rdt30 hoạt động dừng-vagrave-chờ
  • Caacutec giao thức Pipelined
  • Pipelining độ khả dụng tăng
  • Go-Back-N
  • GBN becircn gửi mở rộng FSM
  • GBN becircn nhận mở rộng FSM
  • GBN hoạt động
  • Lặp coacute lựa chọn
  • Lặp coacute lựa chọn caacutec cửa sổ gửi nhận
  • Slide 51
  • Hoạt động của lặp coacute lựa chọn
  • Lặp coacute lựa chọn tigravenh trạng khoacute giải quyết
  • Slide 54
  • TCP Tổng quan RFCs 793 1122 1323 2018 2581
  • TCP cấu truacutec đoạn
  • Caacutec số thứ tự TCP vagrave ACK
  • TCP Round Trip Time vagraveTimeout
  • TCP Round Trip Time vagrave Timeout
  • Viacute dụ đaacutenh giaacute RTT
  • Slide 61
  • TCP truyền dữ liệu tin cậy
  • TCP caacutec sự kiện
  • TCP becircn gửi (đơn giản)
  • TCP caacutec tigravenh huống truyền lại
  • TCP caacutec tigravenh huống truyền lại (tt)
  • TCP sinh ra ACK [RFC 1122 RFC 2581]
  • Truyền lại nhanh
  • Giải thuật truyền lại nhanh
  • Slide 70
  • TCP điều khiển luồng
  • TCP điều khiển luồng caacutech lagravem
  • Slide 73
  • TCP quản lyacute kết nối
  • TCP quản lyacute kết nối (tt)
  • Slide 76
  • Slide 77
  • Slide 78
  • Caacutec nguyecircn lyacute điều khiển tắc nghẽn
  • Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 1
  • Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 2
  • Slide 82
  • Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 3
  • Slide 84
  • Caacutec caacutech tiếp cận đối với điều khiển tắc nghẽn
  • Viacute dụ điều khiển tắc nghẽn ATM ABR
  • Slide 87
  • Slide 88
  • TCP điều khiển tắc nghẽn additive tăng lecircn multiplicative giảm xuống
  • TCP điều khiển tắc nghẽn chi tiết
  • TCP khởi động chậm
  • TCP khởi động chậm (tt)
  • Tinh chế
  • Tinh chế nhận biết mất maacutet
  • Tổng kết TCP điều khiển tắc nghẽn
  • TCP điều khiển tắc nghẽn becircn gửi
  • TCP throughput
  • TCP tương lai
  • TCP tiacutenh cocircng bằng
  • Tại sao phải TCP cocircng bằng
  • TCP tiacutenh cocircng bằng (tt)
  • Mocirc higravenh trễ
  • Cửa sổ tắc nghẽn cố định (1)
  • Cửa sổ tắc nghẽn cố định (2)
  • TCP Mocirc higravenh trễ Khởi động chậm (1)
  • TCP Mocirc higravenh trễ Khởi động chậm (2)
  • TCP Mocirc higravenh trễ(3)
  • TCP Mocirc higravenh trễ (4)
  • HTTP Mocirc higravenh
  • Slide 110
  • Slide 111
  • Chương 3 Tổng kết

Transport Layer 3-65

TCP caacutec tigravenh huống truyền lại

Host A

Seq=100 20 bytes data

ACK=100

timetimeout sớm

Host B

Seq=92 8 bytes data

ACK=120

Seq=92 8 bytes data

Seq=

92

tim

eout

ACK=120

Host A

Seq=92 8 bytes data

ACK=100

loss

tim

eout

tigravenh huống mất ACK

Host B

X

Seq=92 8 bytes data

ACK=100

time

Seq=

92

tim

eout

SendBase= 100

SendBase= 120

SendBase= 120

Sendbase= 100

Transport Layer 3-66

TCP caacutec tigravenh huống truyền lại (tt)Host A

Seq=92 8 bytes data

ACK=100

loss

tim

eout

Cumulative ACK scenario

Host B

X

Seq=100 20 bytes data

ACK=120

time

SendBase= 120

Transport Layer 3-67

TCP sinh ra ACK [RFC 1122 RFC 2581]

Sự kiện tại becircn nhận

Đoạn đến với đuacuteng số thứ tự mong muốn Tất cả dữ liệu đếnđatilde được ACK

Đoạn đến với đuacuteng số thứ tự mong muốn Một đoạn khaacutec đangchờ ACK

Caacutec đoạn đến khocircng thứ tựlớn hơn số thứ tự đoạn mong muốnCoacute khoảng trống

Đoạn đếnlấp đầy từng phần hoặc toagraven bộkhoảng trống

TCP becircn nhận hagravenh động

ACK trễ Chờ đến 500mscho đoạn kế tiếp Nếu khocircng coacute đoạnkế tiếp gửi ACK

Gửi ngay một ACK tiacutech lũy chấp nhậncho cả caacutec đoạn theo thứ tự

Gửi ngay ACK trugraveng lặp chỉ thị số thứ tựđoạn của byte kế tiếp đang mong chờ

Gửi ngay ACK với điều kiện lagrave đoạnbắt đầu ngay điểm coacute khoảng trống

Transport Layer 3-68

Truyền lại nhanh

Chu kỳ Time-out thường tương đối dagravei độ trễ dagravei trước khi gửi

lại goacutei đatilde mất

Xaacutec nhận caacutec đoạn đatilde mất bằng caacutec ACK trugraveng lặp becircn gửi thường gửi

nhiều đoạn song song Nếu đoạn bị mất sẽ

xảy ra tigravenh trạng giống như nhiều ACK trugraveng nhau

Nếu becircn gửi nhận 3 ACK của cugraveng một dữ liệu noacute cho lagrave đoạn sau dữ liệu đatilde ACK bị mất Truyền lại nhanh gửi

lại đoạn trước khi bộ định thigrave hết hạn

Transport Layer 3-69

sự kiện ACK đatilde nhận với trường lagrave y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer else increment count of dup ACKs received for y if (count of dup ACKs received for y = 3) resend segment with sequence number y

Giải thuật truyền lại nhanh

một ACK trugraveng lặp cho đoạn đatilde được ACK

Truyền lại nhanh

Transport Layer 3-70

Chương 3 Nội dung trigravenh bagravey

31 Caacutec dịch vụ lớp Transport

32 Multiplexing vagrave demultiplexing

33 Vận chuyển khocircng kết nối UDP

34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy

35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối

36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn

37 Điều khiển tắc nghẽn TCP

Transport Layer 3-71

TCP điều khiển luồng

becircn nhận của kết nối TCP coacute một bộ đệm nhận

dịch vụ so trugraveng tốc độ so trugraveng tốc độ gửi với tốc độ nhận của ứng dụng

tiến trigravenh ứng dụng coacute thể chậm tại luacutec đọc bộ đệm

becircn gửi sẽ khocircng lagravem tragraven bộ đệm vigrave truyền quaacute nhiều vagrave

quaacute nhanh

điều khiển luồng

Transport Layer 3-72

TCP điều khiển luồng caacutech lagravem

(Giả sử becircn nhận TCP loại bỏ caacutec đoạn khocircng coacute thứ tự)

dự phograveng trong bộ đệm= RcvWindow

= RcvBuffer-[LastByteRcvd - LastByteRead]

Becircn nhận thocircng baacuteo khoảng dự trữ nhờ giaacute trị RcvWindow trong caacutec đoạn

Becircn gửi hạn chế dữ liệu khocircng được ACK vagraveo RcvWindow bảo đảm bộ đệm nhận

khocircng tragraven

Transport Layer 3-73

Chương 3 Nội dung trigravenh bagravey

31 Caacutec dịch vụ lớp Transport

32 Multiplexing vagrave demultiplexing

33 Vận chuyển khocircng kết nối UDP

34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy

35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối

36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn

37 Điều khiển tắc nghẽn TCP

Transport Layer 3-74

TCP quản lyacute kết nối

Chuacute yacute Becircn gửi vagrave becircn nhận TCP thiết lập ldquokết nốirdquo trước khi trao đổi dữ liệu

khởi tạo caacutec biến TCP caacutec số thứ tự đoạn thocircng tin caacutec bộ đệm điều

khiển luồng (như RcvWindow)

client người khởi xướng kết nối

Socket clientSocket = new Socket(hostnameport

number) server được tiếp xuacutec bởi

client Socket connectionSocket =

welcomeSocketaccept()

3 phương phaacutep bắt tay

Bước 1 client host gửi đoạnTCP SYN đến server xaacutec định số thứ tự khởi đầu khocircng phải dữ liệu

Bước 2 server host nhận SYN trả lời với đoạn SYNACK

server cấp phaacutet caacutec bộ đệm

xaacutec định số thứ tự khởi đầuBước 3 client nhận SYNACK trả

lời với đoạn ACK (coacute thể chứa dữ liệu)

Transport Layer 3-75

TCP quản lyacute kết nối (tt)

Đoacuteng một kết nối

client đoacuteng socket clientSocketclose()

Bước 1 client gửi đoạn điều khiển TCP FIN đến server

Bước 2 server nhận FIN trả lời với ACK Đoacuteng kết nối gửi FIN

client

FIN

server

ACK

ACK

FIN

đoacuteng

đoacuteng

đatilde đoacutengthời g

ian c

hờ

Transport Layer 3-76

TCP quản lyacute kết nối (tt)

Bước 3 client nhận FIN trả lời với ACK

Trong khoảng ldquothời gian chờrdquo ndash sẽ phản hồi với ACK để nhận caacutec FIN

Bước 4 server nhận ACK Kết nối đatilde đoacuteng

Chuacute yacute với một sửa đổi nhỏ coacute thể quản lyacute nhiều FIN đồng thời

client

FIN

server

ACK

ACK

FIN

đang đoacuteng

đang đoacuteng

đatilde đoacuteng

thời g

ian c

hờ

đatilde đoacuteng

Transport Layer 3-77

TCP quản lyacute kết nối (tt)

chu kỳ sống củaTCP client

chu kỳ sống củaTCP server

Transport Layer 3-78

Chương 3 Nội dung trigravenh bagravey

31 Caacutec dịch vụ lớp Transport

32 Multiplexing vagrave demultiplexing

33 Vận chuyển khocircng kết nối UDP

34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy

35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối

36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn

37 Điều khiển tắc nghẽn TCP

Transport Layer 3-79

Caacutec nguyecircn lyacute điều khiển tắc nghẽn

Tắc nghẽn ldquoquaacute nhiều nguồn gửi quaacute nhanh vagrave quaacute nhiều

dữ liệu đến mạngrdquo khaacutec với điều khiển luồng caacutec biểu hiện

caacutec goacutei bị mất (tragraven bộ đệm tại caacutec router) caacutec độ trễ quaacute dagravei (xếp hagraveng trong bộ đệm

của router) lagrave 1 trong 10 vấn đề nan giải nhất

Transport Layer 3-80

Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 1

2 gửi 2 nhận 1 router caacutec bộ

đệm khocircng giới hạn

khocircng coacute truyền lại

caacutec độ trễ lớn hơn khi tắc nghẽn

năng suất coacute thể đạt tối đa

unlimited shared output link buffers

Host Ain original data

Host B

out

Transport Layer 3-81

Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 2

1 router caacutec bộ đệm coacute giới hạn becircn gửi truyền lại caacutec goacutei đatilde mất

chia sẻ vocirc hạncaacutec bộ đệm ouput

Host A in dữ liệu gốc

Host B

out

in dữ liệu gốc cugraveng với dữ liệu truyền lại

Transport Layer 3-82

Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 2 luocircn luocircn

truyền lại ldquohoagraven toagravenrdquo chỉ khi mất maacutet

truyền lại vigrave trễ (khocircng mất) lagravem cho lớn hơn với cugraveng

in

out

=

in

out

gt

in

out

ldquocaacutec chi phiacuterdquo của tắc nghẽn nhiều việc (truyền lại) caacutec truyền lại khocircng cần thiết liecircn kết nhiều bản sao của

goacutei

R2

R2in

ou

t

b

R2

R2in

ou

t

a

R2

R2in

ou

t

c

R4

R3

Transport Layer 3-83

Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 3 4 người gửi caacutec đường qua nhiều hop timeouttruyền lại

in

Hỏi điều gigrave xảy ra nếu vagrave tăng lecircn

in

chia sẻ vocirc hạncaacutec bộ đệm ouput

Host Ain dữ liệu gốc

Host B

out

in dữ liệu gốc cugraveng với dữ liệu truyền lại

Transport Layer 3-84

Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 3

ldquochi phiacuterdquo khaacutec của tắc nghẽn khi caacutec goacutei bị bỏ bất kỳ ldquokhả năng truyền

upstream dugraveng cho goacutei đoacute sẽ bị latildeng phiacuterdquo

Host A

Host B

o

u

t

Transport Layer 3-85

Caacutec caacutech tiếp cận đối với điều khiển tắc nghẽn

điều khiển tắc nghẽn end-end

khocircng coacute phản hồi rotilde ragraveng từ mạng

tắc nghẽn được suy ra từ việc quan saacutet caacutec hệ thống đầu cuối coacute mất maacutet trễ

tiếp cận được quản lyacute bởi TCP

điều khiển tắc nghẽn coacute sự hỗ trợ của mạng

caacutec router cung cấp phản hồi về caacutec hệ thống đầu cuối 1 bit duy nhất chỉ thị

tắc nghẽn (SNA DECbit TCPIP ECN ATM)

tốc độ sẽ gửi được xaacutec định rotilde ragraveng

2 caacutech

Transport Layer 3-86

Viacute dụ điều khiển tắc nghẽn ATM ABR

ABR tốc độ bit sẵn sagraveng

ldquodịch vụ mềm dẻordquo nếu đường gửi ldquochưa

hếtrdquo becircn gửi sẽ dugraveng

băng thocircng sẵn sagraveng nếu đường gửi tắc

nghẽn becircn gửi điều tiết với

tốc độ tối thiểu

RM (resource management)

gửi bởi becircn gửi rải raacutec với caacutec ocirc dữ liệu

caacutec bit trong ocirc thiết lập bởi caacutec switch bit NI khocircng tăng tốc độ

(tắc nghẽn nhẹ) bit CI tắc nghẽn rotilde rệt

Caacutec ocirc RM được trả về becircn gửi từ becircn nhận với nguyecircn vẹn caacutec bit

Transport Layer 3-87

Viacute dụ điều khiển tắc nghẽn ATM ABR

trường 2-byte ER trong ocirc RM switch đatilde tắc nghẽn coacute thể coacute giaacute trị ER thấp hơn trong ocirc tốc độ gửi do đoacute coacute thể được hỗ trợ tối đa trecircn đường

EFCI bit trong caacutec ocirc dữ liệu được cagravei giaacute trị 1 trong switch đatilde tắc nghẽn nếu ocirc dữ liệu đứng trước ocirc RM coacute cagravei EFCI becircn gửi sẽ cagravei

bit CI trong ocirc RM trả về

Transport Layer 3-88

Chương 3 Nội dung trigravenh bagravey

31 Caacutec dịch vụ lớp Transport

32 Multiplexing vagrave demultiplexing

33 Vận chuyển khocircng kết nối UDP

34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy

35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối

36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn

37 Điều khiển tắc nghẽn TCP

Transport Layer 3-89

TCP điều khiển tắc nghẽn additive tăng lecircn multiplicative giảm xuống

8 Kbytes

16 Kbytes

24 Kbytes

time

congestionwindow

Caacutech tiếp cận tăng tốc độ truyền (kiacutech thước cửa sổ) tigravem khả năng băng thocircng coacute thể cho đến khi coacute mất maacutet xảy ra additive tăng lecircn tăng CongWin bởi 1 MSS

mỗi RTT cho đến khi coacute mất maacutet xảy ra multiplicative giảm xuống bỏ CongWin trong

nửa giai đoạn sau khi mất maacutet

timekiacutech

thư

ớc

cửa

sổ

tắc

nghẽ

n

Tigravem kiếm băng thocircng

Transport Layer 3-90

TCP điều khiển tắc nghẽn chi tiết

becircn gửi hạn chế việc truyền LastByteSent-LastByteAcked

CongWin Cocircng thức

CongWin thay đổi chức năng lagrave nhận biết tắc nghẽn trecircn mạng

Lagravem thế nagraveo becircn gửi nhận biết tắc nghẽn

mất maacutet xảy ra = timeout hoặc 3 ack trugraveng lặp

becircn gửi giảm tốc độ (CongWin) sau khi mất maacutet xảy ra

3 cơ chế AIMD khởi động chậm thận trọng sau khi coacute

caacutec sự kiện timeout

tốc độ = CongWin

RTT Bytess

Transport Layer 3-91

TCP khởi động chậm

Khi kết nối bắt đầu CongWin = 1 MSS Viacute dụ MSS = 500 bytes

amp RTT = 200 ms tốc độ khởi tạo = 20

kbps

băng thocircng sẵn sagraveng coacute thể gtgt MSSRTT mong muốn nhanh

choacuteng tăng tốc lecircn tốc độ coacute thể đaacutep ứng

Khi kết nối bắt đầu tăng tốc lecircn rất nhanh cho đến khi sự cố mất maacutet xảy ra đầu tiecircn

Transport Layer 3-92

TCP khởi động chậm (tt)

Khi kết nối bắt đầu tăng tốc lecircn rất nhanh cho đến khi sự cố mất maacutet xảy ra đầu tiecircn nhacircn đocirci CongWin mỗi

RTT hoagraven thagravenh nhờ tăng CongWin ứng với mỗi ACK đatilde nhận

Tổng kết tốc độ khởi đầu lagrave chậm nhưng sau đoacute tăng tốc rất nhanh

Host A

1 đoạn

RTT

Host B

thời gian

2 đoạn

4 đoạn

Transport Layer 3-93

Tinh chếHỏi Khi nagraveo việc tăng

tốc trở thagravenh tuyến tiacutenh

Trả lời Khi CongWin đạt đến 12 giaacute trị của noacute trước khi timeout

Hiện thực Ngưỡng thay đổi Tại thời điểm coacute sự cố

mất maacutet ngưỡng được cagravei giaacute trị bằng frac12 của CongWin ngay trước đoacute

Transport Layer 3-94

Tinh chế nhận biết mất maacutet

Sau 3 ACK trugraveng lặp CongWin sẽ giảm 12 kiacutech thước cửa sổ

tăng tuyến tiacutenh nhưng sau sự cố

timeout CongWin thay giaacute trị

bằng 1 MSS kiacutech thước cửa sổ

tăng cấp lũy thừa khi đến một ngưỡng

thigrave tăng tuyến tiacutenh

3 ACK trugraveng nhau chỉ ra khả năng truyền của mạng timeout chỉ thị ldquonhiều cảnh baacuteordquo về tigravenh huống tắc nghẽn

Nguyecircn lyacute

Transport Layer 3-95

Tổng kết TCP điều khiển tắc nghẽn

Khi CongWin dưới Threshold becircn gửi đang trong giai đoạn khởi động chậm kiacutech thước cửa sổ tăng nhanh theo cấp lũy thừa

Khi CongWin trecircn Threshold becircn gửi đang trong giai đoạn traacutenh tắc nghẽn kiacutech thước cửa sổ tăng nhanh theo cấp tuyến tiacutenh

Khi coacute 3 ACK trugraveng lặp xảy ra Threshold = CongWin2 vagrave CongWin = Threshold

Khi timeout xảy ra Threshold = CongWin2 vagrave CongWin = 1 MSS

Transport Layer 3-96

TCP điều khiển tắc nghẽn becircn gửi

Trạng thaacutei Sự kiện TCP becircn gửi hagravenh động Diễn giải

Slow Start (SS)-Khởi động chậm

ACK baacuteo nhận cho dữ liệu chưa ACK trước đoacute

CongWin = CongWin + MSS If (CongWin gt Threshold) cagravei đặt trạng thaacutei ldquoTraacutenh tắc nghẽnrdquo

Hậu quả lagravem tăng gấp đocirci CongWin mỗi RTT

CongestionAvoidance (CA) ndashTraacutenh tắc nghẽn

ACK baacuteo nhận cho dữ liệu chưa ACK trước đoacute

CongWin = CongWin+MSS (MSSCongWin)

Additive tăng lecircn lagravem tăng CongWin lecircn 1 MSS mỗi RTT

SS hoặc CA Sự cố mất maacutet xảy ra khi thấy coacute 3 ACK trugraveng lặp

Threshold = CongWin2 CongWin = Thresholdcagravei đặt trạng thaacutei ldquoTraacutenh tắc nghẽnrdquo

Khocirci phục nhanh hiện thực giảm xuống multiplicative CongWin sẽ khocircng giảm xuống dưới 1 MSS

SS hoặc CA Timeout Threshold = CongWin2 CongWin = 1 MSScagravei đặt trạng thaacutei ldquoKhởi động chậmrdquo

Vagraveo chế độ ldquoKhởi động chậmrdquo

SS hoặc CA ACK trugraveng lặp

Đếm ACK tăng lecircn cho đoạn vừa được ACK

CongWin vagrave Threshold khocircng thay đổi

Transport Layer 3-97

TCP throughput

Throughout trung bigravenh của TCP biểu diễn qua kiacutech thước của sổ vagrave RTT Bỏ qua trạng thaacutei ldquoKhởi động chậmrdquo

Cho W lagrave kiacutech thước cửa sổ khi coacute mất maacutet xảy ra

Khi kiacutech thước cửa sổ = W lưu lượng = WRTT

Chỉ ngay sau khi mất maacutet cửa sổ giảm xuống = W2 lưu lượng = W2RTT

throughout trung bigravenh 075 WRTT

Transport Layer 3-98

TCP tương lai

Viacute dụ caacutec đoạn dagravei 1500 byte RTT 100ms lưu lượng 10 Gbps

Kiacutech thước cửa sổ yecircu cầu W = 83333 đoạn trecircn đường truyền

Lưu lượng trong caacutec trường hợp mất maacutet

L = 210-10

Phiecircn bản mới của TCP dagravenh cho nhu cầu tốc độ cao

LRTT

MSS221

Transport Layer 3-99

Mục tiecircu nếu K phiecircn lagravem việc TCP chia sẻ kết nối cổ chai của băng thocircng lagrave R mỗi phiecircn coacute tốc độ trung bigravenh lagrave RK

TCP kết nối 1

router cổ chaikhả năng R

TCP kết nối 2

TCP tiacutenh cocircng bằng

Transport Layer 3-100

Tại sao phải TCP cocircng bằng

2 phiecircn lagravem việc cạnh tranh nhau Additive tăng lưu lượng tăng multiplicative giảm lưu lượng tương xứng

R

R

chia sẻ băng thocircng bằng nhau

Connection 1 throughputConnect

ion 2

th

roughput

traacutenh tắc nghẽn additive tăng lecircnmất maacutet giảm cửa sổ bằng 12

traacutenh tắc nghẽn additive tăng lecircnmất maacutet giảm cửa sổ bằng 12

Transport Layer 3-101

TCP tiacutenh cocircng bằng (tt)

Tiacutenh cocircng bằng amp UDP nhiều ứng dụng

thường khocircng dugraveng TCP khocircng muốn tốc độ bị

điều tiết do điều khiển tắc nghẽn

Thay bằng dugraveng UDP truyền audiovideo với

tốc độ ổn định chịu được mất maacutet

Nghiecircn cứu giao thức thacircn thiện với TCP

Tiacutenh cocircng bằng amp caacutec kết nối TCP song song

khocircng coacute gigrave ngăn cản việc ứng dụng mở caacutec kết nối song song giữa 2 host

Trigravenh duyệt Web lagravem giống như thế

Viacute dụ tốc độ R hỗ trợ 9 kết nối ứng dụng mới yecircu cầu 1

TCP coacute tốc độ R10 ứng dụng mới yecircu cầu 11

TCP coacute tốc độ R2

Transport Layer 3-102

Mocirc higravenh trễ

Hỏi Mất bao lacircu để nhận 1 đối tượng từ Web server sau khi gửi yecircu cầu

Bỏ qua tắc nghẽn trễ bị ảnh hưởng bởi

thiết lập kết nối TCP trễ truyền dữ liệu khởi động chậm

Notation caacutec giả định Giả sử một kết nối giữa

client vagrave server coacute tốc độ R

S MSS (bits) O kiacutech thước đối tượng

(bits) khocircng truyền lại (khocircng

mất maacutet khocircng hỏng)

Kiacutech thước cửa sổ Giả định 1 cửa sổ tắc

nghẽn cố định coacute W đoạn Sau đoacute cửa sổ thay đổi

mocirc higravenh khởi động chậm

Transport Layer 3-103

Cửa sổ tắc nghẽn cố định (1)

Trường hợp đầu tiecircnWSR gt RTT + SR cho

đoạn đầu tiecircn trong cửa sổ trả về trước khi cửa sổ dữ liệu gửi ACK

trễ = 2RTT + OR

Transport Layer 3-104

Cửa sổ tắc nghẽn cố định (2)

Trường hợp thứ hai WSR lt RTT + SR sent

chờ cho ACK sau khi gửi dữ liệu

trễ = 2RTT + OR+ (K-1)[SR + RTT - WSR]

Transport Layer 3-105

TCP Mocirc higravenh trễ Khởi động chậm (1)

Bacircy giờ giả sử kiacutech thước cửa sổ tăng lecircn tugravey theo quaacute trigravenh khởi động chậm

Độ trễ của một đối tượng sẽ lagrave

R

S

R

SRTTP

R

ORTTLatency P )12(2

trong đoacute P lagrave số lần TCP rảnh ở tại server

1min KQP

- trong đoacute Q lagrave số lần server rảnh nếu đối tượng đatilde khởi tạo kiacutech thước

- vagrave K lagrave số lượng cửa sổ bao trugravem đối tượng

Transport Layer 3-106

TCP Mocirc higravenh trễ Khởi động chậm (2)

RTT

initia te TCPconnection

requestobject

first w indow= S R

second w indow= 2S R

third w indow= 4S R

fourth w indow= 8S R

com pletetransm issionobject

delivered

tim e atc lient

tim e atserver

Viacute dụbull OS = 15 đoạnbull K = 4 cửa sổbull Q = 2bull P = minK-1Q = 2

Server rảnh P=2 lần

Caacutec thagravenh phần trễbull 2 RTT dagravenh cho thiết lập kết nối vagrave yecircu cầubull OR để truyền đối tượngbullthời gian server rảnh bởi vigrave khởi động chậm

Server rảnh P = minK-1Q lần

Transport Layer 3-107

TCP Mocirc higravenh trễ(3)

R

S

R

SRTTPRTT

R

O

R

SRTT

R

SRTT

R

O

idleTimeRTTR

O

P

kP

k

P

pp

)12(][2

]2[2

2delay

1

1

1

th window after the timeidle 2 1 kR

SRTT

R

S k

ementacknowledg receivesserver until

segment send tostartsserver when from time RTTR

S

window kth the transmit totime2 1

R

Sk

RTT

initia te TCPconnection

requestobject

first w indow= S R

second w indow= 2S R

third w indow= 4S R

fourth w indow= 8S R

com pletetransm issionobject

delivered

tim e atc lient

tim e atserver

Transport Layer 3-108

TCP Mocirc higravenh trễ (4)

)1(log

)1(logmin

12min

222min

222min

2

2

110

110

S

OS

Okk

S

Ok

SOk

OSSSkK

k

k

k

caacutech tiacutenh toaacuten Q tương tự (xem HW)

K = số lượng cửa sổ bao trugravem đối tượngLagravem thế nagraveo tiacutenh được K

Transport Layer 3-109

HTTP Mocirc higravenh Giả sử trang Web chứa

1 trang HTML (kiacutech thước O bits) M higravenh ảnh (mỗi caacutei kiacutech thướcO bits)

HTTP khocircng bền vững M+1 TCP kết nối Thời gian đaacutep ứng = (M+1)OR + (M+1)2RTT + tổng số thời

gian rảnh HTTP bền vững

2 RTT để yecircu cầu vagrave nhận file HTML 1 RTT để yecircu cầu vagrave nhận M higravenh ảnh Thời gian đaacutep ứng = (M+1)OR + 3RTT + tổng số thời gian

rảnh HTTP khocircng bền vững với X kết nối song song

Giả sử MX lagrave số nguyecircn 1 TCP kết nối cho file MX thiết lập caacutec kết nối song song cho caacutec higravenh ảnh Thời gian đaacutep ứng = (M+1)OR + (MX + 1)2RTT + tổng số

thời gian rảnh

Transport Layer 3-110

02468

101214161820

28Kbps

100Kbps

1Mbps

10Mbps

non-persistent

persistent

parallel non-persistent

HTTP thời gian đaacutep ứng (giacircy)RTT = 100 msec O = 5 Kbytes M=10 vagrave X=5

Với băng thocircng thấp thời gian kết nối amp đaacutep ứng trội hơn thời gian truyền

Caacutec kết nối bền vững chỉ cho sự cải thiện khocircng đaacuteng kể trecircn caacutec kết nối song song

Transport Layer 3-111

0

10

20

30

40

50

60

70

28Kbps

100Kbps

1Mbps

10Mbps

non-persistent

persistent

parallel non-persistent

HTTP thời gian đaacutep ứng (giacircy)

RTT =1 sec O = 5 Kbytes M=10 and X=5

Với RTT lớn hơn thời gian đaacutep ứng trội hơn thời gian trễ chờ thiết lập kết nốiTCP amp khởi động chậm Caacutec kết nối bền vững bacircy giờ cho thấy cải thiện rotilde rệt đặc biệtvới caacutec mạng băng thocircng cao

Transport Layer 3-112

Chương 3 Tổng kết caacutec nguyecircn lyacute của caacutec

dịch vụ lớp transport multiplexing

demultiplexing truyền dữ liệu tin cậy điều khiển luồng điều khiển tắc nghẽn

khởi tạo vagrave hiện thực trong Internet UDP TCP

Tiếp theo nghiecircn cứu xong

caacutec vấn đề ldquongoagravei biecircnrdquo (caacutec lớp application transport)

chuẩn bị vagraveo phần ldquolotildeirdquo của mạng

  • Slide 1
  • Chương 3 Lớp Transport
  • Chương 3 Nội dung trigravenh bagravey
  • Caacutec dịch vụ vagrave giao thức Transport
  • Lớp Transport với lớp network
  • Caacutec giao thức lớp transport trecircn Internet
  • Slide 7
  • Multiplexingdemultiplexing
  • Demultiplexing lagravem việc như thế nagraveo
  • Demultiplexing khocircng kết nối
  • Demultiplexing khocircng kết nối (tiếp)
  • Demultiplexing hướng kết nối
  • Demultiplexing hướng kết nối (tiếp)
  • Demultiplexing hướng kết nối Threaded Web Server
  • Slide 15
  • UDP User Datagram Protocol [RFC 768]
  • UDP (tt)
  • UDP checksum
  • Viacute dụ Checksum
  • Slide 20
  • Caacutec nguyecircn lyacute truyền dữ liệu tin cậy
  • Slide 22
  • Slide 23
  • Truyền dữ liệu tin cậy
  • Slide 25
  • Rdt10 truyền dữ liệu tin cậy trecircn 1 kecircnh truyền tin cậy
  • Rdt20 kecircnh với caacutec lỗi
  • rdt20 đặc tả FSM
  • rdt20 hoạt động khi khocircng lỗi
  • rdt20 hoạt động khi coacute lỗi
  • rdt20 coacute lỗ hổng nghiecircm trọng
  • rdt21 người gửi quản lyacute caacutec ACKNAK bị hỏng
  • Slide 33
  • rdt21 thảo luận
  • rdt22 một giao thức khocircng cần NAK
  • rdt22 gửi nhận caacutec mảnh
  • rdt30 caacutec kecircnh với lỗi vagrave mất maacutet
  • rdt30 gửi
  • hagravenh động của rdt30
  • Slide 40
  • Hiệu suất của rdt30
  • rdt30 hoạt động dừng-vagrave-chờ
  • Caacutec giao thức Pipelined
  • Pipelining độ khả dụng tăng
  • Go-Back-N
  • GBN becircn gửi mở rộng FSM
  • GBN becircn nhận mở rộng FSM
  • GBN hoạt động
  • Lặp coacute lựa chọn
  • Lặp coacute lựa chọn caacutec cửa sổ gửi nhận
  • Slide 51
  • Hoạt động của lặp coacute lựa chọn
  • Lặp coacute lựa chọn tigravenh trạng khoacute giải quyết
  • Slide 54
  • TCP Tổng quan RFCs 793 1122 1323 2018 2581
  • TCP cấu truacutec đoạn
  • Caacutec số thứ tự TCP vagrave ACK
  • TCP Round Trip Time vagraveTimeout
  • TCP Round Trip Time vagrave Timeout
  • Viacute dụ đaacutenh giaacute RTT
  • Slide 61
  • TCP truyền dữ liệu tin cậy
  • TCP caacutec sự kiện
  • TCP becircn gửi (đơn giản)
  • TCP caacutec tigravenh huống truyền lại
  • TCP caacutec tigravenh huống truyền lại (tt)
  • TCP sinh ra ACK [RFC 1122 RFC 2581]
  • Truyền lại nhanh
  • Giải thuật truyền lại nhanh
  • Slide 70
  • TCP điều khiển luồng
  • TCP điều khiển luồng caacutech lagravem
  • Slide 73
  • TCP quản lyacute kết nối
  • TCP quản lyacute kết nối (tt)
  • Slide 76
  • Slide 77
  • Slide 78
  • Caacutec nguyecircn lyacute điều khiển tắc nghẽn
  • Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 1
  • Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 2
  • Slide 82
  • Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 3
  • Slide 84
  • Caacutec caacutech tiếp cận đối với điều khiển tắc nghẽn
  • Viacute dụ điều khiển tắc nghẽn ATM ABR
  • Slide 87
  • Slide 88
  • TCP điều khiển tắc nghẽn additive tăng lecircn multiplicative giảm xuống
  • TCP điều khiển tắc nghẽn chi tiết
  • TCP khởi động chậm
  • TCP khởi động chậm (tt)
  • Tinh chế
  • Tinh chế nhận biết mất maacutet
  • Tổng kết TCP điều khiển tắc nghẽn
  • TCP điều khiển tắc nghẽn becircn gửi
  • TCP throughput
  • TCP tương lai
  • TCP tiacutenh cocircng bằng
  • Tại sao phải TCP cocircng bằng
  • TCP tiacutenh cocircng bằng (tt)
  • Mocirc higravenh trễ
  • Cửa sổ tắc nghẽn cố định (1)
  • Cửa sổ tắc nghẽn cố định (2)
  • TCP Mocirc higravenh trễ Khởi động chậm (1)
  • TCP Mocirc higravenh trễ Khởi động chậm (2)
  • TCP Mocirc higravenh trễ(3)
  • TCP Mocirc higravenh trễ (4)
  • HTTP Mocirc higravenh
  • Slide 110
  • Slide 111
  • Chương 3 Tổng kết

Transport Layer 3-66

TCP caacutec tigravenh huống truyền lại (tt)Host A

Seq=92 8 bytes data

ACK=100

loss

tim

eout

Cumulative ACK scenario

Host B

X

Seq=100 20 bytes data

ACK=120

time

SendBase= 120

Transport Layer 3-67

TCP sinh ra ACK [RFC 1122 RFC 2581]

Sự kiện tại becircn nhận

Đoạn đến với đuacuteng số thứ tự mong muốn Tất cả dữ liệu đếnđatilde được ACK

Đoạn đến với đuacuteng số thứ tự mong muốn Một đoạn khaacutec đangchờ ACK

Caacutec đoạn đến khocircng thứ tựlớn hơn số thứ tự đoạn mong muốnCoacute khoảng trống

Đoạn đếnlấp đầy từng phần hoặc toagraven bộkhoảng trống

TCP becircn nhận hagravenh động

ACK trễ Chờ đến 500mscho đoạn kế tiếp Nếu khocircng coacute đoạnkế tiếp gửi ACK

Gửi ngay một ACK tiacutech lũy chấp nhậncho cả caacutec đoạn theo thứ tự

Gửi ngay ACK trugraveng lặp chỉ thị số thứ tựđoạn của byte kế tiếp đang mong chờ

Gửi ngay ACK với điều kiện lagrave đoạnbắt đầu ngay điểm coacute khoảng trống

Transport Layer 3-68

Truyền lại nhanh

Chu kỳ Time-out thường tương đối dagravei độ trễ dagravei trước khi gửi

lại goacutei đatilde mất

Xaacutec nhận caacutec đoạn đatilde mất bằng caacutec ACK trugraveng lặp becircn gửi thường gửi

nhiều đoạn song song Nếu đoạn bị mất sẽ

xảy ra tigravenh trạng giống như nhiều ACK trugraveng nhau

Nếu becircn gửi nhận 3 ACK của cugraveng một dữ liệu noacute cho lagrave đoạn sau dữ liệu đatilde ACK bị mất Truyền lại nhanh gửi

lại đoạn trước khi bộ định thigrave hết hạn

Transport Layer 3-69

sự kiện ACK đatilde nhận với trường lagrave y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer else increment count of dup ACKs received for y if (count of dup ACKs received for y = 3) resend segment with sequence number y

Giải thuật truyền lại nhanh

một ACK trugraveng lặp cho đoạn đatilde được ACK

Truyền lại nhanh

Transport Layer 3-70

Chương 3 Nội dung trigravenh bagravey

31 Caacutec dịch vụ lớp Transport

32 Multiplexing vagrave demultiplexing

33 Vận chuyển khocircng kết nối UDP

34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy

35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối

36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn

37 Điều khiển tắc nghẽn TCP

Transport Layer 3-71

TCP điều khiển luồng

becircn nhận của kết nối TCP coacute một bộ đệm nhận

dịch vụ so trugraveng tốc độ so trugraveng tốc độ gửi với tốc độ nhận của ứng dụng

tiến trigravenh ứng dụng coacute thể chậm tại luacutec đọc bộ đệm

becircn gửi sẽ khocircng lagravem tragraven bộ đệm vigrave truyền quaacute nhiều vagrave

quaacute nhanh

điều khiển luồng

Transport Layer 3-72

TCP điều khiển luồng caacutech lagravem

(Giả sử becircn nhận TCP loại bỏ caacutec đoạn khocircng coacute thứ tự)

dự phograveng trong bộ đệm= RcvWindow

= RcvBuffer-[LastByteRcvd - LastByteRead]

Becircn nhận thocircng baacuteo khoảng dự trữ nhờ giaacute trị RcvWindow trong caacutec đoạn

Becircn gửi hạn chế dữ liệu khocircng được ACK vagraveo RcvWindow bảo đảm bộ đệm nhận

khocircng tragraven

Transport Layer 3-73

Chương 3 Nội dung trigravenh bagravey

31 Caacutec dịch vụ lớp Transport

32 Multiplexing vagrave demultiplexing

33 Vận chuyển khocircng kết nối UDP

34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy

35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối

36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn

37 Điều khiển tắc nghẽn TCP

Transport Layer 3-74

TCP quản lyacute kết nối

Chuacute yacute Becircn gửi vagrave becircn nhận TCP thiết lập ldquokết nốirdquo trước khi trao đổi dữ liệu

khởi tạo caacutec biến TCP caacutec số thứ tự đoạn thocircng tin caacutec bộ đệm điều

khiển luồng (như RcvWindow)

client người khởi xướng kết nối

Socket clientSocket = new Socket(hostnameport

number) server được tiếp xuacutec bởi

client Socket connectionSocket =

welcomeSocketaccept()

3 phương phaacutep bắt tay

Bước 1 client host gửi đoạnTCP SYN đến server xaacutec định số thứ tự khởi đầu khocircng phải dữ liệu

Bước 2 server host nhận SYN trả lời với đoạn SYNACK

server cấp phaacutet caacutec bộ đệm

xaacutec định số thứ tự khởi đầuBước 3 client nhận SYNACK trả

lời với đoạn ACK (coacute thể chứa dữ liệu)

Transport Layer 3-75

TCP quản lyacute kết nối (tt)

Đoacuteng một kết nối

client đoacuteng socket clientSocketclose()

Bước 1 client gửi đoạn điều khiển TCP FIN đến server

Bước 2 server nhận FIN trả lời với ACK Đoacuteng kết nối gửi FIN

client

FIN

server

ACK

ACK

FIN

đoacuteng

đoacuteng

đatilde đoacutengthời g

ian c

hờ

Transport Layer 3-76

TCP quản lyacute kết nối (tt)

Bước 3 client nhận FIN trả lời với ACK

Trong khoảng ldquothời gian chờrdquo ndash sẽ phản hồi với ACK để nhận caacutec FIN

Bước 4 server nhận ACK Kết nối đatilde đoacuteng

Chuacute yacute với một sửa đổi nhỏ coacute thể quản lyacute nhiều FIN đồng thời

client

FIN

server

ACK

ACK

FIN

đang đoacuteng

đang đoacuteng

đatilde đoacuteng

thời g

ian c

hờ

đatilde đoacuteng

Transport Layer 3-77

TCP quản lyacute kết nối (tt)

chu kỳ sống củaTCP client

chu kỳ sống củaTCP server

Transport Layer 3-78

Chương 3 Nội dung trigravenh bagravey

31 Caacutec dịch vụ lớp Transport

32 Multiplexing vagrave demultiplexing

33 Vận chuyển khocircng kết nối UDP

34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy

35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối

36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn

37 Điều khiển tắc nghẽn TCP

Transport Layer 3-79

Caacutec nguyecircn lyacute điều khiển tắc nghẽn

Tắc nghẽn ldquoquaacute nhiều nguồn gửi quaacute nhanh vagrave quaacute nhiều

dữ liệu đến mạngrdquo khaacutec với điều khiển luồng caacutec biểu hiện

caacutec goacutei bị mất (tragraven bộ đệm tại caacutec router) caacutec độ trễ quaacute dagravei (xếp hagraveng trong bộ đệm

của router) lagrave 1 trong 10 vấn đề nan giải nhất

Transport Layer 3-80

Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 1

2 gửi 2 nhận 1 router caacutec bộ

đệm khocircng giới hạn

khocircng coacute truyền lại

caacutec độ trễ lớn hơn khi tắc nghẽn

năng suất coacute thể đạt tối đa

unlimited shared output link buffers

Host Ain original data

Host B

out

Transport Layer 3-81

Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 2

1 router caacutec bộ đệm coacute giới hạn becircn gửi truyền lại caacutec goacutei đatilde mất

chia sẻ vocirc hạncaacutec bộ đệm ouput

Host A in dữ liệu gốc

Host B

out

in dữ liệu gốc cugraveng với dữ liệu truyền lại

Transport Layer 3-82

Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 2 luocircn luocircn

truyền lại ldquohoagraven toagravenrdquo chỉ khi mất maacutet

truyền lại vigrave trễ (khocircng mất) lagravem cho lớn hơn với cugraveng

in

out

=

in

out

gt

in

out

ldquocaacutec chi phiacuterdquo của tắc nghẽn nhiều việc (truyền lại) caacutec truyền lại khocircng cần thiết liecircn kết nhiều bản sao của

goacutei

R2

R2in

ou

t

b

R2

R2in

ou

t

a

R2

R2in

ou

t

c

R4

R3

Transport Layer 3-83

Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 3 4 người gửi caacutec đường qua nhiều hop timeouttruyền lại

in

Hỏi điều gigrave xảy ra nếu vagrave tăng lecircn

in

chia sẻ vocirc hạncaacutec bộ đệm ouput

Host Ain dữ liệu gốc

Host B

out

in dữ liệu gốc cugraveng với dữ liệu truyền lại

Transport Layer 3-84

Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 3

ldquochi phiacuterdquo khaacutec của tắc nghẽn khi caacutec goacutei bị bỏ bất kỳ ldquokhả năng truyền

upstream dugraveng cho goacutei đoacute sẽ bị latildeng phiacuterdquo

Host A

Host B

o

u

t

Transport Layer 3-85

Caacutec caacutech tiếp cận đối với điều khiển tắc nghẽn

điều khiển tắc nghẽn end-end

khocircng coacute phản hồi rotilde ragraveng từ mạng

tắc nghẽn được suy ra từ việc quan saacutet caacutec hệ thống đầu cuối coacute mất maacutet trễ

tiếp cận được quản lyacute bởi TCP

điều khiển tắc nghẽn coacute sự hỗ trợ của mạng

caacutec router cung cấp phản hồi về caacutec hệ thống đầu cuối 1 bit duy nhất chỉ thị

tắc nghẽn (SNA DECbit TCPIP ECN ATM)

tốc độ sẽ gửi được xaacutec định rotilde ragraveng

2 caacutech

Transport Layer 3-86

Viacute dụ điều khiển tắc nghẽn ATM ABR

ABR tốc độ bit sẵn sagraveng

ldquodịch vụ mềm dẻordquo nếu đường gửi ldquochưa

hếtrdquo becircn gửi sẽ dugraveng

băng thocircng sẵn sagraveng nếu đường gửi tắc

nghẽn becircn gửi điều tiết với

tốc độ tối thiểu

RM (resource management)

gửi bởi becircn gửi rải raacutec với caacutec ocirc dữ liệu

caacutec bit trong ocirc thiết lập bởi caacutec switch bit NI khocircng tăng tốc độ

(tắc nghẽn nhẹ) bit CI tắc nghẽn rotilde rệt

Caacutec ocirc RM được trả về becircn gửi từ becircn nhận với nguyecircn vẹn caacutec bit

Transport Layer 3-87

Viacute dụ điều khiển tắc nghẽn ATM ABR

trường 2-byte ER trong ocirc RM switch đatilde tắc nghẽn coacute thể coacute giaacute trị ER thấp hơn trong ocirc tốc độ gửi do đoacute coacute thể được hỗ trợ tối đa trecircn đường

EFCI bit trong caacutec ocirc dữ liệu được cagravei giaacute trị 1 trong switch đatilde tắc nghẽn nếu ocirc dữ liệu đứng trước ocirc RM coacute cagravei EFCI becircn gửi sẽ cagravei

bit CI trong ocirc RM trả về

Transport Layer 3-88

Chương 3 Nội dung trigravenh bagravey

31 Caacutec dịch vụ lớp Transport

32 Multiplexing vagrave demultiplexing

33 Vận chuyển khocircng kết nối UDP

34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy

35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối

36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn

37 Điều khiển tắc nghẽn TCP

Transport Layer 3-89

TCP điều khiển tắc nghẽn additive tăng lecircn multiplicative giảm xuống

8 Kbytes

16 Kbytes

24 Kbytes

time

congestionwindow

Caacutech tiếp cận tăng tốc độ truyền (kiacutech thước cửa sổ) tigravem khả năng băng thocircng coacute thể cho đến khi coacute mất maacutet xảy ra additive tăng lecircn tăng CongWin bởi 1 MSS

mỗi RTT cho đến khi coacute mất maacutet xảy ra multiplicative giảm xuống bỏ CongWin trong

nửa giai đoạn sau khi mất maacutet

timekiacutech

thư

ớc

cửa

sổ

tắc

nghẽ

n

Tigravem kiếm băng thocircng

Transport Layer 3-90

TCP điều khiển tắc nghẽn chi tiết

becircn gửi hạn chế việc truyền LastByteSent-LastByteAcked

CongWin Cocircng thức

CongWin thay đổi chức năng lagrave nhận biết tắc nghẽn trecircn mạng

Lagravem thế nagraveo becircn gửi nhận biết tắc nghẽn

mất maacutet xảy ra = timeout hoặc 3 ack trugraveng lặp

becircn gửi giảm tốc độ (CongWin) sau khi mất maacutet xảy ra

3 cơ chế AIMD khởi động chậm thận trọng sau khi coacute

caacutec sự kiện timeout

tốc độ = CongWin

RTT Bytess

Transport Layer 3-91

TCP khởi động chậm

Khi kết nối bắt đầu CongWin = 1 MSS Viacute dụ MSS = 500 bytes

amp RTT = 200 ms tốc độ khởi tạo = 20

kbps

băng thocircng sẵn sagraveng coacute thể gtgt MSSRTT mong muốn nhanh

choacuteng tăng tốc lecircn tốc độ coacute thể đaacutep ứng

Khi kết nối bắt đầu tăng tốc lecircn rất nhanh cho đến khi sự cố mất maacutet xảy ra đầu tiecircn

Transport Layer 3-92

TCP khởi động chậm (tt)

Khi kết nối bắt đầu tăng tốc lecircn rất nhanh cho đến khi sự cố mất maacutet xảy ra đầu tiecircn nhacircn đocirci CongWin mỗi

RTT hoagraven thagravenh nhờ tăng CongWin ứng với mỗi ACK đatilde nhận

Tổng kết tốc độ khởi đầu lagrave chậm nhưng sau đoacute tăng tốc rất nhanh

Host A

1 đoạn

RTT

Host B

thời gian

2 đoạn

4 đoạn

Transport Layer 3-93

Tinh chếHỏi Khi nagraveo việc tăng

tốc trở thagravenh tuyến tiacutenh

Trả lời Khi CongWin đạt đến 12 giaacute trị của noacute trước khi timeout

Hiện thực Ngưỡng thay đổi Tại thời điểm coacute sự cố

mất maacutet ngưỡng được cagravei giaacute trị bằng frac12 của CongWin ngay trước đoacute

Transport Layer 3-94

Tinh chế nhận biết mất maacutet

Sau 3 ACK trugraveng lặp CongWin sẽ giảm 12 kiacutech thước cửa sổ

tăng tuyến tiacutenh nhưng sau sự cố

timeout CongWin thay giaacute trị

bằng 1 MSS kiacutech thước cửa sổ

tăng cấp lũy thừa khi đến một ngưỡng

thigrave tăng tuyến tiacutenh

3 ACK trugraveng nhau chỉ ra khả năng truyền của mạng timeout chỉ thị ldquonhiều cảnh baacuteordquo về tigravenh huống tắc nghẽn

Nguyecircn lyacute

Transport Layer 3-95

Tổng kết TCP điều khiển tắc nghẽn

Khi CongWin dưới Threshold becircn gửi đang trong giai đoạn khởi động chậm kiacutech thước cửa sổ tăng nhanh theo cấp lũy thừa

Khi CongWin trecircn Threshold becircn gửi đang trong giai đoạn traacutenh tắc nghẽn kiacutech thước cửa sổ tăng nhanh theo cấp tuyến tiacutenh

Khi coacute 3 ACK trugraveng lặp xảy ra Threshold = CongWin2 vagrave CongWin = Threshold

Khi timeout xảy ra Threshold = CongWin2 vagrave CongWin = 1 MSS

Transport Layer 3-96

TCP điều khiển tắc nghẽn becircn gửi

Trạng thaacutei Sự kiện TCP becircn gửi hagravenh động Diễn giải

Slow Start (SS)-Khởi động chậm

ACK baacuteo nhận cho dữ liệu chưa ACK trước đoacute

CongWin = CongWin + MSS If (CongWin gt Threshold) cagravei đặt trạng thaacutei ldquoTraacutenh tắc nghẽnrdquo

Hậu quả lagravem tăng gấp đocirci CongWin mỗi RTT

CongestionAvoidance (CA) ndashTraacutenh tắc nghẽn

ACK baacuteo nhận cho dữ liệu chưa ACK trước đoacute

CongWin = CongWin+MSS (MSSCongWin)

Additive tăng lecircn lagravem tăng CongWin lecircn 1 MSS mỗi RTT

SS hoặc CA Sự cố mất maacutet xảy ra khi thấy coacute 3 ACK trugraveng lặp

Threshold = CongWin2 CongWin = Thresholdcagravei đặt trạng thaacutei ldquoTraacutenh tắc nghẽnrdquo

Khocirci phục nhanh hiện thực giảm xuống multiplicative CongWin sẽ khocircng giảm xuống dưới 1 MSS

SS hoặc CA Timeout Threshold = CongWin2 CongWin = 1 MSScagravei đặt trạng thaacutei ldquoKhởi động chậmrdquo

Vagraveo chế độ ldquoKhởi động chậmrdquo

SS hoặc CA ACK trugraveng lặp

Đếm ACK tăng lecircn cho đoạn vừa được ACK

CongWin vagrave Threshold khocircng thay đổi

Transport Layer 3-97

TCP throughput

Throughout trung bigravenh của TCP biểu diễn qua kiacutech thước của sổ vagrave RTT Bỏ qua trạng thaacutei ldquoKhởi động chậmrdquo

Cho W lagrave kiacutech thước cửa sổ khi coacute mất maacutet xảy ra

Khi kiacutech thước cửa sổ = W lưu lượng = WRTT

Chỉ ngay sau khi mất maacutet cửa sổ giảm xuống = W2 lưu lượng = W2RTT

throughout trung bigravenh 075 WRTT

Transport Layer 3-98

TCP tương lai

Viacute dụ caacutec đoạn dagravei 1500 byte RTT 100ms lưu lượng 10 Gbps

Kiacutech thước cửa sổ yecircu cầu W = 83333 đoạn trecircn đường truyền

Lưu lượng trong caacutec trường hợp mất maacutet

L = 210-10

Phiecircn bản mới của TCP dagravenh cho nhu cầu tốc độ cao

LRTT

MSS221

Transport Layer 3-99

Mục tiecircu nếu K phiecircn lagravem việc TCP chia sẻ kết nối cổ chai của băng thocircng lagrave R mỗi phiecircn coacute tốc độ trung bigravenh lagrave RK

TCP kết nối 1

router cổ chaikhả năng R

TCP kết nối 2

TCP tiacutenh cocircng bằng

Transport Layer 3-100

Tại sao phải TCP cocircng bằng

2 phiecircn lagravem việc cạnh tranh nhau Additive tăng lưu lượng tăng multiplicative giảm lưu lượng tương xứng

R

R

chia sẻ băng thocircng bằng nhau

Connection 1 throughputConnect

ion 2

th

roughput

traacutenh tắc nghẽn additive tăng lecircnmất maacutet giảm cửa sổ bằng 12

traacutenh tắc nghẽn additive tăng lecircnmất maacutet giảm cửa sổ bằng 12

Transport Layer 3-101

TCP tiacutenh cocircng bằng (tt)

Tiacutenh cocircng bằng amp UDP nhiều ứng dụng

thường khocircng dugraveng TCP khocircng muốn tốc độ bị

điều tiết do điều khiển tắc nghẽn

Thay bằng dugraveng UDP truyền audiovideo với

tốc độ ổn định chịu được mất maacutet

Nghiecircn cứu giao thức thacircn thiện với TCP

Tiacutenh cocircng bằng amp caacutec kết nối TCP song song

khocircng coacute gigrave ngăn cản việc ứng dụng mở caacutec kết nối song song giữa 2 host

Trigravenh duyệt Web lagravem giống như thế

Viacute dụ tốc độ R hỗ trợ 9 kết nối ứng dụng mới yecircu cầu 1

TCP coacute tốc độ R10 ứng dụng mới yecircu cầu 11

TCP coacute tốc độ R2

Transport Layer 3-102

Mocirc higravenh trễ

Hỏi Mất bao lacircu để nhận 1 đối tượng từ Web server sau khi gửi yecircu cầu

Bỏ qua tắc nghẽn trễ bị ảnh hưởng bởi

thiết lập kết nối TCP trễ truyền dữ liệu khởi động chậm

Notation caacutec giả định Giả sử một kết nối giữa

client vagrave server coacute tốc độ R

S MSS (bits) O kiacutech thước đối tượng

(bits) khocircng truyền lại (khocircng

mất maacutet khocircng hỏng)

Kiacutech thước cửa sổ Giả định 1 cửa sổ tắc

nghẽn cố định coacute W đoạn Sau đoacute cửa sổ thay đổi

mocirc higravenh khởi động chậm

Transport Layer 3-103

Cửa sổ tắc nghẽn cố định (1)

Trường hợp đầu tiecircnWSR gt RTT + SR cho

đoạn đầu tiecircn trong cửa sổ trả về trước khi cửa sổ dữ liệu gửi ACK

trễ = 2RTT + OR

Transport Layer 3-104

Cửa sổ tắc nghẽn cố định (2)

Trường hợp thứ hai WSR lt RTT + SR sent

chờ cho ACK sau khi gửi dữ liệu

trễ = 2RTT + OR+ (K-1)[SR + RTT - WSR]

Transport Layer 3-105

TCP Mocirc higravenh trễ Khởi động chậm (1)

Bacircy giờ giả sử kiacutech thước cửa sổ tăng lecircn tugravey theo quaacute trigravenh khởi động chậm

Độ trễ của một đối tượng sẽ lagrave

R

S

R

SRTTP

R

ORTTLatency P )12(2

trong đoacute P lagrave số lần TCP rảnh ở tại server

1min KQP

- trong đoacute Q lagrave số lần server rảnh nếu đối tượng đatilde khởi tạo kiacutech thước

- vagrave K lagrave số lượng cửa sổ bao trugravem đối tượng

Transport Layer 3-106

TCP Mocirc higravenh trễ Khởi động chậm (2)

RTT

initia te TCPconnection

requestobject

first w indow= S R

second w indow= 2S R

third w indow= 4S R

fourth w indow= 8S R

com pletetransm issionobject

delivered

tim e atc lient

tim e atserver

Viacute dụbull OS = 15 đoạnbull K = 4 cửa sổbull Q = 2bull P = minK-1Q = 2

Server rảnh P=2 lần

Caacutec thagravenh phần trễbull 2 RTT dagravenh cho thiết lập kết nối vagrave yecircu cầubull OR để truyền đối tượngbullthời gian server rảnh bởi vigrave khởi động chậm

Server rảnh P = minK-1Q lần

Transport Layer 3-107

TCP Mocirc higravenh trễ(3)

R

S

R

SRTTPRTT

R

O

R

SRTT

R

SRTT

R

O

idleTimeRTTR

O

P

kP

k

P

pp

)12(][2

]2[2

2delay

1

1

1

th window after the timeidle 2 1 kR

SRTT

R

S k

ementacknowledg receivesserver until

segment send tostartsserver when from time RTTR

S

window kth the transmit totime2 1

R

Sk

RTT

initia te TCPconnection

requestobject

first w indow= S R

second w indow= 2S R

third w indow= 4S R

fourth w indow= 8S R

com pletetransm issionobject

delivered

tim e atc lient

tim e atserver

Transport Layer 3-108

TCP Mocirc higravenh trễ (4)

)1(log

)1(logmin

12min

222min

222min

2

2

110

110

S

OS

Okk

S

Ok

SOk

OSSSkK

k

k

k

caacutech tiacutenh toaacuten Q tương tự (xem HW)

K = số lượng cửa sổ bao trugravem đối tượngLagravem thế nagraveo tiacutenh được K

Transport Layer 3-109

HTTP Mocirc higravenh Giả sử trang Web chứa

1 trang HTML (kiacutech thước O bits) M higravenh ảnh (mỗi caacutei kiacutech thướcO bits)

HTTP khocircng bền vững M+1 TCP kết nối Thời gian đaacutep ứng = (M+1)OR + (M+1)2RTT + tổng số thời

gian rảnh HTTP bền vững

2 RTT để yecircu cầu vagrave nhận file HTML 1 RTT để yecircu cầu vagrave nhận M higravenh ảnh Thời gian đaacutep ứng = (M+1)OR + 3RTT + tổng số thời gian

rảnh HTTP khocircng bền vững với X kết nối song song

Giả sử MX lagrave số nguyecircn 1 TCP kết nối cho file MX thiết lập caacutec kết nối song song cho caacutec higravenh ảnh Thời gian đaacutep ứng = (M+1)OR + (MX + 1)2RTT + tổng số

thời gian rảnh

Transport Layer 3-110

02468

101214161820

28Kbps

100Kbps

1Mbps

10Mbps

non-persistent

persistent

parallel non-persistent

HTTP thời gian đaacutep ứng (giacircy)RTT = 100 msec O = 5 Kbytes M=10 vagrave X=5

Với băng thocircng thấp thời gian kết nối amp đaacutep ứng trội hơn thời gian truyền

Caacutec kết nối bền vững chỉ cho sự cải thiện khocircng đaacuteng kể trecircn caacutec kết nối song song

Transport Layer 3-111

0

10

20

30

40

50

60

70

28Kbps

100Kbps

1Mbps

10Mbps

non-persistent

persistent

parallel non-persistent

HTTP thời gian đaacutep ứng (giacircy)

RTT =1 sec O = 5 Kbytes M=10 and X=5

Với RTT lớn hơn thời gian đaacutep ứng trội hơn thời gian trễ chờ thiết lập kết nốiTCP amp khởi động chậm Caacutec kết nối bền vững bacircy giờ cho thấy cải thiện rotilde rệt đặc biệtvới caacutec mạng băng thocircng cao

Transport Layer 3-112

Chương 3 Tổng kết caacutec nguyecircn lyacute của caacutec

dịch vụ lớp transport multiplexing

demultiplexing truyền dữ liệu tin cậy điều khiển luồng điều khiển tắc nghẽn

khởi tạo vagrave hiện thực trong Internet UDP TCP

Tiếp theo nghiecircn cứu xong

caacutec vấn đề ldquongoagravei biecircnrdquo (caacutec lớp application transport)

chuẩn bị vagraveo phần ldquolotildeirdquo của mạng

  • Slide 1
  • Chương 3 Lớp Transport
  • Chương 3 Nội dung trigravenh bagravey
  • Caacutec dịch vụ vagrave giao thức Transport
  • Lớp Transport với lớp network
  • Caacutec giao thức lớp transport trecircn Internet
  • Slide 7
  • Multiplexingdemultiplexing
  • Demultiplexing lagravem việc như thế nagraveo
  • Demultiplexing khocircng kết nối
  • Demultiplexing khocircng kết nối (tiếp)
  • Demultiplexing hướng kết nối
  • Demultiplexing hướng kết nối (tiếp)
  • Demultiplexing hướng kết nối Threaded Web Server
  • Slide 15
  • UDP User Datagram Protocol [RFC 768]
  • UDP (tt)
  • UDP checksum
  • Viacute dụ Checksum
  • Slide 20
  • Caacutec nguyecircn lyacute truyền dữ liệu tin cậy
  • Slide 22
  • Slide 23
  • Truyền dữ liệu tin cậy
  • Slide 25
  • Rdt10 truyền dữ liệu tin cậy trecircn 1 kecircnh truyền tin cậy
  • Rdt20 kecircnh với caacutec lỗi
  • rdt20 đặc tả FSM
  • rdt20 hoạt động khi khocircng lỗi
  • rdt20 hoạt động khi coacute lỗi
  • rdt20 coacute lỗ hổng nghiecircm trọng
  • rdt21 người gửi quản lyacute caacutec ACKNAK bị hỏng
  • Slide 33
  • rdt21 thảo luận
  • rdt22 một giao thức khocircng cần NAK
  • rdt22 gửi nhận caacutec mảnh
  • rdt30 caacutec kecircnh với lỗi vagrave mất maacutet
  • rdt30 gửi
  • hagravenh động của rdt30
  • Slide 40
  • Hiệu suất của rdt30
  • rdt30 hoạt động dừng-vagrave-chờ
  • Caacutec giao thức Pipelined
  • Pipelining độ khả dụng tăng
  • Go-Back-N
  • GBN becircn gửi mở rộng FSM
  • GBN becircn nhận mở rộng FSM
  • GBN hoạt động
  • Lặp coacute lựa chọn
  • Lặp coacute lựa chọn caacutec cửa sổ gửi nhận
  • Slide 51
  • Hoạt động của lặp coacute lựa chọn
  • Lặp coacute lựa chọn tigravenh trạng khoacute giải quyết
  • Slide 54
  • TCP Tổng quan RFCs 793 1122 1323 2018 2581
  • TCP cấu truacutec đoạn
  • Caacutec số thứ tự TCP vagrave ACK
  • TCP Round Trip Time vagraveTimeout
  • TCP Round Trip Time vagrave Timeout
  • Viacute dụ đaacutenh giaacute RTT
  • Slide 61
  • TCP truyền dữ liệu tin cậy
  • TCP caacutec sự kiện
  • TCP becircn gửi (đơn giản)
  • TCP caacutec tigravenh huống truyền lại
  • TCP caacutec tigravenh huống truyền lại (tt)
  • TCP sinh ra ACK [RFC 1122 RFC 2581]
  • Truyền lại nhanh
  • Giải thuật truyền lại nhanh
  • Slide 70
  • TCP điều khiển luồng
  • TCP điều khiển luồng caacutech lagravem
  • Slide 73
  • TCP quản lyacute kết nối
  • TCP quản lyacute kết nối (tt)
  • Slide 76
  • Slide 77
  • Slide 78
  • Caacutec nguyecircn lyacute điều khiển tắc nghẽn
  • Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 1
  • Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 2
  • Slide 82
  • Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 3
  • Slide 84
  • Caacutec caacutech tiếp cận đối với điều khiển tắc nghẽn
  • Viacute dụ điều khiển tắc nghẽn ATM ABR
  • Slide 87
  • Slide 88
  • TCP điều khiển tắc nghẽn additive tăng lecircn multiplicative giảm xuống
  • TCP điều khiển tắc nghẽn chi tiết
  • TCP khởi động chậm
  • TCP khởi động chậm (tt)
  • Tinh chế
  • Tinh chế nhận biết mất maacutet
  • Tổng kết TCP điều khiển tắc nghẽn
  • TCP điều khiển tắc nghẽn becircn gửi
  • TCP throughput
  • TCP tương lai
  • TCP tiacutenh cocircng bằng
  • Tại sao phải TCP cocircng bằng
  • TCP tiacutenh cocircng bằng (tt)
  • Mocirc higravenh trễ
  • Cửa sổ tắc nghẽn cố định (1)
  • Cửa sổ tắc nghẽn cố định (2)
  • TCP Mocirc higravenh trễ Khởi động chậm (1)
  • TCP Mocirc higravenh trễ Khởi động chậm (2)
  • TCP Mocirc higravenh trễ(3)
  • TCP Mocirc higravenh trễ (4)
  • HTTP Mocirc higravenh
  • Slide 110
  • Slide 111
  • Chương 3 Tổng kết

Transport Layer 3-67

TCP sinh ra ACK [RFC 1122 RFC 2581]

Sự kiện tại becircn nhận

Đoạn đến với đuacuteng số thứ tự mong muốn Tất cả dữ liệu đếnđatilde được ACK

Đoạn đến với đuacuteng số thứ tự mong muốn Một đoạn khaacutec đangchờ ACK

Caacutec đoạn đến khocircng thứ tựlớn hơn số thứ tự đoạn mong muốnCoacute khoảng trống

Đoạn đếnlấp đầy từng phần hoặc toagraven bộkhoảng trống

TCP becircn nhận hagravenh động

ACK trễ Chờ đến 500mscho đoạn kế tiếp Nếu khocircng coacute đoạnkế tiếp gửi ACK

Gửi ngay một ACK tiacutech lũy chấp nhậncho cả caacutec đoạn theo thứ tự

Gửi ngay ACK trugraveng lặp chỉ thị số thứ tựđoạn của byte kế tiếp đang mong chờ

Gửi ngay ACK với điều kiện lagrave đoạnbắt đầu ngay điểm coacute khoảng trống

Transport Layer 3-68

Truyền lại nhanh

Chu kỳ Time-out thường tương đối dagravei độ trễ dagravei trước khi gửi

lại goacutei đatilde mất

Xaacutec nhận caacutec đoạn đatilde mất bằng caacutec ACK trugraveng lặp becircn gửi thường gửi

nhiều đoạn song song Nếu đoạn bị mất sẽ

xảy ra tigravenh trạng giống như nhiều ACK trugraveng nhau

Nếu becircn gửi nhận 3 ACK của cugraveng một dữ liệu noacute cho lagrave đoạn sau dữ liệu đatilde ACK bị mất Truyền lại nhanh gửi

lại đoạn trước khi bộ định thigrave hết hạn

Transport Layer 3-69

sự kiện ACK đatilde nhận với trường lagrave y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer else increment count of dup ACKs received for y if (count of dup ACKs received for y = 3) resend segment with sequence number y

Giải thuật truyền lại nhanh

một ACK trugraveng lặp cho đoạn đatilde được ACK

Truyền lại nhanh

Transport Layer 3-70

Chương 3 Nội dung trigravenh bagravey

31 Caacutec dịch vụ lớp Transport

32 Multiplexing vagrave demultiplexing

33 Vận chuyển khocircng kết nối UDP

34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy

35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối

36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn

37 Điều khiển tắc nghẽn TCP

Transport Layer 3-71

TCP điều khiển luồng

becircn nhận của kết nối TCP coacute một bộ đệm nhận

dịch vụ so trugraveng tốc độ so trugraveng tốc độ gửi với tốc độ nhận của ứng dụng

tiến trigravenh ứng dụng coacute thể chậm tại luacutec đọc bộ đệm

becircn gửi sẽ khocircng lagravem tragraven bộ đệm vigrave truyền quaacute nhiều vagrave

quaacute nhanh

điều khiển luồng

Transport Layer 3-72

TCP điều khiển luồng caacutech lagravem

(Giả sử becircn nhận TCP loại bỏ caacutec đoạn khocircng coacute thứ tự)

dự phograveng trong bộ đệm= RcvWindow

= RcvBuffer-[LastByteRcvd - LastByteRead]

Becircn nhận thocircng baacuteo khoảng dự trữ nhờ giaacute trị RcvWindow trong caacutec đoạn

Becircn gửi hạn chế dữ liệu khocircng được ACK vagraveo RcvWindow bảo đảm bộ đệm nhận

khocircng tragraven

Transport Layer 3-73

Chương 3 Nội dung trigravenh bagravey

31 Caacutec dịch vụ lớp Transport

32 Multiplexing vagrave demultiplexing

33 Vận chuyển khocircng kết nối UDP

34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy

35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối

36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn

37 Điều khiển tắc nghẽn TCP

Transport Layer 3-74

TCP quản lyacute kết nối

Chuacute yacute Becircn gửi vagrave becircn nhận TCP thiết lập ldquokết nốirdquo trước khi trao đổi dữ liệu

khởi tạo caacutec biến TCP caacutec số thứ tự đoạn thocircng tin caacutec bộ đệm điều

khiển luồng (như RcvWindow)

client người khởi xướng kết nối

Socket clientSocket = new Socket(hostnameport

number) server được tiếp xuacutec bởi

client Socket connectionSocket =

welcomeSocketaccept()

3 phương phaacutep bắt tay

Bước 1 client host gửi đoạnTCP SYN đến server xaacutec định số thứ tự khởi đầu khocircng phải dữ liệu

Bước 2 server host nhận SYN trả lời với đoạn SYNACK

server cấp phaacutet caacutec bộ đệm

xaacutec định số thứ tự khởi đầuBước 3 client nhận SYNACK trả

lời với đoạn ACK (coacute thể chứa dữ liệu)

Transport Layer 3-75

TCP quản lyacute kết nối (tt)

Đoacuteng một kết nối

client đoacuteng socket clientSocketclose()

Bước 1 client gửi đoạn điều khiển TCP FIN đến server

Bước 2 server nhận FIN trả lời với ACK Đoacuteng kết nối gửi FIN

client

FIN

server

ACK

ACK

FIN

đoacuteng

đoacuteng

đatilde đoacutengthời g

ian c

hờ

Transport Layer 3-76

TCP quản lyacute kết nối (tt)

Bước 3 client nhận FIN trả lời với ACK

Trong khoảng ldquothời gian chờrdquo ndash sẽ phản hồi với ACK để nhận caacutec FIN

Bước 4 server nhận ACK Kết nối đatilde đoacuteng

Chuacute yacute với một sửa đổi nhỏ coacute thể quản lyacute nhiều FIN đồng thời

client

FIN

server

ACK

ACK

FIN

đang đoacuteng

đang đoacuteng

đatilde đoacuteng

thời g

ian c

hờ

đatilde đoacuteng

Transport Layer 3-77

TCP quản lyacute kết nối (tt)

chu kỳ sống củaTCP client

chu kỳ sống củaTCP server

Transport Layer 3-78

Chương 3 Nội dung trigravenh bagravey

31 Caacutec dịch vụ lớp Transport

32 Multiplexing vagrave demultiplexing

33 Vận chuyển khocircng kết nối UDP

34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy

35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối

36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn

37 Điều khiển tắc nghẽn TCP

Transport Layer 3-79

Caacutec nguyecircn lyacute điều khiển tắc nghẽn

Tắc nghẽn ldquoquaacute nhiều nguồn gửi quaacute nhanh vagrave quaacute nhiều

dữ liệu đến mạngrdquo khaacutec với điều khiển luồng caacutec biểu hiện

caacutec goacutei bị mất (tragraven bộ đệm tại caacutec router) caacutec độ trễ quaacute dagravei (xếp hagraveng trong bộ đệm

của router) lagrave 1 trong 10 vấn đề nan giải nhất

Transport Layer 3-80

Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 1

2 gửi 2 nhận 1 router caacutec bộ

đệm khocircng giới hạn

khocircng coacute truyền lại

caacutec độ trễ lớn hơn khi tắc nghẽn

năng suất coacute thể đạt tối đa

unlimited shared output link buffers

Host Ain original data

Host B

out

Transport Layer 3-81

Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 2

1 router caacutec bộ đệm coacute giới hạn becircn gửi truyền lại caacutec goacutei đatilde mất

chia sẻ vocirc hạncaacutec bộ đệm ouput

Host A in dữ liệu gốc

Host B

out

in dữ liệu gốc cugraveng với dữ liệu truyền lại

Transport Layer 3-82

Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 2 luocircn luocircn

truyền lại ldquohoagraven toagravenrdquo chỉ khi mất maacutet

truyền lại vigrave trễ (khocircng mất) lagravem cho lớn hơn với cugraveng

in

out

=

in

out

gt

in

out

ldquocaacutec chi phiacuterdquo của tắc nghẽn nhiều việc (truyền lại) caacutec truyền lại khocircng cần thiết liecircn kết nhiều bản sao của

goacutei

R2

R2in

ou

t

b

R2

R2in

ou

t

a

R2

R2in

ou

t

c

R4

R3

Transport Layer 3-83

Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 3 4 người gửi caacutec đường qua nhiều hop timeouttruyền lại

in

Hỏi điều gigrave xảy ra nếu vagrave tăng lecircn

in

chia sẻ vocirc hạncaacutec bộ đệm ouput

Host Ain dữ liệu gốc

Host B

out

in dữ liệu gốc cugraveng với dữ liệu truyền lại

Transport Layer 3-84

Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 3

ldquochi phiacuterdquo khaacutec của tắc nghẽn khi caacutec goacutei bị bỏ bất kỳ ldquokhả năng truyền

upstream dugraveng cho goacutei đoacute sẽ bị latildeng phiacuterdquo

Host A

Host B

o

u

t

Transport Layer 3-85

Caacutec caacutech tiếp cận đối với điều khiển tắc nghẽn

điều khiển tắc nghẽn end-end

khocircng coacute phản hồi rotilde ragraveng từ mạng

tắc nghẽn được suy ra từ việc quan saacutet caacutec hệ thống đầu cuối coacute mất maacutet trễ

tiếp cận được quản lyacute bởi TCP

điều khiển tắc nghẽn coacute sự hỗ trợ của mạng

caacutec router cung cấp phản hồi về caacutec hệ thống đầu cuối 1 bit duy nhất chỉ thị

tắc nghẽn (SNA DECbit TCPIP ECN ATM)

tốc độ sẽ gửi được xaacutec định rotilde ragraveng

2 caacutech

Transport Layer 3-86

Viacute dụ điều khiển tắc nghẽn ATM ABR

ABR tốc độ bit sẵn sagraveng

ldquodịch vụ mềm dẻordquo nếu đường gửi ldquochưa

hếtrdquo becircn gửi sẽ dugraveng

băng thocircng sẵn sagraveng nếu đường gửi tắc

nghẽn becircn gửi điều tiết với

tốc độ tối thiểu

RM (resource management)

gửi bởi becircn gửi rải raacutec với caacutec ocirc dữ liệu

caacutec bit trong ocirc thiết lập bởi caacutec switch bit NI khocircng tăng tốc độ

(tắc nghẽn nhẹ) bit CI tắc nghẽn rotilde rệt

Caacutec ocirc RM được trả về becircn gửi từ becircn nhận với nguyecircn vẹn caacutec bit

Transport Layer 3-87

Viacute dụ điều khiển tắc nghẽn ATM ABR

trường 2-byte ER trong ocirc RM switch đatilde tắc nghẽn coacute thể coacute giaacute trị ER thấp hơn trong ocirc tốc độ gửi do đoacute coacute thể được hỗ trợ tối đa trecircn đường

EFCI bit trong caacutec ocirc dữ liệu được cagravei giaacute trị 1 trong switch đatilde tắc nghẽn nếu ocirc dữ liệu đứng trước ocirc RM coacute cagravei EFCI becircn gửi sẽ cagravei

bit CI trong ocirc RM trả về

Transport Layer 3-88

Chương 3 Nội dung trigravenh bagravey

31 Caacutec dịch vụ lớp Transport

32 Multiplexing vagrave demultiplexing

33 Vận chuyển khocircng kết nối UDP

34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy

35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối

36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn

37 Điều khiển tắc nghẽn TCP

Transport Layer 3-89

TCP điều khiển tắc nghẽn additive tăng lecircn multiplicative giảm xuống

8 Kbytes

16 Kbytes

24 Kbytes

time

congestionwindow

Caacutech tiếp cận tăng tốc độ truyền (kiacutech thước cửa sổ) tigravem khả năng băng thocircng coacute thể cho đến khi coacute mất maacutet xảy ra additive tăng lecircn tăng CongWin bởi 1 MSS

mỗi RTT cho đến khi coacute mất maacutet xảy ra multiplicative giảm xuống bỏ CongWin trong

nửa giai đoạn sau khi mất maacutet

timekiacutech

thư

ớc

cửa

sổ

tắc

nghẽ

n

Tigravem kiếm băng thocircng

Transport Layer 3-90

TCP điều khiển tắc nghẽn chi tiết

becircn gửi hạn chế việc truyền LastByteSent-LastByteAcked

CongWin Cocircng thức

CongWin thay đổi chức năng lagrave nhận biết tắc nghẽn trecircn mạng

Lagravem thế nagraveo becircn gửi nhận biết tắc nghẽn

mất maacutet xảy ra = timeout hoặc 3 ack trugraveng lặp

becircn gửi giảm tốc độ (CongWin) sau khi mất maacutet xảy ra

3 cơ chế AIMD khởi động chậm thận trọng sau khi coacute

caacutec sự kiện timeout

tốc độ = CongWin

RTT Bytess

Transport Layer 3-91

TCP khởi động chậm

Khi kết nối bắt đầu CongWin = 1 MSS Viacute dụ MSS = 500 bytes

amp RTT = 200 ms tốc độ khởi tạo = 20

kbps

băng thocircng sẵn sagraveng coacute thể gtgt MSSRTT mong muốn nhanh

choacuteng tăng tốc lecircn tốc độ coacute thể đaacutep ứng

Khi kết nối bắt đầu tăng tốc lecircn rất nhanh cho đến khi sự cố mất maacutet xảy ra đầu tiecircn

Transport Layer 3-92

TCP khởi động chậm (tt)

Khi kết nối bắt đầu tăng tốc lecircn rất nhanh cho đến khi sự cố mất maacutet xảy ra đầu tiecircn nhacircn đocirci CongWin mỗi

RTT hoagraven thagravenh nhờ tăng CongWin ứng với mỗi ACK đatilde nhận

Tổng kết tốc độ khởi đầu lagrave chậm nhưng sau đoacute tăng tốc rất nhanh

Host A

1 đoạn

RTT

Host B

thời gian

2 đoạn

4 đoạn

Transport Layer 3-93

Tinh chếHỏi Khi nagraveo việc tăng

tốc trở thagravenh tuyến tiacutenh

Trả lời Khi CongWin đạt đến 12 giaacute trị của noacute trước khi timeout

Hiện thực Ngưỡng thay đổi Tại thời điểm coacute sự cố

mất maacutet ngưỡng được cagravei giaacute trị bằng frac12 của CongWin ngay trước đoacute

Transport Layer 3-94

Tinh chế nhận biết mất maacutet

Sau 3 ACK trugraveng lặp CongWin sẽ giảm 12 kiacutech thước cửa sổ

tăng tuyến tiacutenh nhưng sau sự cố

timeout CongWin thay giaacute trị

bằng 1 MSS kiacutech thước cửa sổ

tăng cấp lũy thừa khi đến một ngưỡng

thigrave tăng tuyến tiacutenh

3 ACK trugraveng nhau chỉ ra khả năng truyền của mạng timeout chỉ thị ldquonhiều cảnh baacuteordquo về tigravenh huống tắc nghẽn

Nguyecircn lyacute

Transport Layer 3-95

Tổng kết TCP điều khiển tắc nghẽn

Khi CongWin dưới Threshold becircn gửi đang trong giai đoạn khởi động chậm kiacutech thước cửa sổ tăng nhanh theo cấp lũy thừa

Khi CongWin trecircn Threshold becircn gửi đang trong giai đoạn traacutenh tắc nghẽn kiacutech thước cửa sổ tăng nhanh theo cấp tuyến tiacutenh

Khi coacute 3 ACK trugraveng lặp xảy ra Threshold = CongWin2 vagrave CongWin = Threshold

Khi timeout xảy ra Threshold = CongWin2 vagrave CongWin = 1 MSS

Transport Layer 3-96

TCP điều khiển tắc nghẽn becircn gửi

Trạng thaacutei Sự kiện TCP becircn gửi hagravenh động Diễn giải

Slow Start (SS)-Khởi động chậm

ACK baacuteo nhận cho dữ liệu chưa ACK trước đoacute

CongWin = CongWin + MSS If (CongWin gt Threshold) cagravei đặt trạng thaacutei ldquoTraacutenh tắc nghẽnrdquo

Hậu quả lagravem tăng gấp đocirci CongWin mỗi RTT

CongestionAvoidance (CA) ndashTraacutenh tắc nghẽn

ACK baacuteo nhận cho dữ liệu chưa ACK trước đoacute

CongWin = CongWin+MSS (MSSCongWin)

Additive tăng lecircn lagravem tăng CongWin lecircn 1 MSS mỗi RTT

SS hoặc CA Sự cố mất maacutet xảy ra khi thấy coacute 3 ACK trugraveng lặp

Threshold = CongWin2 CongWin = Thresholdcagravei đặt trạng thaacutei ldquoTraacutenh tắc nghẽnrdquo

Khocirci phục nhanh hiện thực giảm xuống multiplicative CongWin sẽ khocircng giảm xuống dưới 1 MSS

SS hoặc CA Timeout Threshold = CongWin2 CongWin = 1 MSScagravei đặt trạng thaacutei ldquoKhởi động chậmrdquo

Vagraveo chế độ ldquoKhởi động chậmrdquo

SS hoặc CA ACK trugraveng lặp

Đếm ACK tăng lecircn cho đoạn vừa được ACK

CongWin vagrave Threshold khocircng thay đổi

Transport Layer 3-97

TCP throughput

Throughout trung bigravenh của TCP biểu diễn qua kiacutech thước của sổ vagrave RTT Bỏ qua trạng thaacutei ldquoKhởi động chậmrdquo

Cho W lagrave kiacutech thước cửa sổ khi coacute mất maacutet xảy ra

Khi kiacutech thước cửa sổ = W lưu lượng = WRTT

Chỉ ngay sau khi mất maacutet cửa sổ giảm xuống = W2 lưu lượng = W2RTT

throughout trung bigravenh 075 WRTT

Transport Layer 3-98

TCP tương lai

Viacute dụ caacutec đoạn dagravei 1500 byte RTT 100ms lưu lượng 10 Gbps

Kiacutech thước cửa sổ yecircu cầu W = 83333 đoạn trecircn đường truyền

Lưu lượng trong caacutec trường hợp mất maacutet

L = 210-10

Phiecircn bản mới của TCP dagravenh cho nhu cầu tốc độ cao

LRTT

MSS221

Transport Layer 3-99

Mục tiecircu nếu K phiecircn lagravem việc TCP chia sẻ kết nối cổ chai của băng thocircng lagrave R mỗi phiecircn coacute tốc độ trung bigravenh lagrave RK

TCP kết nối 1

router cổ chaikhả năng R

TCP kết nối 2

TCP tiacutenh cocircng bằng

Transport Layer 3-100

Tại sao phải TCP cocircng bằng

2 phiecircn lagravem việc cạnh tranh nhau Additive tăng lưu lượng tăng multiplicative giảm lưu lượng tương xứng

R

R

chia sẻ băng thocircng bằng nhau

Connection 1 throughputConnect

ion 2

th

roughput

traacutenh tắc nghẽn additive tăng lecircnmất maacutet giảm cửa sổ bằng 12

traacutenh tắc nghẽn additive tăng lecircnmất maacutet giảm cửa sổ bằng 12

Transport Layer 3-101

TCP tiacutenh cocircng bằng (tt)

Tiacutenh cocircng bằng amp UDP nhiều ứng dụng

thường khocircng dugraveng TCP khocircng muốn tốc độ bị

điều tiết do điều khiển tắc nghẽn

Thay bằng dugraveng UDP truyền audiovideo với

tốc độ ổn định chịu được mất maacutet

Nghiecircn cứu giao thức thacircn thiện với TCP

Tiacutenh cocircng bằng amp caacutec kết nối TCP song song

khocircng coacute gigrave ngăn cản việc ứng dụng mở caacutec kết nối song song giữa 2 host

Trigravenh duyệt Web lagravem giống như thế

Viacute dụ tốc độ R hỗ trợ 9 kết nối ứng dụng mới yecircu cầu 1

TCP coacute tốc độ R10 ứng dụng mới yecircu cầu 11

TCP coacute tốc độ R2

Transport Layer 3-102

Mocirc higravenh trễ

Hỏi Mất bao lacircu để nhận 1 đối tượng từ Web server sau khi gửi yecircu cầu

Bỏ qua tắc nghẽn trễ bị ảnh hưởng bởi

thiết lập kết nối TCP trễ truyền dữ liệu khởi động chậm

Notation caacutec giả định Giả sử một kết nối giữa

client vagrave server coacute tốc độ R

S MSS (bits) O kiacutech thước đối tượng

(bits) khocircng truyền lại (khocircng

mất maacutet khocircng hỏng)

Kiacutech thước cửa sổ Giả định 1 cửa sổ tắc

nghẽn cố định coacute W đoạn Sau đoacute cửa sổ thay đổi

mocirc higravenh khởi động chậm

Transport Layer 3-103

Cửa sổ tắc nghẽn cố định (1)

Trường hợp đầu tiecircnWSR gt RTT + SR cho

đoạn đầu tiecircn trong cửa sổ trả về trước khi cửa sổ dữ liệu gửi ACK

trễ = 2RTT + OR

Transport Layer 3-104

Cửa sổ tắc nghẽn cố định (2)

Trường hợp thứ hai WSR lt RTT + SR sent

chờ cho ACK sau khi gửi dữ liệu

trễ = 2RTT + OR+ (K-1)[SR + RTT - WSR]

Transport Layer 3-105

TCP Mocirc higravenh trễ Khởi động chậm (1)

Bacircy giờ giả sử kiacutech thước cửa sổ tăng lecircn tugravey theo quaacute trigravenh khởi động chậm

Độ trễ của một đối tượng sẽ lagrave

R

S

R

SRTTP

R

ORTTLatency P )12(2

trong đoacute P lagrave số lần TCP rảnh ở tại server

1min KQP

- trong đoacute Q lagrave số lần server rảnh nếu đối tượng đatilde khởi tạo kiacutech thước

- vagrave K lagrave số lượng cửa sổ bao trugravem đối tượng

Transport Layer 3-106

TCP Mocirc higravenh trễ Khởi động chậm (2)

RTT

initia te TCPconnection

requestobject

first w indow= S R

second w indow= 2S R

third w indow= 4S R

fourth w indow= 8S R

com pletetransm issionobject

delivered

tim e atc lient

tim e atserver

Viacute dụbull OS = 15 đoạnbull K = 4 cửa sổbull Q = 2bull P = minK-1Q = 2

Server rảnh P=2 lần

Caacutec thagravenh phần trễbull 2 RTT dagravenh cho thiết lập kết nối vagrave yecircu cầubull OR để truyền đối tượngbullthời gian server rảnh bởi vigrave khởi động chậm

Server rảnh P = minK-1Q lần

Transport Layer 3-107

TCP Mocirc higravenh trễ(3)

R

S

R

SRTTPRTT

R

O

R

SRTT

R

SRTT

R

O

idleTimeRTTR

O

P

kP

k

P

pp

)12(][2

]2[2

2delay

1

1

1

th window after the timeidle 2 1 kR

SRTT

R

S k

ementacknowledg receivesserver until

segment send tostartsserver when from time RTTR

S

window kth the transmit totime2 1

R

Sk

RTT

initia te TCPconnection

requestobject

first w indow= S R

second w indow= 2S R

third w indow= 4S R

fourth w indow= 8S R

com pletetransm issionobject

delivered

tim e atc lient

tim e atserver

Transport Layer 3-108

TCP Mocirc higravenh trễ (4)

)1(log

)1(logmin

12min

222min

222min

2

2

110

110

S

OS

Okk

S

Ok

SOk

OSSSkK

k

k

k

caacutech tiacutenh toaacuten Q tương tự (xem HW)

K = số lượng cửa sổ bao trugravem đối tượngLagravem thế nagraveo tiacutenh được K

Transport Layer 3-109

HTTP Mocirc higravenh Giả sử trang Web chứa

1 trang HTML (kiacutech thước O bits) M higravenh ảnh (mỗi caacutei kiacutech thướcO bits)

HTTP khocircng bền vững M+1 TCP kết nối Thời gian đaacutep ứng = (M+1)OR + (M+1)2RTT + tổng số thời

gian rảnh HTTP bền vững

2 RTT để yecircu cầu vagrave nhận file HTML 1 RTT để yecircu cầu vagrave nhận M higravenh ảnh Thời gian đaacutep ứng = (M+1)OR + 3RTT + tổng số thời gian

rảnh HTTP khocircng bền vững với X kết nối song song

Giả sử MX lagrave số nguyecircn 1 TCP kết nối cho file MX thiết lập caacutec kết nối song song cho caacutec higravenh ảnh Thời gian đaacutep ứng = (M+1)OR + (MX + 1)2RTT + tổng số

thời gian rảnh

Transport Layer 3-110

02468

101214161820

28Kbps

100Kbps

1Mbps

10Mbps

non-persistent

persistent

parallel non-persistent

HTTP thời gian đaacutep ứng (giacircy)RTT = 100 msec O = 5 Kbytes M=10 vagrave X=5

Với băng thocircng thấp thời gian kết nối amp đaacutep ứng trội hơn thời gian truyền

Caacutec kết nối bền vững chỉ cho sự cải thiện khocircng đaacuteng kể trecircn caacutec kết nối song song

Transport Layer 3-111

0

10

20

30

40

50

60

70

28Kbps

100Kbps

1Mbps

10Mbps

non-persistent

persistent

parallel non-persistent

HTTP thời gian đaacutep ứng (giacircy)

RTT =1 sec O = 5 Kbytes M=10 and X=5

Với RTT lớn hơn thời gian đaacutep ứng trội hơn thời gian trễ chờ thiết lập kết nốiTCP amp khởi động chậm Caacutec kết nối bền vững bacircy giờ cho thấy cải thiện rotilde rệt đặc biệtvới caacutec mạng băng thocircng cao

Transport Layer 3-112

Chương 3 Tổng kết caacutec nguyecircn lyacute của caacutec

dịch vụ lớp transport multiplexing

demultiplexing truyền dữ liệu tin cậy điều khiển luồng điều khiển tắc nghẽn

khởi tạo vagrave hiện thực trong Internet UDP TCP

Tiếp theo nghiecircn cứu xong

caacutec vấn đề ldquongoagravei biecircnrdquo (caacutec lớp application transport)

chuẩn bị vagraveo phần ldquolotildeirdquo của mạng

  • Slide 1
  • Chương 3 Lớp Transport
  • Chương 3 Nội dung trigravenh bagravey
  • Caacutec dịch vụ vagrave giao thức Transport
  • Lớp Transport với lớp network
  • Caacutec giao thức lớp transport trecircn Internet
  • Slide 7
  • Multiplexingdemultiplexing
  • Demultiplexing lagravem việc như thế nagraveo
  • Demultiplexing khocircng kết nối
  • Demultiplexing khocircng kết nối (tiếp)
  • Demultiplexing hướng kết nối
  • Demultiplexing hướng kết nối (tiếp)
  • Demultiplexing hướng kết nối Threaded Web Server
  • Slide 15
  • UDP User Datagram Protocol [RFC 768]
  • UDP (tt)
  • UDP checksum
  • Viacute dụ Checksum
  • Slide 20
  • Caacutec nguyecircn lyacute truyền dữ liệu tin cậy
  • Slide 22
  • Slide 23
  • Truyền dữ liệu tin cậy
  • Slide 25
  • Rdt10 truyền dữ liệu tin cậy trecircn 1 kecircnh truyền tin cậy
  • Rdt20 kecircnh với caacutec lỗi
  • rdt20 đặc tả FSM
  • rdt20 hoạt động khi khocircng lỗi
  • rdt20 hoạt động khi coacute lỗi
  • rdt20 coacute lỗ hổng nghiecircm trọng
  • rdt21 người gửi quản lyacute caacutec ACKNAK bị hỏng
  • Slide 33
  • rdt21 thảo luận
  • rdt22 một giao thức khocircng cần NAK
  • rdt22 gửi nhận caacutec mảnh
  • rdt30 caacutec kecircnh với lỗi vagrave mất maacutet
  • rdt30 gửi
  • hagravenh động của rdt30
  • Slide 40
  • Hiệu suất của rdt30
  • rdt30 hoạt động dừng-vagrave-chờ
  • Caacutec giao thức Pipelined
  • Pipelining độ khả dụng tăng
  • Go-Back-N
  • GBN becircn gửi mở rộng FSM
  • GBN becircn nhận mở rộng FSM
  • GBN hoạt động
  • Lặp coacute lựa chọn
  • Lặp coacute lựa chọn caacutec cửa sổ gửi nhận
  • Slide 51
  • Hoạt động của lặp coacute lựa chọn
  • Lặp coacute lựa chọn tigravenh trạng khoacute giải quyết
  • Slide 54
  • TCP Tổng quan RFCs 793 1122 1323 2018 2581
  • TCP cấu truacutec đoạn
  • Caacutec số thứ tự TCP vagrave ACK
  • TCP Round Trip Time vagraveTimeout
  • TCP Round Trip Time vagrave Timeout
  • Viacute dụ đaacutenh giaacute RTT
  • Slide 61
  • TCP truyền dữ liệu tin cậy
  • TCP caacutec sự kiện
  • TCP becircn gửi (đơn giản)
  • TCP caacutec tigravenh huống truyền lại
  • TCP caacutec tigravenh huống truyền lại (tt)
  • TCP sinh ra ACK [RFC 1122 RFC 2581]
  • Truyền lại nhanh
  • Giải thuật truyền lại nhanh
  • Slide 70
  • TCP điều khiển luồng
  • TCP điều khiển luồng caacutech lagravem
  • Slide 73
  • TCP quản lyacute kết nối
  • TCP quản lyacute kết nối (tt)
  • Slide 76
  • Slide 77
  • Slide 78
  • Caacutec nguyecircn lyacute điều khiển tắc nghẽn
  • Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 1
  • Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 2
  • Slide 82
  • Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 3
  • Slide 84
  • Caacutec caacutech tiếp cận đối với điều khiển tắc nghẽn
  • Viacute dụ điều khiển tắc nghẽn ATM ABR
  • Slide 87
  • Slide 88
  • TCP điều khiển tắc nghẽn additive tăng lecircn multiplicative giảm xuống
  • TCP điều khiển tắc nghẽn chi tiết
  • TCP khởi động chậm
  • TCP khởi động chậm (tt)
  • Tinh chế
  • Tinh chế nhận biết mất maacutet
  • Tổng kết TCP điều khiển tắc nghẽn
  • TCP điều khiển tắc nghẽn becircn gửi
  • TCP throughput
  • TCP tương lai
  • TCP tiacutenh cocircng bằng
  • Tại sao phải TCP cocircng bằng
  • TCP tiacutenh cocircng bằng (tt)
  • Mocirc higravenh trễ
  • Cửa sổ tắc nghẽn cố định (1)
  • Cửa sổ tắc nghẽn cố định (2)
  • TCP Mocirc higravenh trễ Khởi động chậm (1)
  • TCP Mocirc higravenh trễ Khởi động chậm (2)
  • TCP Mocirc higravenh trễ(3)
  • TCP Mocirc higravenh trễ (4)
  • HTTP Mocirc higravenh
  • Slide 110
  • Slide 111
  • Chương 3 Tổng kết

Transport Layer 3-68

Truyền lại nhanh

Chu kỳ Time-out thường tương đối dagravei độ trễ dagravei trước khi gửi

lại goacutei đatilde mất

Xaacutec nhận caacutec đoạn đatilde mất bằng caacutec ACK trugraveng lặp becircn gửi thường gửi

nhiều đoạn song song Nếu đoạn bị mất sẽ

xảy ra tigravenh trạng giống như nhiều ACK trugraveng nhau

Nếu becircn gửi nhận 3 ACK của cugraveng một dữ liệu noacute cho lagrave đoạn sau dữ liệu đatilde ACK bị mất Truyền lại nhanh gửi

lại đoạn trước khi bộ định thigrave hết hạn

Transport Layer 3-69

sự kiện ACK đatilde nhận với trường lagrave y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer else increment count of dup ACKs received for y if (count of dup ACKs received for y = 3) resend segment with sequence number y

Giải thuật truyền lại nhanh

một ACK trugraveng lặp cho đoạn đatilde được ACK

Truyền lại nhanh

Transport Layer 3-70

Chương 3 Nội dung trigravenh bagravey

31 Caacutec dịch vụ lớp Transport

32 Multiplexing vagrave demultiplexing

33 Vận chuyển khocircng kết nối UDP

34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy

35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối

36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn

37 Điều khiển tắc nghẽn TCP

Transport Layer 3-71

TCP điều khiển luồng

becircn nhận của kết nối TCP coacute một bộ đệm nhận

dịch vụ so trugraveng tốc độ so trugraveng tốc độ gửi với tốc độ nhận của ứng dụng

tiến trigravenh ứng dụng coacute thể chậm tại luacutec đọc bộ đệm

becircn gửi sẽ khocircng lagravem tragraven bộ đệm vigrave truyền quaacute nhiều vagrave

quaacute nhanh

điều khiển luồng

Transport Layer 3-72

TCP điều khiển luồng caacutech lagravem

(Giả sử becircn nhận TCP loại bỏ caacutec đoạn khocircng coacute thứ tự)

dự phograveng trong bộ đệm= RcvWindow

= RcvBuffer-[LastByteRcvd - LastByteRead]

Becircn nhận thocircng baacuteo khoảng dự trữ nhờ giaacute trị RcvWindow trong caacutec đoạn

Becircn gửi hạn chế dữ liệu khocircng được ACK vagraveo RcvWindow bảo đảm bộ đệm nhận

khocircng tragraven

Transport Layer 3-73

Chương 3 Nội dung trigravenh bagravey

31 Caacutec dịch vụ lớp Transport

32 Multiplexing vagrave demultiplexing

33 Vận chuyển khocircng kết nối UDP

34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy

35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối

36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn

37 Điều khiển tắc nghẽn TCP

Transport Layer 3-74

TCP quản lyacute kết nối

Chuacute yacute Becircn gửi vagrave becircn nhận TCP thiết lập ldquokết nốirdquo trước khi trao đổi dữ liệu

khởi tạo caacutec biến TCP caacutec số thứ tự đoạn thocircng tin caacutec bộ đệm điều

khiển luồng (như RcvWindow)

client người khởi xướng kết nối

Socket clientSocket = new Socket(hostnameport

number) server được tiếp xuacutec bởi

client Socket connectionSocket =

welcomeSocketaccept()

3 phương phaacutep bắt tay

Bước 1 client host gửi đoạnTCP SYN đến server xaacutec định số thứ tự khởi đầu khocircng phải dữ liệu

Bước 2 server host nhận SYN trả lời với đoạn SYNACK

server cấp phaacutet caacutec bộ đệm

xaacutec định số thứ tự khởi đầuBước 3 client nhận SYNACK trả

lời với đoạn ACK (coacute thể chứa dữ liệu)

Transport Layer 3-75

TCP quản lyacute kết nối (tt)

Đoacuteng một kết nối

client đoacuteng socket clientSocketclose()

Bước 1 client gửi đoạn điều khiển TCP FIN đến server

Bước 2 server nhận FIN trả lời với ACK Đoacuteng kết nối gửi FIN

client

FIN

server

ACK

ACK

FIN

đoacuteng

đoacuteng

đatilde đoacutengthời g

ian c

hờ

Transport Layer 3-76

TCP quản lyacute kết nối (tt)

Bước 3 client nhận FIN trả lời với ACK

Trong khoảng ldquothời gian chờrdquo ndash sẽ phản hồi với ACK để nhận caacutec FIN

Bước 4 server nhận ACK Kết nối đatilde đoacuteng

Chuacute yacute với một sửa đổi nhỏ coacute thể quản lyacute nhiều FIN đồng thời

client

FIN

server

ACK

ACK

FIN

đang đoacuteng

đang đoacuteng

đatilde đoacuteng

thời g

ian c

hờ

đatilde đoacuteng

Transport Layer 3-77

TCP quản lyacute kết nối (tt)

chu kỳ sống củaTCP client

chu kỳ sống củaTCP server

Transport Layer 3-78

Chương 3 Nội dung trigravenh bagravey

31 Caacutec dịch vụ lớp Transport

32 Multiplexing vagrave demultiplexing

33 Vận chuyển khocircng kết nối UDP

34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy

35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối

36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn

37 Điều khiển tắc nghẽn TCP

Transport Layer 3-79

Caacutec nguyecircn lyacute điều khiển tắc nghẽn

Tắc nghẽn ldquoquaacute nhiều nguồn gửi quaacute nhanh vagrave quaacute nhiều

dữ liệu đến mạngrdquo khaacutec với điều khiển luồng caacutec biểu hiện

caacutec goacutei bị mất (tragraven bộ đệm tại caacutec router) caacutec độ trễ quaacute dagravei (xếp hagraveng trong bộ đệm

của router) lagrave 1 trong 10 vấn đề nan giải nhất

Transport Layer 3-80

Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 1

2 gửi 2 nhận 1 router caacutec bộ

đệm khocircng giới hạn

khocircng coacute truyền lại

caacutec độ trễ lớn hơn khi tắc nghẽn

năng suất coacute thể đạt tối đa

unlimited shared output link buffers

Host Ain original data

Host B

out

Transport Layer 3-81

Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 2

1 router caacutec bộ đệm coacute giới hạn becircn gửi truyền lại caacutec goacutei đatilde mất

chia sẻ vocirc hạncaacutec bộ đệm ouput

Host A in dữ liệu gốc

Host B

out

in dữ liệu gốc cugraveng với dữ liệu truyền lại

Transport Layer 3-82

Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 2 luocircn luocircn

truyền lại ldquohoagraven toagravenrdquo chỉ khi mất maacutet

truyền lại vigrave trễ (khocircng mất) lagravem cho lớn hơn với cugraveng

in

out

=

in

out

gt

in

out

ldquocaacutec chi phiacuterdquo của tắc nghẽn nhiều việc (truyền lại) caacutec truyền lại khocircng cần thiết liecircn kết nhiều bản sao của

goacutei

R2

R2in

ou

t

b

R2

R2in

ou

t

a

R2

R2in

ou

t

c

R4

R3

Transport Layer 3-83

Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 3 4 người gửi caacutec đường qua nhiều hop timeouttruyền lại

in

Hỏi điều gigrave xảy ra nếu vagrave tăng lecircn

in

chia sẻ vocirc hạncaacutec bộ đệm ouput

Host Ain dữ liệu gốc

Host B

out

in dữ liệu gốc cugraveng với dữ liệu truyền lại

Transport Layer 3-84

Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 3

ldquochi phiacuterdquo khaacutec của tắc nghẽn khi caacutec goacutei bị bỏ bất kỳ ldquokhả năng truyền

upstream dugraveng cho goacutei đoacute sẽ bị latildeng phiacuterdquo

Host A

Host B

o

u

t

Transport Layer 3-85

Caacutec caacutech tiếp cận đối với điều khiển tắc nghẽn

điều khiển tắc nghẽn end-end

khocircng coacute phản hồi rotilde ragraveng từ mạng

tắc nghẽn được suy ra từ việc quan saacutet caacutec hệ thống đầu cuối coacute mất maacutet trễ

tiếp cận được quản lyacute bởi TCP

điều khiển tắc nghẽn coacute sự hỗ trợ của mạng

caacutec router cung cấp phản hồi về caacutec hệ thống đầu cuối 1 bit duy nhất chỉ thị

tắc nghẽn (SNA DECbit TCPIP ECN ATM)

tốc độ sẽ gửi được xaacutec định rotilde ragraveng

2 caacutech

Transport Layer 3-86

Viacute dụ điều khiển tắc nghẽn ATM ABR

ABR tốc độ bit sẵn sagraveng

ldquodịch vụ mềm dẻordquo nếu đường gửi ldquochưa

hếtrdquo becircn gửi sẽ dugraveng

băng thocircng sẵn sagraveng nếu đường gửi tắc

nghẽn becircn gửi điều tiết với

tốc độ tối thiểu

RM (resource management)

gửi bởi becircn gửi rải raacutec với caacutec ocirc dữ liệu

caacutec bit trong ocirc thiết lập bởi caacutec switch bit NI khocircng tăng tốc độ

(tắc nghẽn nhẹ) bit CI tắc nghẽn rotilde rệt

Caacutec ocirc RM được trả về becircn gửi từ becircn nhận với nguyecircn vẹn caacutec bit

Transport Layer 3-87

Viacute dụ điều khiển tắc nghẽn ATM ABR

trường 2-byte ER trong ocirc RM switch đatilde tắc nghẽn coacute thể coacute giaacute trị ER thấp hơn trong ocirc tốc độ gửi do đoacute coacute thể được hỗ trợ tối đa trecircn đường

EFCI bit trong caacutec ocirc dữ liệu được cagravei giaacute trị 1 trong switch đatilde tắc nghẽn nếu ocirc dữ liệu đứng trước ocirc RM coacute cagravei EFCI becircn gửi sẽ cagravei

bit CI trong ocirc RM trả về

Transport Layer 3-88

Chương 3 Nội dung trigravenh bagravey

31 Caacutec dịch vụ lớp Transport

32 Multiplexing vagrave demultiplexing

33 Vận chuyển khocircng kết nối UDP

34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy

35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối

36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn

37 Điều khiển tắc nghẽn TCP

Transport Layer 3-89

TCP điều khiển tắc nghẽn additive tăng lecircn multiplicative giảm xuống

8 Kbytes

16 Kbytes

24 Kbytes

time

congestionwindow

Caacutech tiếp cận tăng tốc độ truyền (kiacutech thước cửa sổ) tigravem khả năng băng thocircng coacute thể cho đến khi coacute mất maacutet xảy ra additive tăng lecircn tăng CongWin bởi 1 MSS

mỗi RTT cho đến khi coacute mất maacutet xảy ra multiplicative giảm xuống bỏ CongWin trong

nửa giai đoạn sau khi mất maacutet

timekiacutech

thư

ớc

cửa

sổ

tắc

nghẽ

n

Tigravem kiếm băng thocircng

Transport Layer 3-90

TCP điều khiển tắc nghẽn chi tiết

becircn gửi hạn chế việc truyền LastByteSent-LastByteAcked

CongWin Cocircng thức

CongWin thay đổi chức năng lagrave nhận biết tắc nghẽn trecircn mạng

Lagravem thế nagraveo becircn gửi nhận biết tắc nghẽn

mất maacutet xảy ra = timeout hoặc 3 ack trugraveng lặp

becircn gửi giảm tốc độ (CongWin) sau khi mất maacutet xảy ra

3 cơ chế AIMD khởi động chậm thận trọng sau khi coacute

caacutec sự kiện timeout

tốc độ = CongWin

RTT Bytess

Transport Layer 3-91

TCP khởi động chậm

Khi kết nối bắt đầu CongWin = 1 MSS Viacute dụ MSS = 500 bytes

amp RTT = 200 ms tốc độ khởi tạo = 20

kbps

băng thocircng sẵn sagraveng coacute thể gtgt MSSRTT mong muốn nhanh

choacuteng tăng tốc lecircn tốc độ coacute thể đaacutep ứng

Khi kết nối bắt đầu tăng tốc lecircn rất nhanh cho đến khi sự cố mất maacutet xảy ra đầu tiecircn

Transport Layer 3-92

TCP khởi động chậm (tt)

Khi kết nối bắt đầu tăng tốc lecircn rất nhanh cho đến khi sự cố mất maacutet xảy ra đầu tiecircn nhacircn đocirci CongWin mỗi

RTT hoagraven thagravenh nhờ tăng CongWin ứng với mỗi ACK đatilde nhận

Tổng kết tốc độ khởi đầu lagrave chậm nhưng sau đoacute tăng tốc rất nhanh

Host A

1 đoạn

RTT

Host B

thời gian

2 đoạn

4 đoạn

Transport Layer 3-93

Tinh chếHỏi Khi nagraveo việc tăng

tốc trở thagravenh tuyến tiacutenh

Trả lời Khi CongWin đạt đến 12 giaacute trị của noacute trước khi timeout

Hiện thực Ngưỡng thay đổi Tại thời điểm coacute sự cố

mất maacutet ngưỡng được cagravei giaacute trị bằng frac12 của CongWin ngay trước đoacute

Transport Layer 3-94

Tinh chế nhận biết mất maacutet

Sau 3 ACK trugraveng lặp CongWin sẽ giảm 12 kiacutech thước cửa sổ

tăng tuyến tiacutenh nhưng sau sự cố

timeout CongWin thay giaacute trị

bằng 1 MSS kiacutech thước cửa sổ

tăng cấp lũy thừa khi đến một ngưỡng

thigrave tăng tuyến tiacutenh

3 ACK trugraveng nhau chỉ ra khả năng truyền của mạng timeout chỉ thị ldquonhiều cảnh baacuteordquo về tigravenh huống tắc nghẽn

Nguyecircn lyacute

Transport Layer 3-95

Tổng kết TCP điều khiển tắc nghẽn

Khi CongWin dưới Threshold becircn gửi đang trong giai đoạn khởi động chậm kiacutech thước cửa sổ tăng nhanh theo cấp lũy thừa

Khi CongWin trecircn Threshold becircn gửi đang trong giai đoạn traacutenh tắc nghẽn kiacutech thước cửa sổ tăng nhanh theo cấp tuyến tiacutenh

Khi coacute 3 ACK trugraveng lặp xảy ra Threshold = CongWin2 vagrave CongWin = Threshold

Khi timeout xảy ra Threshold = CongWin2 vagrave CongWin = 1 MSS

Transport Layer 3-96

TCP điều khiển tắc nghẽn becircn gửi

Trạng thaacutei Sự kiện TCP becircn gửi hagravenh động Diễn giải

Slow Start (SS)-Khởi động chậm

ACK baacuteo nhận cho dữ liệu chưa ACK trước đoacute

CongWin = CongWin + MSS If (CongWin gt Threshold) cagravei đặt trạng thaacutei ldquoTraacutenh tắc nghẽnrdquo

Hậu quả lagravem tăng gấp đocirci CongWin mỗi RTT

CongestionAvoidance (CA) ndashTraacutenh tắc nghẽn

ACK baacuteo nhận cho dữ liệu chưa ACK trước đoacute

CongWin = CongWin+MSS (MSSCongWin)

Additive tăng lecircn lagravem tăng CongWin lecircn 1 MSS mỗi RTT

SS hoặc CA Sự cố mất maacutet xảy ra khi thấy coacute 3 ACK trugraveng lặp

Threshold = CongWin2 CongWin = Thresholdcagravei đặt trạng thaacutei ldquoTraacutenh tắc nghẽnrdquo

Khocirci phục nhanh hiện thực giảm xuống multiplicative CongWin sẽ khocircng giảm xuống dưới 1 MSS

SS hoặc CA Timeout Threshold = CongWin2 CongWin = 1 MSScagravei đặt trạng thaacutei ldquoKhởi động chậmrdquo

Vagraveo chế độ ldquoKhởi động chậmrdquo

SS hoặc CA ACK trugraveng lặp

Đếm ACK tăng lecircn cho đoạn vừa được ACK

CongWin vagrave Threshold khocircng thay đổi

Transport Layer 3-97

TCP throughput

Throughout trung bigravenh của TCP biểu diễn qua kiacutech thước của sổ vagrave RTT Bỏ qua trạng thaacutei ldquoKhởi động chậmrdquo

Cho W lagrave kiacutech thước cửa sổ khi coacute mất maacutet xảy ra

Khi kiacutech thước cửa sổ = W lưu lượng = WRTT

Chỉ ngay sau khi mất maacutet cửa sổ giảm xuống = W2 lưu lượng = W2RTT

throughout trung bigravenh 075 WRTT

Transport Layer 3-98

TCP tương lai

Viacute dụ caacutec đoạn dagravei 1500 byte RTT 100ms lưu lượng 10 Gbps

Kiacutech thước cửa sổ yecircu cầu W = 83333 đoạn trecircn đường truyền

Lưu lượng trong caacutec trường hợp mất maacutet

L = 210-10

Phiecircn bản mới của TCP dagravenh cho nhu cầu tốc độ cao

LRTT

MSS221

Transport Layer 3-99

Mục tiecircu nếu K phiecircn lagravem việc TCP chia sẻ kết nối cổ chai của băng thocircng lagrave R mỗi phiecircn coacute tốc độ trung bigravenh lagrave RK

TCP kết nối 1

router cổ chaikhả năng R

TCP kết nối 2

TCP tiacutenh cocircng bằng

Transport Layer 3-100

Tại sao phải TCP cocircng bằng

2 phiecircn lagravem việc cạnh tranh nhau Additive tăng lưu lượng tăng multiplicative giảm lưu lượng tương xứng

R

R

chia sẻ băng thocircng bằng nhau

Connection 1 throughputConnect

ion 2

th

roughput

traacutenh tắc nghẽn additive tăng lecircnmất maacutet giảm cửa sổ bằng 12

traacutenh tắc nghẽn additive tăng lecircnmất maacutet giảm cửa sổ bằng 12

Transport Layer 3-101

TCP tiacutenh cocircng bằng (tt)

Tiacutenh cocircng bằng amp UDP nhiều ứng dụng

thường khocircng dugraveng TCP khocircng muốn tốc độ bị

điều tiết do điều khiển tắc nghẽn

Thay bằng dugraveng UDP truyền audiovideo với

tốc độ ổn định chịu được mất maacutet

Nghiecircn cứu giao thức thacircn thiện với TCP

Tiacutenh cocircng bằng amp caacutec kết nối TCP song song

khocircng coacute gigrave ngăn cản việc ứng dụng mở caacutec kết nối song song giữa 2 host

Trigravenh duyệt Web lagravem giống như thế

Viacute dụ tốc độ R hỗ trợ 9 kết nối ứng dụng mới yecircu cầu 1

TCP coacute tốc độ R10 ứng dụng mới yecircu cầu 11

TCP coacute tốc độ R2

Transport Layer 3-102

Mocirc higravenh trễ

Hỏi Mất bao lacircu để nhận 1 đối tượng từ Web server sau khi gửi yecircu cầu

Bỏ qua tắc nghẽn trễ bị ảnh hưởng bởi

thiết lập kết nối TCP trễ truyền dữ liệu khởi động chậm

Notation caacutec giả định Giả sử một kết nối giữa

client vagrave server coacute tốc độ R

S MSS (bits) O kiacutech thước đối tượng

(bits) khocircng truyền lại (khocircng

mất maacutet khocircng hỏng)

Kiacutech thước cửa sổ Giả định 1 cửa sổ tắc

nghẽn cố định coacute W đoạn Sau đoacute cửa sổ thay đổi

mocirc higravenh khởi động chậm

Transport Layer 3-103

Cửa sổ tắc nghẽn cố định (1)

Trường hợp đầu tiecircnWSR gt RTT + SR cho

đoạn đầu tiecircn trong cửa sổ trả về trước khi cửa sổ dữ liệu gửi ACK

trễ = 2RTT + OR

Transport Layer 3-104

Cửa sổ tắc nghẽn cố định (2)

Trường hợp thứ hai WSR lt RTT + SR sent

chờ cho ACK sau khi gửi dữ liệu

trễ = 2RTT + OR+ (K-1)[SR + RTT - WSR]

Transport Layer 3-105

TCP Mocirc higravenh trễ Khởi động chậm (1)

Bacircy giờ giả sử kiacutech thước cửa sổ tăng lecircn tugravey theo quaacute trigravenh khởi động chậm

Độ trễ của một đối tượng sẽ lagrave

R

S

R

SRTTP

R

ORTTLatency P )12(2

trong đoacute P lagrave số lần TCP rảnh ở tại server

1min KQP

- trong đoacute Q lagrave số lần server rảnh nếu đối tượng đatilde khởi tạo kiacutech thước

- vagrave K lagrave số lượng cửa sổ bao trugravem đối tượng

Transport Layer 3-106

TCP Mocirc higravenh trễ Khởi động chậm (2)

RTT

initia te TCPconnection

requestobject

first w indow= S R

second w indow= 2S R

third w indow= 4S R

fourth w indow= 8S R

com pletetransm issionobject

delivered

tim e atc lient

tim e atserver

Viacute dụbull OS = 15 đoạnbull K = 4 cửa sổbull Q = 2bull P = minK-1Q = 2

Server rảnh P=2 lần

Caacutec thagravenh phần trễbull 2 RTT dagravenh cho thiết lập kết nối vagrave yecircu cầubull OR để truyền đối tượngbullthời gian server rảnh bởi vigrave khởi động chậm

Server rảnh P = minK-1Q lần

Transport Layer 3-107

TCP Mocirc higravenh trễ(3)

R

S

R

SRTTPRTT

R

O

R

SRTT

R

SRTT

R

O

idleTimeRTTR

O

P

kP

k

P

pp

)12(][2

]2[2

2delay

1

1

1

th window after the timeidle 2 1 kR

SRTT

R

S k

ementacknowledg receivesserver until

segment send tostartsserver when from time RTTR

S

window kth the transmit totime2 1

R

Sk

RTT

initia te TCPconnection

requestobject

first w indow= S R

second w indow= 2S R

third w indow= 4S R

fourth w indow= 8S R

com pletetransm issionobject

delivered

tim e atc lient

tim e atserver

Transport Layer 3-108

TCP Mocirc higravenh trễ (4)

)1(log

)1(logmin

12min

222min

222min

2

2

110

110

S

OS

Okk

S

Ok

SOk

OSSSkK

k

k

k

caacutech tiacutenh toaacuten Q tương tự (xem HW)

K = số lượng cửa sổ bao trugravem đối tượngLagravem thế nagraveo tiacutenh được K

Transport Layer 3-109

HTTP Mocirc higravenh Giả sử trang Web chứa

1 trang HTML (kiacutech thước O bits) M higravenh ảnh (mỗi caacutei kiacutech thướcO bits)

HTTP khocircng bền vững M+1 TCP kết nối Thời gian đaacutep ứng = (M+1)OR + (M+1)2RTT + tổng số thời

gian rảnh HTTP bền vững

2 RTT để yecircu cầu vagrave nhận file HTML 1 RTT để yecircu cầu vagrave nhận M higravenh ảnh Thời gian đaacutep ứng = (M+1)OR + 3RTT + tổng số thời gian

rảnh HTTP khocircng bền vững với X kết nối song song

Giả sử MX lagrave số nguyecircn 1 TCP kết nối cho file MX thiết lập caacutec kết nối song song cho caacutec higravenh ảnh Thời gian đaacutep ứng = (M+1)OR + (MX + 1)2RTT + tổng số

thời gian rảnh

Transport Layer 3-110

02468

101214161820

28Kbps

100Kbps

1Mbps

10Mbps

non-persistent

persistent

parallel non-persistent

HTTP thời gian đaacutep ứng (giacircy)RTT = 100 msec O = 5 Kbytes M=10 vagrave X=5

Với băng thocircng thấp thời gian kết nối amp đaacutep ứng trội hơn thời gian truyền

Caacutec kết nối bền vững chỉ cho sự cải thiện khocircng đaacuteng kể trecircn caacutec kết nối song song

Transport Layer 3-111

0

10

20

30

40

50

60

70

28Kbps

100Kbps

1Mbps

10Mbps

non-persistent

persistent

parallel non-persistent

HTTP thời gian đaacutep ứng (giacircy)

RTT =1 sec O = 5 Kbytes M=10 and X=5

Với RTT lớn hơn thời gian đaacutep ứng trội hơn thời gian trễ chờ thiết lập kết nốiTCP amp khởi động chậm Caacutec kết nối bền vững bacircy giờ cho thấy cải thiện rotilde rệt đặc biệtvới caacutec mạng băng thocircng cao

Transport Layer 3-112

Chương 3 Tổng kết caacutec nguyecircn lyacute của caacutec

dịch vụ lớp transport multiplexing

demultiplexing truyền dữ liệu tin cậy điều khiển luồng điều khiển tắc nghẽn

khởi tạo vagrave hiện thực trong Internet UDP TCP

Tiếp theo nghiecircn cứu xong

caacutec vấn đề ldquongoagravei biecircnrdquo (caacutec lớp application transport)

chuẩn bị vagraveo phần ldquolotildeirdquo của mạng

  • Slide 1
  • Chương 3 Lớp Transport
  • Chương 3 Nội dung trigravenh bagravey
  • Caacutec dịch vụ vagrave giao thức Transport
  • Lớp Transport với lớp network
  • Caacutec giao thức lớp transport trecircn Internet
  • Slide 7
  • Multiplexingdemultiplexing
  • Demultiplexing lagravem việc như thế nagraveo
  • Demultiplexing khocircng kết nối
  • Demultiplexing khocircng kết nối (tiếp)
  • Demultiplexing hướng kết nối
  • Demultiplexing hướng kết nối (tiếp)
  • Demultiplexing hướng kết nối Threaded Web Server
  • Slide 15
  • UDP User Datagram Protocol [RFC 768]
  • UDP (tt)
  • UDP checksum
  • Viacute dụ Checksum
  • Slide 20
  • Caacutec nguyecircn lyacute truyền dữ liệu tin cậy
  • Slide 22
  • Slide 23
  • Truyền dữ liệu tin cậy
  • Slide 25
  • Rdt10 truyền dữ liệu tin cậy trecircn 1 kecircnh truyền tin cậy
  • Rdt20 kecircnh với caacutec lỗi
  • rdt20 đặc tả FSM
  • rdt20 hoạt động khi khocircng lỗi
  • rdt20 hoạt động khi coacute lỗi
  • rdt20 coacute lỗ hổng nghiecircm trọng
  • rdt21 người gửi quản lyacute caacutec ACKNAK bị hỏng
  • Slide 33
  • rdt21 thảo luận
  • rdt22 một giao thức khocircng cần NAK
  • rdt22 gửi nhận caacutec mảnh
  • rdt30 caacutec kecircnh với lỗi vagrave mất maacutet
  • rdt30 gửi
  • hagravenh động của rdt30
  • Slide 40
  • Hiệu suất của rdt30
  • rdt30 hoạt động dừng-vagrave-chờ
  • Caacutec giao thức Pipelined
  • Pipelining độ khả dụng tăng
  • Go-Back-N
  • GBN becircn gửi mở rộng FSM
  • GBN becircn nhận mở rộng FSM
  • GBN hoạt động
  • Lặp coacute lựa chọn
  • Lặp coacute lựa chọn caacutec cửa sổ gửi nhận
  • Slide 51
  • Hoạt động của lặp coacute lựa chọn
  • Lặp coacute lựa chọn tigravenh trạng khoacute giải quyết
  • Slide 54
  • TCP Tổng quan RFCs 793 1122 1323 2018 2581
  • TCP cấu truacutec đoạn
  • Caacutec số thứ tự TCP vagrave ACK
  • TCP Round Trip Time vagraveTimeout
  • TCP Round Trip Time vagrave Timeout
  • Viacute dụ đaacutenh giaacute RTT
  • Slide 61
  • TCP truyền dữ liệu tin cậy
  • TCP caacutec sự kiện
  • TCP becircn gửi (đơn giản)
  • TCP caacutec tigravenh huống truyền lại
  • TCP caacutec tigravenh huống truyền lại (tt)
  • TCP sinh ra ACK [RFC 1122 RFC 2581]
  • Truyền lại nhanh
  • Giải thuật truyền lại nhanh
  • Slide 70
  • TCP điều khiển luồng
  • TCP điều khiển luồng caacutech lagravem
  • Slide 73
  • TCP quản lyacute kết nối
  • TCP quản lyacute kết nối (tt)
  • Slide 76
  • Slide 77
  • Slide 78
  • Caacutec nguyecircn lyacute điều khiển tắc nghẽn
  • Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 1
  • Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 2
  • Slide 82
  • Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 3
  • Slide 84
  • Caacutec caacutech tiếp cận đối với điều khiển tắc nghẽn
  • Viacute dụ điều khiển tắc nghẽn ATM ABR
  • Slide 87
  • Slide 88
  • TCP điều khiển tắc nghẽn additive tăng lecircn multiplicative giảm xuống
  • TCP điều khiển tắc nghẽn chi tiết
  • TCP khởi động chậm
  • TCP khởi động chậm (tt)
  • Tinh chế
  • Tinh chế nhận biết mất maacutet
  • Tổng kết TCP điều khiển tắc nghẽn
  • TCP điều khiển tắc nghẽn becircn gửi
  • TCP throughput
  • TCP tương lai
  • TCP tiacutenh cocircng bằng
  • Tại sao phải TCP cocircng bằng
  • TCP tiacutenh cocircng bằng (tt)
  • Mocirc higravenh trễ
  • Cửa sổ tắc nghẽn cố định (1)
  • Cửa sổ tắc nghẽn cố định (2)
  • TCP Mocirc higravenh trễ Khởi động chậm (1)
  • TCP Mocirc higravenh trễ Khởi động chậm (2)
  • TCP Mocirc higravenh trễ(3)
  • TCP Mocirc higravenh trễ (4)
  • HTTP Mocirc higravenh
  • Slide 110
  • Slide 111
  • Chương 3 Tổng kết

Transport Layer 3-69

sự kiện ACK đatilde nhận với trường lagrave y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer else increment count of dup ACKs received for y if (count of dup ACKs received for y = 3) resend segment with sequence number y

Giải thuật truyền lại nhanh

một ACK trugraveng lặp cho đoạn đatilde được ACK

Truyền lại nhanh

Transport Layer 3-70

Chương 3 Nội dung trigravenh bagravey

31 Caacutec dịch vụ lớp Transport

32 Multiplexing vagrave demultiplexing

33 Vận chuyển khocircng kết nối UDP

34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy

35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối

36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn

37 Điều khiển tắc nghẽn TCP

Transport Layer 3-71

TCP điều khiển luồng

becircn nhận của kết nối TCP coacute một bộ đệm nhận

dịch vụ so trugraveng tốc độ so trugraveng tốc độ gửi với tốc độ nhận của ứng dụng

tiến trigravenh ứng dụng coacute thể chậm tại luacutec đọc bộ đệm

becircn gửi sẽ khocircng lagravem tragraven bộ đệm vigrave truyền quaacute nhiều vagrave

quaacute nhanh

điều khiển luồng

Transport Layer 3-72

TCP điều khiển luồng caacutech lagravem

(Giả sử becircn nhận TCP loại bỏ caacutec đoạn khocircng coacute thứ tự)

dự phograveng trong bộ đệm= RcvWindow

= RcvBuffer-[LastByteRcvd - LastByteRead]

Becircn nhận thocircng baacuteo khoảng dự trữ nhờ giaacute trị RcvWindow trong caacutec đoạn

Becircn gửi hạn chế dữ liệu khocircng được ACK vagraveo RcvWindow bảo đảm bộ đệm nhận

khocircng tragraven

Transport Layer 3-73

Chương 3 Nội dung trigravenh bagravey

31 Caacutec dịch vụ lớp Transport

32 Multiplexing vagrave demultiplexing

33 Vận chuyển khocircng kết nối UDP

34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy

35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối

36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn

37 Điều khiển tắc nghẽn TCP

Transport Layer 3-74

TCP quản lyacute kết nối

Chuacute yacute Becircn gửi vagrave becircn nhận TCP thiết lập ldquokết nốirdquo trước khi trao đổi dữ liệu

khởi tạo caacutec biến TCP caacutec số thứ tự đoạn thocircng tin caacutec bộ đệm điều

khiển luồng (như RcvWindow)

client người khởi xướng kết nối

Socket clientSocket = new Socket(hostnameport

number) server được tiếp xuacutec bởi

client Socket connectionSocket =

welcomeSocketaccept()

3 phương phaacutep bắt tay

Bước 1 client host gửi đoạnTCP SYN đến server xaacutec định số thứ tự khởi đầu khocircng phải dữ liệu

Bước 2 server host nhận SYN trả lời với đoạn SYNACK

server cấp phaacutet caacutec bộ đệm

xaacutec định số thứ tự khởi đầuBước 3 client nhận SYNACK trả

lời với đoạn ACK (coacute thể chứa dữ liệu)

Transport Layer 3-75

TCP quản lyacute kết nối (tt)

Đoacuteng một kết nối

client đoacuteng socket clientSocketclose()

Bước 1 client gửi đoạn điều khiển TCP FIN đến server

Bước 2 server nhận FIN trả lời với ACK Đoacuteng kết nối gửi FIN

client

FIN

server

ACK

ACK

FIN

đoacuteng

đoacuteng

đatilde đoacutengthời g

ian c

hờ

Transport Layer 3-76

TCP quản lyacute kết nối (tt)

Bước 3 client nhận FIN trả lời với ACK

Trong khoảng ldquothời gian chờrdquo ndash sẽ phản hồi với ACK để nhận caacutec FIN

Bước 4 server nhận ACK Kết nối đatilde đoacuteng

Chuacute yacute với một sửa đổi nhỏ coacute thể quản lyacute nhiều FIN đồng thời

client

FIN

server

ACK

ACK

FIN

đang đoacuteng

đang đoacuteng

đatilde đoacuteng

thời g

ian c

hờ

đatilde đoacuteng

Transport Layer 3-77

TCP quản lyacute kết nối (tt)

chu kỳ sống củaTCP client

chu kỳ sống củaTCP server

Transport Layer 3-78

Chương 3 Nội dung trigravenh bagravey

31 Caacutec dịch vụ lớp Transport

32 Multiplexing vagrave demultiplexing

33 Vận chuyển khocircng kết nối UDP

34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy

35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối

36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn

37 Điều khiển tắc nghẽn TCP

Transport Layer 3-79

Caacutec nguyecircn lyacute điều khiển tắc nghẽn

Tắc nghẽn ldquoquaacute nhiều nguồn gửi quaacute nhanh vagrave quaacute nhiều

dữ liệu đến mạngrdquo khaacutec với điều khiển luồng caacutec biểu hiện

caacutec goacutei bị mất (tragraven bộ đệm tại caacutec router) caacutec độ trễ quaacute dagravei (xếp hagraveng trong bộ đệm

của router) lagrave 1 trong 10 vấn đề nan giải nhất

Transport Layer 3-80

Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 1

2 gửi 2 nhận 1 router caacutec bộ

đệm khocircng giới hạn

khocircng coacute truyền lại

caacutec độ trễ lớn hơn khi tắc nghẽn

năng suất coacute thể đạt tối đa

unlimited shared output link buffers

Host Ain original data

Host B

out

Transport Layer 3-81

Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 2

1 router caacutec bộ đệm coacute giới hạn becircn gửi truyền lại caacutec goacutei đatilde mất

chia sẻ vocirc hạncaacutec bộ đệm ouput

Host A in dữ liệu gốc

Host B

out

in dữ liệu gốc cugraveng với dữ liệu truyền lại

Transport Layer 3-82

Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 2 luocircn luocircn

truyền lại ldquohoagraven toagravenrdquo chỉ khi mất maacutet

truyền lại vigrave trễ (khocircng mất) lagravem cho lớn hơn với cugraveng

in

out

=

in

out

gt

in

out

ldquocaacutec chi phiacuterdquo của tắc nghẽn nhiều việc (truyền lại) caacutec truyền lại khocircng cần thiết liecircn kết nhiều bản sao của

goacutei

R2

R2in

ou

t

b

R2

R2in

ou

t

a

R2

R2in

ou

t

c

R4

R3

Transport Layer 3-83

Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 3 4 người gửi caacutec đường qua nhiều hop timeouttruyền lại

in

Hỏi điều gigrave xảy ra nếu vagrave tăng lecircn

in

chia sẻ vocirc hạncaacutec bộ đệm ouput

Host Ain dữ liệu gốc

Host B

out

in dữ liệu gốc cugraveng với dữ liệu truyền lại

Transport Layer 3-84

Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 3

ldquochi phiacuterdquo khaacutec của tắc nghẽn khi caacutec goacutei bị bỏ bất kỳ ldquokhả năng truyền

upstream dugraveng cho goacutei đoacute sẽ bị latildeng phiacuterdquo

Host A

Host B

o

u

t

Transport Layer 3-85

Caacutec caacutech tiếp cận đối với điều khiển tắc nghẽn

điều khiển tắc nghẽn end-end

khocircng coacute phản hồi rotilde ragraveng từ mạng

tắc nghẽn được suy ra từ việc quan saacutet caacutec hệ thống đầu cuối coacute mất maacutet trễ

tiếp cận được quản lyacute bởi TCP

điều khiển tắc nghẽn coacute sự hỗ trợ của mạng

caacutec router cung cấp phản hồi về caacutec hệ thống đầu cuối 1 bit duy nhất chỉ thị

tắc nghẽn (SNA DECbit TCPIP ECN ATM)

tốc độ sẽ gửi được xaacutec định rotilde ragraveng

2 caacutech

Transport Layer 3-86

Viacute dụ điều khiển tắc nghẽn ATM ABR

ABR tốc độ bit sẵn sagraveng

ldquodịch vụ mềm dẻordquo nếu đường gửi ldquochưa

hếtrdquo becircn gửi sẽ dugraveng

băng thocircng sẵn sagraveng nếu đường gửi tắc

nghẽn becircn gửi điều tiết với

tốc độ tối thiểu

RM (resource management)

gửi bởi becircn gửi rải raacutec với caacutec ocirc dữ liệu

caacutec bit trong ocirc thiết lập bởi caacutec switch bit NI khocircng tăng tốc độ

(tắc nghẽn nhẹ) bit CI tắc nghẽn rotilde rệt

Caacutec ocirc RM được trả về becircn gửi từ becircn nhận với nguyecircn vẹn caacutec bit

Transport Layer 3-87

Viacute dụ điều khiển tắc nghẽn ATM ABR

trường 2-byte ER trong ocirc RM switch đatilde tắc nghẽn coacute thể coacute giaacute trị ER thấp hơn trong ocirc tốc độ gửi do đoacute coacute thể được hỗ trợ tối đa trecircn đường

EFCI bit trong caacutec ocirc dữ liệu được cagravei giaacute trị 1 trong switch đatilde tắc nghẽn nếu ocirc dữ liệu đứng trước ocirc RM coacute cagravei EFCI becircn gửi sẽ cagravei

bit CI trong ocirc RM trả về

Transport Layer 3-88

Chương 3 Nội dung trigravenh bagravey

31 Caacutec dịch vụ lớp Transport

32 Multiplexing vagrave demultiplexing

33 Vận chuyển khocircng kết nối UDP

34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy

35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối

36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn

37 Điều khiển tắc nghẽn TCP

Transport Layer 3-89

TCP điều khiển tắc nghẽn additive tăng lecircn multiplicative giảm xuống

8 Kbytes

16 Kbytes

24 Kbytes

time

congestionwindow

Caacutech tiếp cận tăng tốc độ truyền (kiacutech thước cửa sổ) tigravem khả năng băng thocircng coacute thể cho đến khi coacute mất maacutet xảy ra additive tăng lecircn tăng CongWin bởi 1 MSS

mỗi RTT cho đến khi coacute mất maacutet xảy ra multiplicative giảm xuống bỏ CongWin trong

nửa giai đoạn sau khi mất maacutet

timekiacutech

thư

ớc

cửa

sổ

tắc

nghẽ

n

Tigravem kiếm băng thocircng

Transport Layer 3-90

TCP điều khiển tắc nghẽn chi tiết

becircn gửi hạn chế việc truyền LastByteSent-LastByteAcked

CongWin Cocircng thức

CongWin thay đổi chức năng lagrave nhận biết tắc nghẽn trecircn mạng

Lagravem thế nagraveo becircn gửi nhận biết tắc nghẽn

mất maacutet xảy ra = timeout hoặc 3 ack trugraveng lặp

becircn gửi giảm tốc độ (CongWin) sau khi mất maacutet xảy ra

3 cơ chế AIMD khởi động chậm thận trọng sau khi coacute

caacutec sự kiện timeout

tốc độ = CongWin

RTT Bytess

Transport Layer 3-91

TCP khởi động chậm

Khi kết nối bắt đầu CongWin = 1 MSS Viacute dụ MSS = 500 bytes

amp RTT = 200 ms tốc độ khởi tạo = 20

kbps

băng thocircng sẵn sagraveng coacute thể gtgt MSSRTT mong muốn nhanh

choacuteng tăng tốc lecircn tốc độ coacute thể đaacutep ứng

Khi kết nối bắt đầu tăng tốc lecircn rất nhanh cho đến khi sự cố mất maacutet xảy ra đầu tiecircn

Transport Layer 3-92

TCP khởi động chậm (tt)

Khi kết nối bắt đầu tăng tốc lecircn rất nhanh cho đến khi sự cố mất maacutet xảy ra đầu tiecircn nhacircn đocirci CongWin mỗi

RTT hoagraven thagravenh nhờ tăng CongWin ứng với mỗi ACK đatilde nhận

Tổng kết tốc độ khởi đầu lagrave chậm nhưng sau đoacute tăng tốc rất nhanh

Host A

1 đoạn

RTT

Host B

thời gian

2 đoạn

4 đoạn

Transport Layer 3-93

Tinh chếHỏi Khi nagraveo việc tăng

tốc trở thagravenh tuyến tiacutenh

Trả lời Khi CongWin đạt đến 12 giaacute trị của noacute trước khi timeout

Hiện thực Ngưỡng thay đổi Tại thời điểm coacute sự cố

mất maacutet ngưỡng được cagravei giaacute trị bằng frac12 của CongWin ngay trước đoacute

Transport Layer 3-94

Tinh chế nhận biết mất maacutet

Sau 3 ACK trugraveng lặp CongWin sẽ giảm 12 kiacutech thước cửa sổ

tăng tuyến tiacutenh nhưng sau sự cố

timeout CongWin thay giaacute trị

bằng 1 MSS kiacutech thước cửa sổ

tăng cấp lũy thừa khi đến một ngưỡng

thigrave tăng tuyến tiacutenh

3 ACK trugraveng nhau chỉ ra khả năng truyền của mạng timeout chỉ thị ldquonhiều cảnh baacuteordquo về tigravenh huống tắc nghẽn

Nguyecircn lyacute

Transport Layer 3-95

Tổng kết TCP điều khiển tắc nghẽn

Khi CongWin dưới Threshold becircn gửi đang trong giai đoạn khởi động chậm kiacutech thước cửa sổ tăng nhanh theo cấp lũy thừa

Khi CongWin trecircn Threshold becircn gửi đang trong giai đoạn traacutenh tắc nghẽn kiacutech thước cửa sổ tăng nhanh theo cấp tuyến tiacutenh

Khi coacute 3 ACK trugraveng lặp xảy ra Threshold = CongWin2 vagrave CongWin = Threshold

Khi timeout xảy ra Threshold = CongWin2 vagrave CongWin = 1 MSS

Transport Layer 3-96

TCP điều khiển tắc nghẽn becircn gửi

Trạng thaacutei Sự kiện TCP becircn gửi hagravenh động Diễn giải

Slow Start (SS)-Khởi động chậm

ACK baacuteo nhận cho dữ liệu chưa ACK trước đoacute

CongWin = CongWin + MSS If (CongWin gt Threshold) cagravei đặt trạng thaacutei ldquoTraacutenh tắc nghẽnrdquo

Hậu quả lagravem tăng gấp đocirci CongWin mỗi RTT

CongestionAvoidance (CA) ndashTraacutenh tắc nghẽn

ACK baacuteo nhận cho dữ liệu chưa ACK trước đoacute

CongWin = CongWin+MSS (MSSCongWin)

Additive tăng lecircn lagravem tăng CongWin lecircn 1 MSS mỗi RTT

SS hoặc CA Sự cố mất maacutet xảy ra khi thấy coacute 3 ACK trugraveng lặp

Threshold = CongWin2 CongWin = Thresholdcagravei đặt trạng thaacutei ldquoTraacutenh tắc nghẽnrdquo

Khocirci phục nhanh hiện thực giảm xuống multiplicative CongWin sẽ khocircng giảm xuống dưới 1 MSS

SS hoặc CA Timeout Threshold = CongWin2 CongWin = 1 MSScagravei đặt trạng thaacutei ldquoKhởi động chậmrdquo

Vagraveo chế độ ldquoKhởi động chậmrdquo

SS hoặc CA ACK trugraveng lặp

Đếm ACK tăng lecircn cho đoạn vừa được ACK

CongWin vagrave Threshold khocircng thay đổi

Transport Layer 3-97

TCP throughput

Throughout trung bigravenh của TCP biểu diễn qua kiacutech thước của sổ vagrave RTT Bỏ qua trạng thaacutei ldquoKhởi động chậmrdquo

Cho W lagrave kiacutech thước cửa sổ khi coacute mất maacutet xảy ra

Khi kiacutech thước cửa sổ = W lưu lượng = WRTT

Chỉ ngay sau khi mất maacutet cửa sổ giảm xuống = W2 lưu lượng = W2RTT

throughout trung bigravenh 075 WRTT

Transport Layer 3-98

TCP tương lai

Viacute dụ caacutec đoạn dagravei 1500 byte RTT 100ms lưu lượng 10 Gbps

Kiacutech thước cửa sổ yecircu cầu W = 83333 đoạn trecircn đường truyền

Lưu lượng trong caacutec trường hợp mất maacutet

L = 210-10

Phiecircn bản mới của TCP dagravenh cho nhu cầu tốc độ cao

LRTT

MSS221

Transport Layer 3-99

Mục tiecircu nếu K phiecircn lagravem việc TCP chia sẻ kết nối cổ chai của băng thocircng lagrave R mỗi phiecircn coacute tốc độ trung bigravenh lagrave RK

TCP kết nối 1

router cổ chaikhả năng R

TCP kết nối 2

TCP tiacutenh cocircng bằng

Transport Layer 3-100

Tại sao phải TCP cocircng bằng

2 phiecircn lagravem việc cạnh tranh nhau Additive tăng lưu lượng tăng multiplicative giảm lưu lượng tương xứng

R

R

chia sẻ băng thocircng bằng nhau

Connection 1 throughputConnect

ion 2

th

roughput

traacutenh tắc nghẽn additive tăng lecircnmất maacutet giảm cửa sổ bằng 12

traacutenh tắc nghẽn additive tăng lecircnmất maacutet giảm cửa sổ bằng 12

Transport Layer 3-101

TCP tiacutenh cocircng bằng (tt)

Tiacutenh cocircng bằng amp UDP nhiều ứng dụng

thường khocircng dugraveng TCP khocircng muốn tốc độ bị

điều tiết do điều khiển tắc nghẽn

Thay bằng dugraveng UDP truyền audiovideo với

tốc độ ổn định chịu được mất maacutet

Nghiecircn cứu giao thức thacircn thiện với TCP

Tiacutenh cocircng bằng amp caacutec kết nối TCP song song

khocircng coacute gigrave ngăn cản việc ứng dụng mở caacutec kết nối song song giữa 2 host

Trigravenh duyệt Web lagravem giống như thế

Viacute dụ tốc độ R hỗ trợ 9 kết nối ứng dụng mới yecircu cầu 1

TCP coacute tốc độ R10 ứng dụng mới yecircu cầu 11

TCP coacute tốc độ R2

Transport Layer 3-102

Mocirc higravenh trễ

Hỏi Mất bao lacircu để nhận 1 đối tượng từ Web server sau khi gửi yecircu cầu

Bỏ qua tắc nghẽn trễ bị ảnh hưởng bởi

thiết lập kết nối TCP trễ truyền dữ liệu khởi động chậm

Notation caacutec giả định Giả sử một kết nối giữa

client vagrave server coacute tốc độ R

S MSS (bits) O kiacutech thước đối tượng

(bits) khocircng truyền lại (khocircng

mất maacutet khocircng hỏng)

Kiacutech thước cửa sổ Giả định 1 cửa sổ tắc

nghẽn cố định coacute W đoạn Sau đoacute cửa sổ thay đổi

mocirc higravenh khởi động chậm

Transport Layer 3-103

Cửa sổ tắc nghẽn cố định (1)

Trường hợp đầu tiecircnWSR gt RTT + SR cho

đoạn đầu tiecircn trong cửa sổ trả về trước khi cửa sổ dữ liệu gửi ACK

trễ = 2RTT + OR

Transport Layer 3-104

Cửa sổ tắc nghẽn cố định (2)

Trường hợp thứ hai WSR lt RTT + SR sent

chờ cho ACK sau khi gửi dữ liệu

trễ = 2RTT + OR+ (K-1)[SR + RTT - WSR]

Transport Layer 3-105

TCP Mocirc higravenh trễ Khởi động chậm (1)

Bacircy giờ giả sử kiacutech thước cửa sổ tăng lecircn tugravey theo quaacute trigravenh khởi động chậm

Độ trễ của một đối tượng sẽ lagrave

R

S

R

SRTTP

R

ORTTLatency P )12(2

trong đoacute P lagrave số lần TCP rảnh ở tại server

1min KQP

- trong đoacute Q lagrave số lần server rảnh nếu đối tượng đatilde khởi tạo kiacutech thước

- vagrave K lagrave số lượng cửa sổ bao trugravem đối tượng

Transport Layer 3-106

TCP Mocirc higravenh trễ Khởi động chậm (2)

RTT

initia te TCPconnection

requestobject

first w indow= S R

second w indow= 2S R

third w indow= 4S R

fourth w indow= 8S R

com pletetransm issionobject

delivered

tim e atc lient

tim e atserver

Viacute dụbull OS = 15 đoạnbull K = 4 cửa sổbull Q = 2bull P = minK-1Q = 2

Server rảnh P=2 lần

Caacutec thagravenh phần trễbull 2 RTT dagravenh cho thiết lập kết nối vagrave yecircu cầubull OR để truyền đối tượngbullthời gian server rảnh bởi vigrave khởi động chậm

Server rảnh P = minK-1Q lần

Transport Layer 3-107

TCP Mocirc higravenh trễ(3)

R

S

R

SRTTPRTT

R

O

R

SRTT

R

SRTT

R

O

idleTimeRTTR

O

P

kP

k

P

pp

)12(][2

]2[2

2delay

1

1

1

th window after the timeidle 2 1 kR

SRTT

R

S k

ementacknowledg receivesserver until

segment send tostartsserver when from time RTTR

S

window kth the transmit totime2 1

R

Sk

RTT

initia te TCPconnection

requestobject

first w indow= S R

second w indow= 2S R

third w indow= 4S R

fourth w indow= 8S R

com pletetransm issionobject

delivered

tim e atc lient

tim e atserver

Transport Layer 3-108

TCP Mocirc higravenh trễ (4)

)1(log

)1(logmin

12min

222min

222min

2

2

110

110

S

OS

Okk

S

Ok

SOk

OSSSkK

k

k

k

caacutech tiacutenh toaacuten Q tương tự (xem HW)

K = số lượng cửa sổ bao trugravem đối tượngLagravem thế nagraveo tiacutenh được K

Transport Layer 3-109

HTTP Mocirc higravenh Giả sử trang Web chứa

1 trang HTML (kiacutech thước O bits) M higravenh ảnh (mỗi caacutei kiacutech thướcO bits)

HTTP khocircng bền vững M+1 TCP kết nối Thời gian đaacutep ứng = (M+1)OR + (M+1)2RTT + tổng số thời

gian rảnh HTTP bền vững

2 RTT để yecircu cầu vagrave nhận file HTML 1 RTT để yecircu cầu vagrave nhận M higravenh ảnh Thời gian đaacutep ứng = (M+1)OR + 3RTT + tổng số thời gian

rảnh HTTP khocircng bền vững với X kết nối song song

Giả sử MX lagrave số nguyecircn 1 TCP kết nối cho file MX thiết lập caacutec kết nối song song cho caacutec higravenh ảnh Thời gian đaacutep ứng = (M+1)OR + (MX + 1)2RTT + tổng số

thời gian rảnh

Transport Layer 3-110

02468

101214161820

28Kbps

100Kbps

1Mbps

10Mbps

non-persistent

persistent

parallel non-persistent

HTTP thời gian đaacutep ứng (giacircy)RTT = 100 msec O = 5 Kbytes M=10 vagrave X=5

Với băng thocircng thấp thời gian kết nối amp đaacutep ứng trội hơn thời gian truyền

Caacutec kết nối bền vững chỉ cho sự cải thiện khocircng đaacuteng kể trecircn caacutec kết nối song song

Transport Layer 3-111

0

10

20

30

40

50

60

70

28Kbps

100Kbps

1Mbps

10Mbps

non-persistent

persistent

parallel non-persistent

HTTP thời gian đaacutep ứng (giacircy)

RTT =1 sec O = 5 Kbytes M=10 and X=5

Với RTT lớn hơn thời gian đaacutep ứng trội hơn thời gian trễ chờ thiết lập kết nốiTCP amp khởi động chậm Caacutec kết nối bền vững bacircy giờ cho thấy cải thiện rotilde rệt đặc biệtvới caacutec mạng băng thocircng cao

Transport Layer 3-112

Chương 3 Tổng kết caacutec nguyecircn lyacute của caacutec

dịch vụ lớp transport multiplexing

demultiplexing truyền dữ liệu tin cậy điều khiển luồng điều khiển tắc nghẽn

khởi tạo vagrave hiện thực trong Internet UDP TCP

Tiếp theo nghiecircn cứu xong

caacutec vấn đề ldquongoagravei biecircnrdquo (caacutec lớp application transport)

chuẩn bị vagraveo phần ldquolotildeirdquo của mạng

  • Slide 1
  • Chương 3 Lớp Transport
  • Chương 3 Nội dung trigravenh bagravey
  • Caacutec dịch vụ vagrave giao thức Transport
  • Lớp Transport với lớp network
  • Caacutec giao thức lớp transport trecircn Internet
  • Slide 7
  • Multiplexingdemultiplexing
  • Demultiplexing lagravem việc như thế nagraveo
  • Demultiplexing khocircng kết nối
  • Demultiplexing khocircng kết nối (tiếp)
  • Demultiplexing hướng kết nối
  • Demultiplexing hướng kết nối (tiếp)
  • Demultiplexing hướng kết nối Threaded Web Server
  • Slide 15
  • UDP User Datagram Protocol [RFC 768]
  • UDP (tt)
  • UDP checksum
  • Viacute dụ Checksum
  • Slide 20
  • Caacutec nguyecircn lyacute truyền dữ liệu tin cậy
  • Slide 22
  • Slide 23
  • Truyền dữ liệu tin cậy
  • Slide 25
  • Rdt10 truyền dữ liệu tin cậy trecircn 1 kecircnh truyền tin cậy
  • Rdt20 kecircnh với caacutec lỗi
  • rdt20 đặc tả FSM
  • rdt20 hoạt động khi khocircng lỗi
  • rdt20 hoạt động khi coacute lỗi
  • rdt20 coacute lỗ hổng nghiecircm trọng
  • rdt21 người gửi quản lyacute caacutec ACKNAK bị hỏng
  • Slide 33
  • rdt21 thảo luận
  • rdt22 một giao thức khocircng cần NAK
  • rdt22 gửi nhận caacutec mảnh
  • rdt30 caacutec kecircnh với lỗi vagrave mất maacutet
  • rdt30 gửi
  • hagravenh động của rdt30
  • Slide 40
  • Hiệu suất của rdt30
  • rdt30 hoạt động dừng-vagrave-chờ
  • Caacutec giao thức Pipelined
  • Pipelining độ khả dụng tăng
  • Go-Back-N
  • GBN becircn gửi mở rộng FSM
  • GBN becircn nhận mở rộng FSM
  • GBN hoạt động
  • Lặp coacute lựa chọn
  • Lặp coacute lựa chọn caacutec cửa sổ gửi nhận
  • Slide 51
  • Hoạt động của lặp coacute lựa chọn
  • Lặp coacute lựa chọn tigravenh trạng khoacute giải quyết
  • Slide 54
  • TCP Tổng quan RFCs 793 1122 1323 2018 2581
  • TCP cấu truacutec đoạn
  • Caacutec số thứ tự TCP vagrave ACK
  • TCP Round Trip Time vagraveTimeout
  • TCP Round Trip Time vagrave Timeout
  • Viacute dụ đaacutenh giaacute RTT
  • Slide 61
  • TCP truyền dữ liệu tin cậy
  • TCP caacutec sự kiện
  • TCP becircn gửi (đơn giản)
  • TCP caacutec tigravenh huống truyền lại
  • TCP caacutec tigravenh huống truyền lại (tt)
  • TCP sinh ra ACK [RFC 1122 RFC 2581]
  • Truyền lại nhanh
  • Giải thuật truyền lại nhanh
  • Slide 70
  • TCP điều khiển luồng
  • TCP điều khiển luồng caacutech lagravem
  • Slide 73
  • TCP quản lyacute kết nối
  • TCP quản lyacute kết nối (tt)
  • Slide 76
  • Slide 77
  • Slide 78
  • Caacutec nguyecircn lyacute điều khiển tắc nghẽn
  • Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 1
  • Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 2
  • Slide 82
  • Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 3
  • Slide 84
  • Caacutec caacutech tiếp cận đối với điều khiển tắc nghẽn
  • Viacute dụ điều khiển tắc nghẽn ATM ABR
  • Slide 87
  • Slide 88
  • TCP điều khiển tắc nghẽn additive tăng lecircn multiplicative giảm xuống
  • TCP điều khiển tắc nghẽn chi tiết
  • TCP khởi động chậm
  • TCP khởi động chậm (tt)
  • Tinh chế
  • Tinh chế nhận biết mất maacutet
  • Tổng kết TCP điều khiển tắc nghẽn
  • TCP điều khiển tắc nghẽn becircn gửi
  • TCP throughput
  • TCP tương lai
  • TCP tiacutenh cocircng bằng
  • Tại sao phải TCP cocircng bằng
  • TCP tiacutenh cocircng bằng (tt)
  • Mocirc higravenh trễ
  • Cửa sổ tắc nghẽn cố định (1)
  • Cửa sổ tắc nghẽn cố định (2)
  • TCP Mocirc higravenh trễ Khởi động chậm (1)
  • TCP Mocirc higravenh trễ Khởi động chậm (2)
  • TCP Mocirc higravenh trễ(3)
  • TCP Mocirc higravenh trễ (4)
  • HTTP Mocirc higravenh
  • Slide 110
  • Slide 111
  • Chương 3 Tổng kết

Transport Layer 3-70

Chương 3 Nội dung trigravenh bagravey

31 Caacutec dịch vụ lớp Transport

32 Multiplexing vagrave demultiplexing

33 Vận chuyển khocircng kết nối UDP

34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy

35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối

36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn

37 Điều khiển tắc nghẽn TCP

Transport Layer 3-71

TCP điều khiển luồng

becircn nhận của kết nối TCP coacute một bộ đệm nhận

dịch vụ so trugraveng tốc độ so trugraveng tốc độ gửi với tốc độ nhận của ứng dụng

tiến trigravenh ứng dụng coacute thể chậm tại luacutec đọc bộ đệm

becircn gửi sẽ khocircng lagravem tragraven bộ đệm vigrave truyền quaacute nhiều vagrave

quaacute nhanh

điều khiển luồng

Transport Layer 3-72

TCP điều khiển luồng caacutech lagravem

(Giả sử becircn nhận TCP loại bỏ caacutec đoạn khocircng coacute thứ tự)

dự phograveng trong bộ đệm= RcvWindow

= RcvBuffer-[LastByteRcvd - LastByteRead]

Becircn nhận thocircng baacuteo khoảng dự trữ nhờ giaacute trị RcvWindow trong caacutec đoạn

Becircn gửi hạn chế dữ liệu khocircng được ACK vagraveo RcvWindow bảo đảm bộ đệm nhận

khocircng tragraven

Transport Layer 3-73

Chương 3 Nội dung trigravenh bagravey

31 Caacutec dịch vụ lớp Transport

32 Multiplexing vagrave demultiplexing

33 Vận chuyển khocircng kết nối UDP

34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy

35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối

36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn

37 Điều khiển tắc nghẽn TCP

Transport Layer 3-74

TCP quản lyacute kết nối

Chuacute yacute Becircn gửi vagrave becircn nhận TCP thiết lập ldquokết nốirdquo trước khi trao đổi dữ liệu

khởi tạo caacutec biến TCP caacutec số thứ tự đoạn thocircng tin caacutec bộ đệm điều

khiển luồng (như RcvWindow)

client người khởi xướng kết nối

Socket clientSocket = new Socket(hostnameport

number) server được tiếp xuacutec bởi

client Socket connectionSocket =

welcomeSocketaccept()

3 phương phaacutep bắt tay

Bước 1 client host gửi đoạnTCP SYN đến server xaacutec định số thứ tự khởi đầu khocircng phải dữ liệu

Bước 2 server host nhận SYN trả lời với đoạn SYNACK

server cấp phaacutet caacutec bộ đệm

xaacutec định số thứ tự khởi đầuBước 3 client nhận SYNACK trả

lời với đoạn ACK (coacute thể chứa dữ liệu)

Transport Layer 3-75

TCP quản lyacute kết nối (tt)

Đoacuteng một kết nối

client đoacuteng socket clientSocketclose()

Bước 1 client gửi đoạn điều khiển TCP FIN đến server

Bước 2 server nhận FIN trả lời với ACK Đoacuteng kết nối gửi FIN

client

FIN

server

ACK

ACK

FIN

đoacuteng

đoacuteng

đatilde đoacutengthời g

ian c

hờ

Transport Layer 3-76

TCP quản lyacute kết nối (tt)

Bước 3 client nhận FIN trả lời với ACK

Trong khoảng ldquothời gian chờrdquo ndash sẽ phản hồi với ACK để nhận caacutec FIN

Bước 4 server nhận ACK Kết nối đatilde đoacuteng

Chuacute yacute với một sửa đổi nhỏ coacute thể quản lyacute nhiều FIN đồng thời

client

FIN

server

ACK

ACK

FIN

đang đoacuteng

đang đoacuteng

đatilde đoacuteng

thời g

ian c

hờ

đatilde đoacuteng

Transport Layer 3-77

TCP quản lyacute kết nối (tt)

chu kỳ sống củaTCP client

chu kỳ sống củaTCP server

Transport Layer 3-78

Chương 3 Nội dung trigravenh bagravey

31 Caacutec dịch vụ lớp Transport

32 Multiplexing vagrave demultiplexing

33 Vận chuyển khocircng kết nối UDP

34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy

35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối

36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn

37 Điều khiển tắc nghẽn TCP

Transport Layer 3-79

Caacutec nguyecircn lyacute điều khiển tắc nghẽn

Tắc nghẽn ldquoquaacute nhiều nguồn gửi quaacute nhanh vagrave quaacute nhiều

dữ liệu đến mạngrdquo khaacutec với điều khiển luồng caacutec biểu hiện

caacutec goacutei bị mất (tragraven bộ đệm tại caacutec router) caacutec độ trễ quaacute dagravei (xếp hagraveng trong bộ đệm

của router) lagrave 1 trong 10 vấn đề nan giải nhất

Transport Layer 3-80

Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 1

2 gửi 2 nhận 1 router caacutec bộ

đệm khocircng giới hạn

khocircng coacute truyền lại

caacutec độ trễ lớn hơn khi tắc nghẽn

năng suất coacute thể đạt tối đa

unlimited shared output link buffers

Host Ain original data

Host B

out

Transport Layer 3-81

Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 2

1 router caacutec bộ đệm coacute giới hạn becircn gửi truyền lại caacutec goacutei đatilde mất

chia sẻ vocirc hạncaacutec bộ đệm ouput

Host A in dữ liệu gốc

Host B

out

in dữ liệu gốc cugraveng với dữ liệu truyền lại

Transport Layer 3-82

Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 2 luocircn luocircn

truyền lại ldquohoagraven toagravenrdquo chỉ khi mất maacutet

truyền lại vigrave trễ (khocircng mất) lagravem cho lớn hơn với cugraveng

in

out

=

in

out

gt

in

out

ldquocaacutec chi phiacuterdquo của tắc nghẽn nhiều việc (truyền lại) caacutec truyền lại khocircng cần thiết liecircn kết nhiều bản sao của

goacutei

R2

R2in

ou

t

b

R2

R2in

ou

t

a

R2

R2in

ou

t

c

R4

R3

Transport Layer 3-83

Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 3 4 người gửi caacutec đường qua nhiều hop timeouttruyền lại

in

Hỏi điều gigrave xảy ra nếu vagrave tăng lecircn

in

chia sẻ vocirc hạncaacutec bộ đệm ouput

Host Ain dữ liệu gốc

Host B

out

in dữ liệu gốc cugraveng với dữ liệu truyền lại

Transport Layer 3-84

Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 3

ldquochi phiacuterdquo khaacutec của tắc nghẽn khi caacutec goacutei bị bỏ bất kỳ ldquokhả năng truyền

upstream dugraveng cho goacutei đoacute sẽ bị latildeng phiacuterdquo

Host A

Host B

o

u

t

Transport Layer 3-85

Caacutec caacutech tiếp cận đối với điều khiển tắc nghẽn

điều khiển tắc nghẽn end-end

khocircng coacute phản hồi rotilde ragraveng từ mạng

tắc nghẽn được suy ra từ việc quan saacutet caacutec hệ thống đầu cuối coacute mất maacutet trễ

tiếp cận được quản lyacute bởi TCP

điều khiển tắc nghẽn coacute sự hỗ trợ của mạng

caacutec router cung cấp phản hồi về caacutec hệ thống đầu cuối 1 bit duy nhất chỉ thị

tắc nghẽn (SNA DECbit TCPIP ECN ATM)

tốc độ sẽ gửi được xaacutec định rotilde ragraveng

2 caacutech

Transport Layer 3-86

Viacute dụ điều khiển tắc nghẽn ATM ABR

ABR tốc độ bit sẵn sagraveng

ldquodịch vụ mềm dẻordquo nếu đường gửi ldquochưa

hếtrdquo becircn gửi sẽ dugraveng

băng thocircng sẵn sagraveng nếu đường gửi tắc

nghẽn becircn gửi điều tiết với

tốc độ tối thiểu

RM (resource management)

gửi bởi becircn gửi rải raacutec với caacutec ocirc dữ liệu

caacutec bit trong ocirc thiết lập bởi caacutec switch bit NI khocircng tăng tốc độ

(tắc nghẽn nhẹ) bit CI tắc nghẽn rotilde rệt

Caacutec ocirc RM được trả về becircn gửi từ becircn nhận với nguyecircn vẹn caacutec bit

Transport Layer 3-87

Viacute dụ điều khiển tắc nghẽn ATM ABR

trường 2-byte ER trong ocirc RM switch đatilde tắc nghẽn coacute thể coacute giaacute trị ER thấp hơn trong ocirc tốc độ gửi do đoacute coacute thể được hỗ trợ tối đa trecircn đường

EFCI bit trong caacutec ocirc dữ liệu được cagravei giaacute trị 1 trong switch đatilde tắc nghẽn nếu ocirc dữ liệu đứng trước ocirc RM coacute cagravei EFCI becircn gửi sẽ cagravei

bit CI trong ocirc RM trả về

Transport Layer 3-88

Chương 3 Nội dung trigravenh bagravey

31 Caacutec dịch vụ lớp Transport

32 Multiplexing vagrave demultiplexing

33 Vận chuyển khocircng kết nối UDP

34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy

35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối

36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn

37 Điều khiển tắc nghẽn TCP

Transport Layer 3-89

TCP điều khiển tắc nghẽn additive tăng lecircn multiplicative giảm xuống

8 Kbytes

16 Kbytes

24 Kbytes

time

congestionwindow

Caacutech tiếp cận tăng tốc độ truyền (kiacutech thước cửa sổ) tigravem khả năng băng thocircng coacute thể cho đến khi coacute mất maacutet xảy ra additive tăng lecircn tăng CongWin bởi 1 MSS

mỗi RTT cho đến khi coacute mất maacutet xảy ra multiplicative giảm xuống bỏ CongWin trong

nửa giai đoạn sau khi mất maacutet

timekiacutech

thư

ớc

cửa

sổ

tắc

nghẽ

n

Tigravem kiếm băng thocircng

Transport Layer 3-90

TCP điều khiển tắc nghẽn chi tiết

becircn gửi hạn chế việc truyền LastByteSent-LastByteAcked

CongWin Cocircng thức

CongWin thay đổi chức năng lagrave nhận biết tắc nghẽn trecircn mạng

Lagravem thế nagraveo becircn gửi nhận biết tắc nghẽn

mất maacutet xảy ra = timeout hoặc 3 ack trugraveng lặp

becircn gửi giảm tốc độ (CongWin) sau khi mất maacutet xảy ra

3 cơ chế AIMD khởi động chậm thận trọng sau khi coacute

caacutec sự kiện timeout

tốc độ = CongWin

RTT Bytess

Transport Layer 3-91

TCP khởi động chậm

Khi kết nối bắt đầu CongWin = 1 MSS Viacute dụ MSS = 500 bytes

amp RTT = 200 ms tốc độ khởi tạo = 20

kbps

băng thocircng sẵn sagraveng coacute thể gtgt MSSRTT mong muốn nhanh

choacuteng tăng tốc lecircn tốc độ coacute thể đaacutep ứng

Khi kết nối bắt đầu tăng tốc lecircn rất nhanh cho đến khi sự cố mất maacutet xảy ra đầu tiecircn

Transport Layer 3-92

TCP khởi động chậm (tt)

Khi kết nối bắt đầu tăng tốc lecircn rất nhanh cho đến khi sự cố mất maacutet xảy ra đầu tiecircn nhacircn đocirci CongWin mỗi

RTT hoagraven thagravenh nhờ tăng CongWin ứng với mỗi ACK đatilde nhận

Tổng kết tốc độ khởi đầu lagrave chậm nhưng sau đoacute tăng tốc rất nhanh

Host A

1 đoạn

RTT

Host B

thời gian

2 đoạn

4 đoạn

Transport Layer 3-93

Tinh chếHỏi Khi nagraveo việc tăng

tốc trở thagravenh tuyến tiacutenh

Trả lời Khi CongWin đạt đến 12 giaacute trị của noacute trước khi timeout

Hiện thực Ngưỡng thay đổi Tại thời điểm coacute sự cố

mất maacutet ngưỡng được cagravei giaacute trị bằng frac12 của CongWin ngay trước đoacute

Transport Layer 3-94

Tinh chế nhận biết mất maacutet

Sau 3 ACK trugraveng lặp CongWin sẽ giảm 12 kiacutech thước cửa sổ

tăng tuyến tiacutenh nhưng sau sự cố

timeout CongWin thay giaacute trị

bằng 1 MSS kiacutech thước cửa sổ

tăng cấp lũy thừa khi đến một ngưỡng

thigrave tăng tuyến tiacutenh

3 ACK trugraveng nhau chỉ ra khả năng truyền của mạng timeout chỉ thị ldquonhiều cảnh baacuteordquo về tigravenh huống tắc nghẽn

Nguyecircn lyacute

Transport Layer 3-95

Tổng kết TCP điều khiển tắc nghẽn

Khi CongWin dưới Threshold becircn gửi đang trong giai đoạn khởi động chậm kiacutech thước cửa sổ tăng nhanh theo cấp lũy thừa

Khi CongWin trecircn Threshold becircn gửi đang trong giai đoạn traacutenh tắc nghẽn kiacutech thước cửa sổ tăng nhanh theo cấp tuyến tiacutenh

Khi coacute 3 ACK trugraveng lặp xảy ra Threshold = CongWin2 vagrave CongWin = Threshold

Khi timeout xảy ra Threshold = CongWin2 vagrave CongWin = 1 MSS

Transport Layer 3-96

TCP điều khiển tắc nghẽn becircn gửi

Trạng thaacutei Sự kiện TCP becircn gửi hagravenh động Diễn giải

Slow Start (SS)-Khởi động chậm

ACK baacuteo nhận cho dữ liệu chưa ACK trước đoacute

CongWin = CongWin + MSS If (CongWin gt Threshold) cagravei đặt trạng thaacutei ldquoTraacutenh tắc nghẽnrdquo

Hậu quả lagravem tăng gấp đocirci CongWin mỗi RTT

CongestionAvoidance (CA) ndashTraacutenh tắc nghẽn

ACK baacuteo nhận cho dữ liệu chưa ACK trước đoacute

CongWin = CongWin+MSS (MSSCongWin)

Additive tăng lecircn lagravem tăng CongWin lecircn 1 MSS mỗi RTT

SS hoặc CA Sự cố mất maacutet xảy ra khi thấy coacute 3 ACK trugraveng lặp

Threshold = CongWin2 CongWin = Thresholdcagravei đặt trạng thaacutei ldquoTraacutenh tắc nghẽnrdquo

Khocirci phục nhanh hiện thực giảm xuống multiplicative CongWin sẽ khocircng giảm xuống dưới 1 MSS

SS hoặc CA Timeout Threshold = CongWin2 CongWin = 1 MSScagravei đặt trạng thaacutei ldquoKhởi động chậmrdquo

Vagraveo chế độ ldquoKhởi động chậmrdquo

SS hoặc CA ACK trugraveng lặp

Đếm ACK tăng lecircn cho đoạn vừa được ACK

CongWin vagrave Threshold khocircng thay đổi

Transport Layer 3-97

TCP throughput

Throughout trung bigravenh của TCP biểu diễn qua kiacutech thước của sổ vagrave RTT Bỏ qua trạng thaacutei ldquoKhởi động chậmrdquo

Cho W lagrave kiacutech thước cửa sổ khi coacute mất maacutet xảy ra

Khi kiacutech thước cửa sổ = W lưu lượng = WRTT

Chỉ ngay sau khi mất maacutet cửa sổ giảm xuống = W2 lưu lượng = W2RTT

throughout trung bigravenh 075 WRTT

Transport Layer 3-98

TCP tương lai

Viacute dụ caacutec đoạn dagravei 1500 byte RTT 100ms lưu lượng 10 Gbps

Kiacutech thước cửa sổ yecircu cầu W = 83333 đoạn trecircn đường truyền

Lưu lượng trong caacutec trường hợp mất maacutet

L = 210-10

Phiecircn bản mới của TCP dagravenh cho nhu cầu tốc độ cao

LRTT

MSS221

Transport Layer 3-99

Mục tiecircu nếu K phiecircn lagravem việc TCP chia sẻ kết nối cổ chai của băng thocircng lagrave R mỗi phiecircn coacute tốc độ trung bigravenh lagrave RK

TCP kết nối 1

router cổ chaikhả năng R

TCP kết nối 2

TCP tiacutenh cocircng bằng

Transport Layer 3-100

Tại sao phải TCP cocircng bằng

2 phiecircn lagravem việc cạnh tranh nhau Additive tăng lưu lượng tăng multiplicative giảm lưu lượng tương xứng

R

R

chia sẻ băng thocircng bằng nhau

Connection 1 throughputConnect

ion 2

th

roughput

traacutenh tắc nghẽn additive tăng lecircnmất maacutet giảm cửa sổ bằng 12

traacutenh tắc nghẽn additive tăng lecircnmất maacutet giảm cửa sổ bằng 12

Transport Layer 3-101

TCP tiacutenh cocircng bằng (tt)

Tiacutenh cocircng bằng amp UDP nhiều ứng dụng

thường khocircng dugraveng TCP khocircng muốn tốc độ bị

điều tiết do điều khiển tắc nghẽn

Thay bằng dugraveng UDP truyền audiovideo với

tốc độ ổn định chịu được mất maacutet

Nghiecircn cứu giao thức thacircn thiện với TCP

Tiacutenh cocircng bằng amp caacutec kết nối TCP song song

khocircng coacute gigrave ngăn cản việc ứng dụng mở caacutec kết nối song song giữa 2 host

Trigravenh duyệt Web lagravem giống như thế

Viacute dụ tốc độ R hỗ trợ 9 kết nối ứng dụng mới yecircu cầu 1

TCP coacute tốc độ R10 ứng dụng mới yecircu cầu 11

TCP coacute tốc độ R2

Transport Layer 3-102

Mocirc higravenh trễ

Hỏi Mất bao lacircu để nhận 1 đối tượng từ Web server sau khi gửi yecircu cầu

Bỏ qua tắc nghẽn trễ bị ảnh hưởng bởi

thiết lập kết nối TCP trễ truyền dữ liệu khởi động chậm

Notation caacutec giả định Giả sử một kết nối giữa

client vagrave server coacute tốc độ R

S MSS (bits) O kiacutech thước đối tượng

(bits) khocircng truyền lại (khocircng

mất maacutet khocircng hỏng)

Kiacutech thước cửa sổ Giả định 1 cửa sổ tắc

nghẽn cố định coacute W đoạn Sau đoacute cửa sổ thay đổi

mocirc higravenh khởi động chậm

Transport Layer 3-103

Cửa sổ tắc nghẽn cố định (1)

Trường hợp đầu tiecircnWSR gt RTT + SR cho

đoạn đầu tiecircn trong cửa sổ trả về trước khi cửa sổ dữ liệu gửi ACK

trễ = 2RTT + OR

Transport Layer 3-104

Cửa sổ tắc nghẽn cố định (2)

Trường hợp thứ hai WSR lt RTT + SR sent

chờ cho ACK sau khi gửi dữ liệu

trễ = 2RTT + OR+ (K-1)[SR + RTT - WSR]

Transport Layer 3-105

TCP Mocirc higravenh trễ Khởi động chậm (1)

Bacircy giờ giả sử kiacutech thước cửa sổ tăng lecircn tugravey theo quaacute trigravenh khởi động chậm

Độ trễ của một đối tượng sẽ lagrave

R

S

R

SRTTP

R

ORTTLatency P )12(2

trong đoacute P lagrave số lần TCP rảnh ở tại server

1min KQP

- trong đoacute Q lagrave số lần server rảnh nếu đối tượng đatilde khởi tạo kiacutech thước

- vagrave K lagrave số lượng cửa sổ bao trugravem đối tượng

Transport Layer 3-106

TCP Mocirc higravenh trễ Khởi động chậm (2)

RTT

initia te TCPconnection

requestobject

first w indow= S R

second w indow= 2S R

third w indow= 4S R

fourth w indow= 8S R

com pletetransm issionobject

delivered

tim e atc lient

tim e atserver

Viacute dụbull OS = 15 đoạnbull K = 4 cửa sổbull Q = 2bull P = minK-1Q = 2

Server rảnh P=2 lần

Caacutec thagravenh phần trễbull 2 RTT dagravenh cho thiết lập kết nối vagrave yecircu cầubull OR để truyền đối tượngbullthời gian server rảnh bởi vigrave khởi động chậm

Server rảnh P = minK-1Q lần

Transport Layer 3-107

TCP Mocirc higravenh trễ(3)

R

S

R

SRTTPRTT

R

O

R

SRTT

R

SRTT

R

O

idleTimeRTTR

O

P

kP

k

P

pp

)12(][2

]2[2

2delay

1

1

1

th window after the timeidle 2 1 kR

SRTT

R

S k

ementacknowledg receivesserver until

segment send tostartsserver when from time RTTR

S

window kth the transmit totime2 1

R

Sk

RTT

initia te TCPconnection

requestobject

first w indow= S R

second w indow= 2S R

third w indow= 4S R

fourth w indow= 8S R

com pletetransm issionobject

delivered

tim e atc lient

tim e atserver

Transport Layer 3-108

TCP Mocirc higravenh trễ (4)

)1(log

)1(logmin

12min

222min

222min

2

2

110

110

S

OS

Okk

S

Ok

SOk

OSSSkK

k

k

k

caacutech tiacutenh toaacuten Q tương tự (xem HW)

K = số lượng cửa sổ bao trugravem đối tượngLagravem thế nagraveo tiacutenh được K

Transport Layer 3-109

HTTP Mocirc higravenh Giả sử trang Web chứa

1 trang HTML (kiacutech thước O bits) M higravenh ảnh (mỗi caacutei kiacutech thướcO bits)

HTTP khocircng bền vững M+1 TCP kết nối Thời gian đaacutep ứng = (M+1)OR + (M+1)2RTT + tổng số thời

gian rảnh HTTP bền vững

2 RTT để yecircu cầu vagrave nhận file HTML 1 RTT để yecircu cầu vagrave nhận M higravenh ảnh Thời gian đaacutep ứng = (M+1)OR + 3RTT + tổng số thời gian

rảnh HTTP khocircng bền vững với X kết nối song song

Giả sử MX lagrave số nguyecircn 1 TCP kết nối cho file MX thiết lập caacutec kết nối song song cho caacutec higravenh ảnh Thời gian đaacutep ứng = (M+1)OR + (MX + 1)2RTT + tổng số

thời gian rảnh

Transport Layer 3-110

02468

101214161820

28Kbps

100Kbps

1Mbps

10Mbps

non-persistent

persistent

parallel non-persistent

HTTP thời gian đaacutep ứng (giacircy)RTT = 100 msec O = 5 Kbytes M=10 vagrave X=5

Với băng thocircng thấp thời gian kết nối amp đaacutep ứng trội hơn thời gian truyền

Caacutec kết nối bền vững chỉ cho sự cải thiện khocircng đaacuteng kể trecircn caacutec kết nối song song

Transport Layer 3-111

0

10

20

30

40

50

60

70

28Kbps

100Kbps

1Mbps

10Mbps

non-persistent

persistent

parallel non-persistent

HTTP thời gian đaacutep ứng (giacircy)

RTT =1 sec O = 5 Kbytes M=10 and X=5

Với RTT lớn hơn thời gian đaacutep ứng trội hơn thời gian trễ chờ thiết lập kết nốiTCP amp khởi động chậm Caacutec kết nối bền vững bacircy giờ cho thấy cải thiện rotilde rệt đặc biệtvới caacutec mạng băng thocircng cao

Transport Layer 3-112

Chương 3 Tổng kết caacutec nguyecircn lyacute của caacutec

dịch vụ lớp transport multiplexing

demultiplexing truyền dữ liệu tin cậy điều khiển luồng điều khiển tắc nghẽn

khởi tạo vagrave hiện thực trong Internet UDP TCP

Tiếp theo nghiecircn cứu xong

caacutec vấn đề ldquongoagravei biecircnrdquo (caacutec lớp application transport)

chuẩn bị vagraveo phần ldquolotildeirdquo của mạng

  • Slide 1
  • Chương 3 Lớp Transport
  • Chương 3 Nội dung trigravenh bagravey
  • Caacutec dịch vụ vagrave giao thức Transport
  • Lớp Transport với lớp network
  • Caacutec giao thức lớp transport trecircn Internet
  • Slide 7
  • Multiplexingdemultiplexing
  • Demultiplexing lagravem việc như thế nagraveo
  • Demultiplexing khocircng kết nối
  • Demultiplexing khocircng kết nối (tiếp)
  • Demultiplexing hướng kết nối
  • Demultiplexing hướng kết nối (tiếp)
  • Demultiplexing hướng kết nối Threaded Web Server
  • Slide 15
  • UDP User Datagram Protocol [RFC 768]
  • UDP (tt)
  • UDP checksum
  • Viacute dụ Checksum
  • Slide 20
  • Caacutec nguyecircn lyacute truyền dữ liệu tin cậy
  • Slide 22
  • Slide 23
  • Truyền dữ liệu tin cậy
  • Slide 25
  • Rdt10 truyền dữ liệu tin cậy trecircn 1 kecircnh truyền tin cậy
  • Rdt20 kecircnh với caacutec lỗi
  • rdt20 đặc tả FSM
  • rdt20 hoạt động khi khocircng lỗi
  • rdt20 hoạt động khi coacute lỗi
  • rdt20 coacute lỗ hổng nghiecircm trọng
  • rdt21 người gửi quản lyacute caacutec ACKNAK bị hỏng
  • Slide 33
  • rdt21 thảo luận
  • rdt22 một giao thức khocircng cần NAK
  • rdt22 gửi nhận caacutec mảnh
  • rdt30 caacutec kecircnh với lỗi vagrave mất maacutet
  • rdt30 gửi
  • hagravenh động của rdt30
  • Slide 40
  • Hiệu suất của rdt30
  • rdt30 hoạt động dừng-vagrave-chờ
  • Caacutec giao thức Pipelined
  • Pipelining độ khả dụng tăng
  • Go-Back-N
  • GBN becircn gửi mở rộng FSM
  • GBN becircn nhận mở rộng FSM
  • GBN hoạt động
  • Lặp coacute lựa chọn
  • Lặp coacute lựa chọn caacutec cửa sổ gửi nhận
  • Slide 51
  • Hoạt động của lặp coacute lựa chọn
  • Lặp coacute lựa chọn tigravenh trạng khoacute giải quyết
  • Slide 54
  • TCP Tổng quan RFCs 793 1122 1323 2018 2581
  • TCP cấu truacutec đoạn
  • Caacutec số thứ tự TCP vagrave ACK
  • TCP Round Trip Time vagraveTimeout
  • TCP Round Trip Time vagrave Timeout
  • Viacute dụ đaacutenh giaacute RTT
  • Slide 61
  • TCP truyền dữ liệu tin cậy
  • TCP caacutec sự kiện
  • TCP becircn gửi (đơn giản)
  • TCP caacutec tigravenh huống truyền lại
  • TCP caacutec tigravenh huống truyền lại (tt)
  • TCP sinh ra ACK [RFC 1122 RFC 2581]
  • Truyền lại nhanh
  • Giải thuật truyền lại nhanh
  • Slide 70
  • TCP điều khiển luồng
  • TCP điều khiển luồng caacutech lagravem
  • Slide 73
  • TCP quản lyacute kết nối
  • TCP quản lyacute kết nối (tt)
  • Slide 76
  • Slide 77
  • Slide 78
  • Caacutec nguyecircn lyacute điều khiển tắc nghẽn
  • Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 1
  • Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 2
  • Slide 82
  • Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 3
  • Slide 84
  • Caacutec caacutech tiếp cận đối với điều khiển tắc nghẽn
  • Viacute dụ điều khiển tắc nghẽn ATM ABR
  • Slide 87
  • Slide 88
  • TCP điều khiển tắc nghẽn additive tăng lecircn multiplicative giảm xuống
  • TCP điều khiển tắc nghẽn chi tiết
  • TCP khởi động chậm
  • TCP khởi động chậm (tt)
  • Tinh chế
  • Tinh chế nhận biết mất maacutet
  • Tổng kết TCP điều khiển tắc nghẽn
  • TCP điều khiển tắc nghẽn becircn gửi
  • TCP throughput
  • TCP tương lai
  • TCP tiacutenh cocircng bằng
  • Tại sao phải TCP cocircng bằng
  • TCP tiacutenh cocircng bằng (tt)
  • Mocirc higravenh trễ
  • Cửa sổ tắc nghẽn cố định (1)
  • Cửa sổ tắc nghẽn cố định (2)
  • TCP Mocirc higravenh trễ Khởi động chậm (1)
  • TCP Mocirc higravenh trễ Khởi động chậm (2)
  • TCP Mocirc higravenh trễ(3)
  • TCP Mocirc higravenh trễ (4)
  • HTTP Mocirc higravenh
  • Slide 110
  • Slide 111
  • Chương 3 Tổng kết

Transport Layer 3-71

TCP điều khiển luồng

becircn nhận của kết nối TCP coacute một bộ đệm nhận

dịch vụ so trugraveng tốc độ so trugraveng tốc độ gửi với tốc độ nhận của ứng dụng

tiến trigravenh ứng dụng coacute thể chậm tại luacutec đọc bộ đệm

becircn gửi sẽ khocircng lagravem tragraven bộ đệm vigrave truyền quaacute nhiều vagrave

quaacute nhanh

điều khiển luồng

Transport Layer 3-72

TCP điều khiển luồng caacutech lagravem

(Giả sử becircn nhận TCP loại bỏ caacutec đoạn khocircng coacute thứ tự)

dự phograveng trong bộ đệm= RcvWindow

= RcvBuffer-[LastByteRcvd - LastByteRead]

Becircn nhận thocircng baacuteo khoảng dự trữ nhờ giaacute trị RcvWindow trong caacutec đoạn

Becircn gửi hạn chế dữ liệu khocircng được ACK vagraveo RcvWindow bảo đảm bộ đệm nhận

khocircng tragraven

Transport Layer 3-73

Chương 3 Nội dung trigravenh bagravey

31 Caacutec dịch vụ lớp Transport

32 Multiplexing vagrave demultiplexing

33 Vận chuyển khocircng kết nối UDP

34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy

35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối

36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn

37 Điều khiển tắc nghẽn TCP

Transport Layer 3-74

TCP quản lyacute kết nối

Chuacute yacute Becircn gửi vagrave becircn nhận TCP thiết lập ldquokết nốirdquo trước khi trao đổi dữ liệu

khởi tạo caacutec biến TCP caacutec số thứ tự đoạn thocircng tin caacutec bộ đệm điều

khiển luồng (như RcvWindow)

client người khởi xướng kết nối

Socket clientSocket = new Socket(hostnameport

number) server được tiếp xuacutec bởi

client Socket connectionSocket =

welcomeSocketaccept()

3 phương phaacutep bắt tay

Bước 1 client host gửi đoạnTCP SYN đến server xaacutec định số thứ tự khởi đầu khocircng phải dữ liệu

Bước 2 server host nhận SYN trả lời với đoạn SYNACK

server cấp phaacutet caacutec bộ đệm

xaacutec định số thứ tự khởi đầuBước 3 client nhận SYNACK trả

lời với đoạn ACK (coacute thể chứa dữ liệu)

Transport Layer 3-75

TCP quản lyacute kết nối (tt)

Đoacuteng một kết nối

client đoacuteng socket clientSocketclose()

Bước 1 client gửi đoạn điều khiển TCP FIN đến server

Bước 2 server nhận FIN trả lời với ACK Đoacuteng kết nối gửi FIN

client

FIN

server

ACK

ACK

FIN

đoacuteng

đoacuteng

đatilde đoacutengthời g

ian c

hờ

Transport Layer 3-76

TCP quản lyacute kết nối (tt)

Bước 3 client nhận FIN trả lời với ACK

Trong khoảng ldquothời gian chờrdquo ndash sẽ phản hồi với ACK để nhận caacutec FIN

Bước 4 server nhận ACK Kết nối đatilde đoacuteng

Chuacute yacute với một sửa đổi nhỏ coacute thể quản lyacute nhiều FIN đồng thời

client

FIN

server

ACK

ACK

FIN

đang đoacuteng

đang đoacuteng

đatilde đoacuteng

thời g

ian c

hờ

đatilde đoacuteng

Transport Layer 3-77

TCP quản lyacute kết nối (tt)

chu kỳ sống củaTCP client

chu kỳ sống củaTCP server

Transport Layer 3-78

Chương 3 Nội dung trigravenh bagravey

31 Caacutec dịch vụ lớp Transport

32 Multiplexing vagrave demultiplexing

33 Vận chuyển khocircng kết nối UDP

34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy

35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối

36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn

37 Điều khiển tắc nghẽn TCP

Transport Layer 3-79

Caacutec nguyecircn lyacute điều khiển tắc nghẽn

Tắc nghẽn ldquoquaacute nhiều nguồn gửi quaacute nhanh vagrave quaacute nhiều

dữ liệu đến mạngrdquo khaacutec với điều khiển luồng caacutec biểu hiện

caacutec goacutei bị mất (tragraven bộ đệm tại caacutec router) caacutec độ trễ quaacute dagravei (xếp hagraveng trong bộ đệm

của router) lagrave 1 trong 10 vấn đề nan giải nhất

Transport Layer 3-80

Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 1

2 gửi 2 nhận 1 router caacutec bộ

đệm khocircng giới hạn

khocircng coacute truyền lại

caacutec độ trễ lớn hơn khi tắc nghẽn

năng suất coacute thể đạt tối đa

unlimited shared output link buffers

Host Ain original data

Host B

out

Transport Layer 3-81

Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 2

1 router caacutec bộ đệm coacute giới hạn becircn gửi truyền lại caacutec goacutei đatilde mất

chia sẻ vocirc hạncaacutec bộ đệm ouput

Host A in dữ liệu gốc

Host B

out

in dữ liệu gốc cugraveng với dữ liệu truyền lại

Transport Layer 3-82

Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 2 luocircn luocircn

truyền lại ldquohoagraven toagravenrdquo chỉ khi mất maacutet

truyền lại vigrave trễ (khocircng mất) lagravem cho lớn hơn với cugraveng

in

out

=

in

out

gt

in

out

ldquocaacutec chi phiacuterdquo của tắc nghẽn nhiều việc (truyền lại) caacutec truyền lại khocircng cần thiết liecircn kết nhiều bản sao của

goacutei

R2

R2in

ou

t

b

R2

R2in

ou

t

a

R2

R2in

ou

t

c

R4

R3

Transport Layer 3-83

Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 3 4 người gửi caacutec đường qua nhiều hop timeouttruyền lại

in

Hỏi điều gigrave xảy ra nếu vagrave tăng lecircn

in

chia sẻ vocirc hạncaacutec bộ đệm ouput

Host Ain dữ liệu gốc

Host B

out

in dữ liệu gốc cugraveng với dữ liệu truyền lại

Transport Layer 3-84

Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 3

ldquochi phiacuterdquo khaacutec của tắc nghẽn khi caacutec goacutei bị bỏ bất kỳ ldquokhả năng truyền

upstream dugraveng cho goacutei đoacute sẽ bị latildeng phiacuterdquo

Host A

Host B

o

u

t

Transport Layer 3-85

Caacutec caacutech tiếp cận đối với điều khiển tắc nghẽn

điều khiển tắc nghẽn end-end

khocircng coacute phản hồi rotilde ragraveng từ mạng

tắc nghẽn được suy ra từ việc quan saacutet caacutec hệ thống đầu cuối coacute mất maacutet trễ

tiếp cận được quản lyacute bởi TCP

điều khiển tắc nghẽn coacute sự hỗ trợ của mạng

caacutec router cung cấp phản hồi về caacutec hệ thống đầu cuối 1 bit duy nhất chỉ thị

tắc nghẽn (SNA DECbit TCPIP ECN ATM)

tốc độ sẽ gửi được xaacutec định rotilde ragraveng

2 caacutech

Transport Layer 3-86

Viacute dụ điều khiển tắc nghẽn ATM ABR

ABR tốc độ bit sẵn sagraveng

ldquodịch vụ mềm dẻordquo nếu đường gửi ldquochưa

hếtrdquo becircn gửi sẽ dugraveng

băng thocircng sẵn sagraveng nếu đường gửi tắc

nghẽn becircn gửi điều tiết với

tốc độ tối thiểu

RM (resource management)

gửi bởi becircn gửi rải raacutec với caacutec ocirc dữ liệu

caacutec bit trong ocirc thiết lập bởi caacutec switch bit NI khocircng tăng tốc độ

(tắc nghẽn nhẹ) bit CI tắc nghẽn rotilde rệt

Caacutec ocirc RM được trả về becircn gửi từ becircn nhận với nguyecircn vẹn caacutec bit

Transport Layer 3-87

Viacute dụ điều khiển tắc nghẽn ATM ABR

trường 2-byte ER trong ocirc RM switch đatilde tắc nghẽn coacute thể coacute giaacute trị ER thấp hơn trong ocirc tốc độ gửi do đoacute coacute thể được hỗ trợ tối đa trecircn đường

EFCI bit trong caacutec ocirc dữ liệu được cagravei giaacute trị 1 trong switch đatilde tắc nghẽn nếu ocirc dữ liệu đứng trước ocirc RM coacute cagravei EFCI becircn gửi sẽ cagravei

bit CI trong ocirc RM trả về

Transport Layer 3-88

Chương 3 Nội dung trigravenh bagravey

31 Caacutec dịch vụ lớp Transport

32 Multiplexing vagrave demultiplexing

33 Vận chuyển khocircng kết nối UDP

34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy

35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối

36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn

37 Điều khiển tắc nghẽn TCP

Transport Layer 3-89

TCP điều khiển tắc nghẽn additive tăng lecircn multiplicative giảm xuống

8 Kbytes

16 Kbytes

24 Kbytes

time

congestionwindow

Caacutech tiếp cận tăng tốc độ truyền (kiacutech thước cửa sổ) tigravem khả năng băng thocircng coacute thể cho đến khi coacute mất maacutet xảy ra additive tăng lecircn tăng CongWin bởi 1 MSS

mỗi RTT cho đến khi coacute mất maacutet xảy ra multiplicative giảm xuống bỏ CongWin trong

nửa giai đoạn sau khi mất maacutet

timekiacutech

thư

ớc

cửa

sổ

tắc

nghẽ

n

Tigravem kiếm băng thocircng

Transport Layer 3-90

TCP điều khiển tắc nghẽn chi tiết

becircn gửi hạn chế việc truyền LastByteSent-LastByteAcked

CongWin Cocircng thức

CongWin thay đổi chức năng lagrave nhận biết tắc nghẽn trecircn mạng

Lagravem thế nagraveo becircn gửi nhận biết tắc nghẽn

mất maacutet xảy ra = timeout hoặc 3 ack trugraveng lặp

becircn gửi giảm tốc độ (CongWin) sau khi mất maacutet xảy ra

3 cơ chế AIMD khởi động chậm thận trọng sau khi coacute

caacutec sự kiện timeout

tốc độ = CongWin

RTT Bytess

Transport Layer 3-91

TCP khởi động chậm

Khi kết nối bắt đầu CongWin = 1 MSS Viacute dụ MSS = 500 bytes

amp RTT = 200 ms tốc độ khởi tạo = 20

kbps

băng thocircng sẵn sagraveng coacute thể gtgt MSSRTT mong muốn nhanh

choacuteng tăng tốc lecircn tốc độ coacute thể đaacutep ứng

Khi kết nối bắt đầu tăng tốc lecircn rất nhanh cho đến khi sự cố mất maacutet xảy ra đầu tiecircn

Transport Layer 3-92

TCP khởi động chậm (tt)

Khi kết nối bắt đầu tăng tốc lecircn rất nhanh cho đến khi sự cố mất maacutet xảy ra đầu tiecircn nhacircn đocirci CongWin mỗi

RTT hoagraven thagravenh nhờ tăng CongWin ứng với mỗi ACK đatilde nhận

Tổng kết tốc độ khởi đầu lagrave chậm nhưng sau đoacute tăng tốc rất nhanh

Host A

1 đoạn

RTT

Host B

thời gian

2 đoạn

4 đoạn

Transport Layer 3-93

Tinh chếHỏi Khi nagraveo việc tăng

tốc trở thagravenh tuyến tiacutenh

Trả lời Khi CongWin đạt đến 12 giaacute trị của noacute trước khi timeout

Hiện thực Ngưỡng thay đổi Tại thời điểm coacute sự cố

mất maacutet ngưỡng được cagravei giaacute trị bằng frac12 của CongWin ngay trước đoacute

Transport Layer 3-94

Tinh chế nhận biết mất maacutet

Sau 3 ACK trugraveng lặp CongWin sẽ giảm 12 kiacutech thước cửa sổ

tăng tuyến tiacutenh nhưng sau sự cố

timeout CongWin thay giaacute trị

bằng 1 MSS kiacutech thước cửa sổ

tăng cấp lũy thừa khi đến một ngưỡng

thigrave tăng tuyến tiacutenh

3 ACK trugraveng nhau chỉ ra khả năng truyền của mạng timeout chỉ thị ldquonhiều cảnh baacuteordquo về tigravenh huống tắc nghẽn

Nguyecircn lyacute

Transport Layer 3-95

Tổng kết TCP điều khiển tắc nghẽn

Khi CongWin dưới Threshold becircn gửi đang trong giai đoạn khởi động chậm kiacutech thước cửa sổ tăng nhanh theo cấp lũy thừa

Khi CongWin trecircn Threshold becircn gửi đang trong giai đoạn traacutenh tắc nghẽn kiacutech thước cửa sổ tăng nhanh theo cấp tuyến tiacutenh

Khi coacute 3 ACK trugraveng lặp xảy ra Threshold = CongWin2 vagrave CongWin = Threshold

Khi timeout xảy ra Threshold = CongWin2 vagrave CongWin = 1 MSS

Transport Layer 3-96

TCP điều khiển tắc nghẽn becircn gửi

Trạng thaacutei Sự kiện TCP becircn gửi hagravenh động Diễn giải

Slow Start (SS)-Khởi động chậm

ACK baacuteo nhận cho dữ liệu chưa ACK trước đoacute

CongWin = CongWin + MSS If (CongWin gt Threshold) cagravei đặt trạng thaacutei ldquoTraacutenh tắc nghẽnrdquo

Hậu quả lagravem tăng gấp đocirci CongWin mỗi RTT

CongestionAvoidance (CA) ndashTraacutenh tắc nghẽn

ACK baacuteo nhận cho dữ liệu chưa ACK trước đoacute

CongWin = CongWin+MSS (MSSCongWin)

Additive tăng lecircn lagravem tăng CongWin lecircn 1 MSS mỗi RTT

SS hoặc CA Sự cố mất maacutet xảy ra khi thấy coacute 3 ACK trugraveng lặp

Threshold = CongWin2 CongWin = Thresholdcagravei đặt trạng thaacutei ldquoTraacutenh tắc nghẽnrdquo

Khocirci phục nhanh hiện thực giảm xuống multiplicative CongWin sẽ khocircng giảm xuống dưới 1 MSS

SS hoặc CA Timeout Threshold = CongWin2 CongWin = 1 MSScagravei đặt trạng thaacutei ldquoKhởi động chậmrdquo

Vagraveo chế độ ldquoKhởi động chậmrdquo

SS hoặc CA ACK trugraveng lặp

Đếm ACK tăng lecircn cho đoạn vừa được ACK

CongWin vagrave Threshold khocircng thay đổi

Transport Layer 3-97

TCP throughput

Throughout trung bigravenh của TCP biểu diễn qua kiacutech thước của sổ vagrave RTT Bỏ qua trạng thaacutei ldquoKhởi động chậmrdquo

Cho W lagrave kiacutech thước cửa sổ khi coacute mất maacutet xảy ra

Khi kiacutech thước cửa sổ = W lưu lượng = WRTT

Chỉ ngay sau khi mất maacutet cửa sổ giảm xuống = W2 lưu lượng = W2RTT

throughout trung bigravenh 075 WRTT

Transport Layer 3-98

TCP tương lai

Viacute dụ caacutec đoạn dagravei 1500 byte RTT 100ms lưu lượng 10 Gbps

Kiacutech thước cửa sổ yecircu cầu W = 83333 đoạn trecircn đường truyền

Lưu lượng trong caacutec trường hợp mất maacutet

L = 210-10

Phiecircn bản mới của TCP dagravenh cho nhu cầu tốc độ cao

LRTT

MSS221

Transport Layer 3-99

Mục tiecircu nếu K phiecircn lagravem việc TCP chia sẻ kết nối cổ chai của băng thocircng lagrave R mỗi phiecircn coacute tốc độ trung bigravenh lagrave RK

TCP kết nối 1

router cổ chaikhả năng R

TCP kết nối 2

TCP tiacutenh cocircng bằng

Transport Layer 3-100

Tại sao phải TCP cocircng bằng

2 phiecircn lagravem việc cạnh tranh nhau Additive tăng lưu lượng tăng multiplicative giảm lưu lượng tương xứng

R

R

chia sẻ băng thocircng bằng nhau

Connection 1 throughputConnect

ion 2

th

roughput

traacutenh tắc nghẽn additive tăng lecircnmất maacutet giảm cửa sổ bằng 12

traacutenh tắc nghẽn additive tăng lecircnmất maacutet giảm cửa sổ bằng 12

Transport Layer 3-101

TCP tiacutenh cocircng bằng (tt)

Tiacutenh cocircng bằng amp UDP nhiều ứng dụng

thường khocircng dugraveng TCP khocircng muốn tốc độ bị

điều tiết do điều khiển tắc nghẽn

Thay bằng dugraveng UDP truyền audiovideo với

tốc độ ổn định chịu được mất maacutet

Nghiecircn cứu giao thức thacircn thiện với TCP

Tiacutenh cocircng bằng amp caacutec kết nối TCP song song

khocircng coacute gigrave ngăn cản việc ứng dụng mở caacutec kết nối song song giữa 2 host

Trigravenh duyệt Web lagravem giống như thế

Viacute dụ tốc độ R hỗ trợ 9 kết nối ứng dụng mới yecircu cầu 1

TCP coacute tốc độ R10 ứng dụng mới yecircu cầu 11

TCP coacute tốc độ R2

Transport Layer 3-102

Mocirc higravenh trễ

Hỏi Mất bao lacircu để nhận 1 đối tượng từ Web server sau khi gửi yecircu cầu

Bỏ qua tắc nghẽn trễ bị ảnh hưởng bởi

thiết lập kết nối TCP trễ truyền dữ liệu khởi động chậm

Notation caacutec giả định Giả sử một kết nối giữa

client vagrave server coacute tốc độ R

S MSS (bits) O kiacutech thước đối tượng

(bits) khocircng truyền lại (khocircng

mất maacutet khocircng hỏng)

Kiacutech thước cửa sổ Giả định 1 cửa sổ tắc

nghẽn cố định coacute W đoạn Sau đoacute cửa sổ thay đổi

mocirc higravenh khởi động chậm

Transport Layer 3-103

Cửa sổ tắc nghẽn cố định (1)

Trường hợp đầu tiecircnWSR gt RTT + SR cho

đoạn đầu tiecircn trong cửa sổ trả về trước khi cửa sổ dữ liệu gửi ACK

trễ = 2RTT + OR

Transport Layer 3-104

Cửa sổ tắc nghẽn cố định (2)

Trường hợp thứ hai WSR lt RTT + SR sent

chờ cho ACK sau khi gửi dữ liệu

trễ = 2RTT + OR+ (K-1)[SR + RTT - WSR]

Transport Layer 3-105

TCP Mocirc higravenh trễ Khởi động chậm (1)

Bacircy giờ giả sử kiacutech thước cửa sổ tăng lecircn tugravey theo quaacute trigravenh khởi động chậm

Độ trễ của một đối tượng sẽ lagrave

R

S

R

SRTTP

R

ORTTLatency P )12(2

trong đoacute P lagrave số lần TCP rảnh ở tại server

1min KQP

- trong đoacute Q lagrave số lần server rảnh nếu đối tượng đatilde khởi tạo kiacutech thước

- vagrave K lagrave số lượng cửa sổ bao trugravem đối tượng

Transport Layer 3-106

TCP Mocirc higravenh trễ Khởi động chậm (2)

RTT

initia te TCPconnection

requestobject

first w indow= S R

second w indow= 2S R

third w indow= 4S R

fourth w indow= 8S R

com pletetransm issionobject

delivered

tim e atc lient

tim e atserver

Viacute dụbull OS = 15 đoạnbull K = 4 cửa sổbull Q = 2bull P = minK-1Q = 2

Server rảnh P=2 lần

Caacutec thagravenh phần trễbull 2 RTT dagravenh cho thiết lập kết nối vagrave yecircu cầubull OR để truyền đối tượngbullthời gian server rảnh bởi vigrave khởi động chậm

Server rảnh P = minK-1Q lần

Transport Layer 3-107

TCP Mocirc higravenh trễ(3)

R

S

R

SRTTPRTT

R

O

R

SRTT

R

SRTT

R

O

idleTimeRTTR

O

P

kP

k

P

pp

)12(][2

]2[2

2delay

1

1

1

th window after the timeidle 2 1 kR

SRTT

R

S k

ementacknowledg receivesserver until

segment send tostartsserver when from time RTTR

S

window kth the transmit totime2 1

R

Sk

RTT

initia te TCPconnection

requestobject

first w indow= S R

second w indow= 2S R

third w indow= 4S R

fourth w indow= 8S R

com pletetransm issionobject

delivered

tim e atc lient

tim e atserver

Transport Layer 3-108

TCP Mocirc higravenh trễ (4)

)1(log

)1(logmin

12min

222min

222min

2

2

110

110

S

OS

Okk

S

Ok

SOk

OSSSkK

k

k

k

caacutech tiacutenh toaacuten Q tương tự (xem HW)

K = số lượng cửa sổ bao trugravem đối tượngLagravem thế nagraveo tiacutenh được K

Transport Layer 3-109

HTTP Mocirc higravenh Giả sử trang Web chứa

1 trang HTML (kiacutech thước O bits) M higravenh ảnh (mỗi caacutei kiacutech thướcO bits)

HTTP khocircng bền vững M+1 TCP kết nối Thời gian đaacutep ứng = (M+1)OR + (M+1)2RTT + tổng số thời

gian rảnh HTTP bền vững

2 RTT để yecircu cầu vagrave nhận file HTML 1 RTT để yecircu cầu vagrave nhận M higravenh ảnh Thời gian đaacutep ứng = (M+1)OR + 3RTT + tổng số thời gian

rảnh HTTP khocircng bền vững với X kết nối song song

Giả sử MX lagrave số nguyecircn 1 TCP kết nối cho file MX thiết lập caacutec kết nối song song cho caacutec higravenh ảnh Thời gian đaacutep ứng = (M+1)OR + (MX + 1)2RTT + tổng số

thời gian rảnh

Transport Layer 3-110

02468

101214161820

28Kbps

100Kbps

1Mbps

10Mbps

non-persistent

persistent

parallel non-persistent

HTTP thời gian đaacutep ứng (giacircy)RTT = 100 msec O = 5 Kbytes M=10 vagrave X=5

Với băng thocircng thấp thời gian kết nối amp đaacutep ứng trội hơn thời gian truyền

Caacutec kết nối bền vững chỉ cho sự cải thiện khocircng đaacuteng kể trecircn caacutec kết nối song song

Transport Layer 3-111

0

10

20

30

40

50

60

70

28Kbps

100Kbps

1Mbps

10Mbps

non-persistent

persistent

parallel non-persistent

HTTP thời gian đaacutep ứng (giacircy)

RTT =1 sec O = 5 Kbytes M=10 and X=5

Với RTT lớn hơn thời gian đaacutep ứng trội hơn thời gian trễ chờ thiết lập kết nốiTCP amp khởi động chậm Caacutec kết nối bền vững bacircy giờ cho thấy cải thiện rotilde rệt đặc biệtvới caacutec mạng băng thocircng cao

Transport Layer 3-112

Chương 3 Tổng kết caacutec nguyecircn lyacute của caacutec

dịch vụ lớp transport multiplexing

demultiplexing truyền dữ liệu tin cậy điều khiển luồng điều khiển tắc nghẽn

khởi tạo vagrave hiện thực trong Internet UDP TCP

Tiếp theo nghiecircn cứu xong

caacutec vấn đề ldquongoagravei biecircnrdquo (caacutec lớp application transport)

chuẩn bị vagraveo phần ldquolotildeirdquo của mạng

  • Slide 1
  • Chương 3 Lớp Transport
  • Chương 3 Nội dung trigravenh bagravey
  • Caacutec dịch vụ vagrave giao thức Transport
  • Lớp Transport với lớp network
  • Caacutec giao thức lớp transport trecircn Internet
  • Slide 7
  • Multiplexingdemultiplexing
  • Demultiplexing lagravem việc như thế nagraveo
  • Demultiplexing khocircng kết nối
  • Demultiplexing khocircng kết nối (tiếp)
  • Demultiplexing hướng kết nối
  • Demultiplexing hướng kết nối (tiếp)
  • Demultiplexing hướng kết nối Threaded Web Server
  • Slide 15
  • UDP User Datagram Protocol [RFC 768]
  • UDP (tt)
  • UDP checksum
  • Viacute dụ Checksum
  • Slide 20
  • Caacutec nguyecircn lyacute truyền dữ liệu tin cậy
  • Slide 22
  • Slide 23
  • Truyền dữ liệu tin cậy
  • Slide 25
  • Rdt10 truyền dữ liệu tin cậy trecircn 1 kecircnh truyền tin cậy
  • Rdt20 kecircnh với caacutec lỗi
  • rdt20 đặc tả FSM
  • rdt20 hoạt động khi khocircng lỗi
  • rdt20 hoạt động khi coacute lỗi
  • rdt20 coacute lỗ hổng nghiecircm trọng
  • rdt21 người gửi quản lyacute caacutec ACKNAK bị hỏng
  • Slide 33
  • rdt21 thảo luận
  • rdt22 một giao thức khocircng cần NAK
  • rdt22 gửi nhận caacutec mảnh
  • rdt30 caacutec kecircnh với lỗi vagrave mất maacutet
  • rdt30 gửi
  • hagravenh động của rdt30
  • Slide 40
  • Hiệu suất của rdt30
  • rdt30 hoạt động dừng-vagrave-chờ
  • Caacutec giao thức Pipelined
  • Pipelining độ khả dụng tăng
  • Go-Back-N
  • GBN becircn gửi mở rộng FSM
  • GBN becircn nhận mở rộng FSM
  • GBN hoạt động
  • Lặp coacute lựa chọn
  • Lặp coacute lựa chọn caacutec cửa sổ gửi nhận
  • Slide 51
  • Hoạt động của lặp coacute lựa chọn
  • Lặp coacute lựa chọn tigravenh trạng khoacute giải quyết
  • Slide 54
  • TCP Tổng quan RFCs 793 1122 1323 2018 2581
  • TCP cấu truacutec đoạn
  • Caacutec số thứ tự TCP vagrave ACK
  • TCP Round Trip Time vagraveTimeout
  • TCP Round Trip Time vagrave Timeout
  • Viacute dụ đaacutenh giaacute RTT
  • Slide 61
  • TCP truyền dữ liệu tin cậy
  • TCP caacutec sự kiện
  • TCP becircn gửi (đơn giản)
  • TCP caacutec tigravenh huống truyền lại
  • TCP caacutec tigravenh huống truyền lại (tt)
  • TCP sinh ra ACK [RFC 1122 RFC 2581]
  • Truyền lại nhanh
  • Giải thuật truyền lại nhanh
  • Slide 70
  • TCP điều khiển luồng
  • TCP điều khiển luồng caacutech lagravem
  • Slide 73
  • TCP quản lyacute kết nối
  • TCP quản lyacute kết nối (tt)
  • Slide 76
  • Slide 77
  • Slide 78
  • Caacutec nguyecircn lyacute điều khiển tắc nghẽn
  • Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 1
  • Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 2
  • Slide 82
  • Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 3
  • Slide 84
  • Caacutec caacutech tiếp cận đối với điều khiển tắc nghẽn
  • Viacute dụ điều khiển tắc nghẽn ATM ABR
  • Slide 87
  • Slide 88
  • TCP điều khiển tắc nghẽn additive tăng lecircn multiplicative giảm xuống
  • TCP điều khiển tắc nghẽn chi tiết
  • TCP khởi động chậm
  • TCP khởi động chậm (tt)
  • Tinh chế
  • Tinh chế nhận biết mất maacutet
  • Tổng kết TCP điều khiển tắc nghẽn
  • TCP điều khiển tắc nghẽn becircn gửi
  • TCP throughput
  • TCP tương lai
  • TCP tiacutenh cocircng bằng
  • Tại sao phải TCP cocircng bằng
  • TCP tiacutenh cocircng bằng (tt)
  • Mocirc higravenh trễ
  • Cửa sổ tắc nghẽn cố định (1)
  • Cửa sổ tắc nghẽn cố định (2)
  • TCP Mocirc higravenh trễ Khởi động chậm (1)
  • TCP Mocirc higravenh trễ Khởi động chậm (2)
  • TCP Mocirc higravenh trễ(3)
  • TCP Mocirc higravenh trễ (4)
  • HTTP Mocirc higravenh
  • Slide 110
  • Slide 111
  • Chương 3 Tổng kết

Transport Layer 3-72

TCP điều khiển luồng caacutech lagravem

(Giả sử becircn nhận TCP loại bỏ caacutec đoạn khocircng coacute thứ tự)

dự phograveng trong bộ đệm= RcvWindow

= RcvBuffer-[LastByteRcvd - LastByteRead]

Becircn nhận thocircng baacuteo khoảng dự trữ nhờ giaacute trị RcvWindow trong caacutec đoạn

Becircn gửi hạn chế dữ liệu khocircng được ACK vagraveo RcvWindow bảo đảm bộ đệm nhận

khocircng tragraven

Transport Layer 3-73

Chương 3 Nội dung trigravenh bagravey

31 Caacutec dịch vụ lớp Transport

32 Multiplexing vagrave demultiplexing

33 Vận chuyển khocircng kết nối UDP

34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy

35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối

36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn

37 Điều khiển tắc nghẽn TCP

Transport Layer 3-74

TCP quản lyacute kết nối

Chuacute yacute Becircn gửi vagrave becircn nhận TCP thiết lập ldquokết nốirdquo trước khi trao đổi dữ liệu

khởi tạo caacutec biến TCP caacutec số thứ tự đoạn thocircng tin caacutec bộ đệm điều

khiển luồng (như RcvWindow)

client người khởi xướng kết nối

Socket clientSocket = new Socket(hostnameport

number) server được tiếp xuacutec bởi

client Socket connectionSocket =

welcomeSocketaccept()

3 phương phaacutep bắt tay

Bước 1 client host gửi đoạnTCP SYN đến server xaacutec định số thứ tự khởi đầu khocircng phải dữ liệu

Bước 2 server host nhận SYN trả lời với đoạn SYNACK

server cấp phaacutet caacutec bộ đệm

xaacutec định số thứ tự khởi đầuBước 3 client nhận SYNACK trả

lời với đoạn ACK (coacute thể chứa dữ liệu)

Transport Layer 3-75

TCP quản lyacute kết nối (tt)

Đoacuteng một kết nối

client đoacuteng socket clientSocketclose()

Bước 1 client gửi đoạn điều khiển TCP FIN đến server

Bước 2 server nhận FIN trả lời với ACK Đoacuteng kết nối gửi FIN

client

FIN

server

ACK

ACK

FIN

đoacuteng

đoacuteng

đatilde đoacutengthời g

ian c

hờ

Transport Layer 3-76

TCP quản lyacute kết nối (tt)

Bước 3 client nhận FIN trả lời với ACK

Trong khoảng ldquothời gian chờrdquo ndash sẽ phản hồi với ACK để nhận caacutec FIN

Bước 4 server nhận ACK Kết nối đatilde đoacuteng

Chuacute yacute với một sửa đổi nhỏ coacute thể quản lyacute nhiều FIN đồng thời

client

FIN

server

ACK

ACK

FIN

đang đoacuteng

đang đoacuteng

đatilde đoacuteng

thời g

ian c

hờ

đatilde đoacuteng

Transport Layer 3-77

TCP quản lyacute kết nối (tt)

chu kỳ sống củaTCP client

chu kỳ sống củaTCP server

Transport Layer 3-78

Chương 3 Nội dung trigravenh bagravey

31 Caacutec dịch vụ lớp Transport

32 Multiplexing vagrave demultiplexing

33 Vận chuyển khocircng kết nối UDP

34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy

35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối

36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn

37 Điều khiển tắc nghẽn TCP

Transport Layer 3-79

Caacutec nguyecircn lyacute điều khiển tắc nghẽn

Tắc nghẽn ldquoquaacute nhiều nguồn gửi quaacute nhanh vagrave quaacute nhiều

dữ liệu đến mạngrdquo khaacutec với điều khiển luồng caacutec biểu hiện

caacutec goacutei bị mất (tragraven bộ đệm tại caacutec router) caacutec độ trễ quaacute dagravei (xếp hagraveng trong bộ đệm

của router) lagrave 1 trong 10 vấn đề nan giải nhất

Transport Layer 3-80

Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 1

2 gửi 2 nhận 1 router caacutec bộ

đệm khocircng giới hạn

khocircng coacute truyền lại

caacutec độ trễ lớn hơn khi tắc nghẽn

năng suất coacute thể đạt tối đa

unlimited shared output link buffers

Host Ain original data

Host B

out

Transport Layer 3-81

Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 2

1 router caacutec bộ đệm coacute giới hạn becircn gửi truyền lại caacutec goacutei đatilde mất

chia sẻ vocirc hạncaacutec bộ đệm ouput

Host A in dữ liệu gốc

Host B

out

in dữ liệu gốc cugraveng với dữ liệu truyền lại

Transport Layer 3-82

Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 2 luocircn luocircn

truyền lại ldquohoagraven toagravenrdquo chỉ khi mất maacutet

truyền lại vigrave trễ (khocircng mất) lagravem cho lớn hơn với cugraveng

in

out

=

in

out

gt

in

out

ldquocaacutec chi phiacuterdquo của tắc nghẽn nhiều việc (truyền lại) caacutec truyền lại khocircng cần thiết liecircn kết nhiều bản sao của

goacutei

R2

R2in

ou

t

b

R2

R2in

ou

t

a

R2

R2in

ou

t

c

R4

R3

Transport Layer 3-83

Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 3 4 người gửi caacutec đường qua nhiều hop timeouttruyền lại

in

Hỏi điều gigrave xảy ra nếu vagrave tăng lecircn

in

chia sẻ vocirc hạncaacutec bộ đệm ouput

Host Ain dữ liệu gốc

Host B

out

in dữ liệu gốc cugraveng với dữ liệu truyền lại

Transport Layer 3-84

Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 3

ldquochi phiacuterdquo khaacutec của tắc nghẽn khi caacutec goacutei bị bỏ bất kỳ ldquokhả năng truyền

upstream dugraveng cho goacutei đoacute sẽ bị latildeng phiacuterdquo

Host A

Host B

o

u

t

Transport Layer 3-85

Caacutec caacutech tiếp cận đối với điều khiển tắc nghẽn

điều khiển tắc nghẽn end-end

khocircng coacute phản hồi rotilde ragraveng từ mạng

tắc nghẽn được suy ra từ việc quan saacutet caacutec hệ thống đầu cuối coacute mất maacutet trễ

tiếp cận được quản lyacute bởi TCP

điều khiển tắc nghẽn coacute sự hỗ trợ của mạng

caacutec router cung cấp phản hồi về caacutec hệ thống đầu cuối 1 bit duy nhất chỉ thị

tắc nghẽn (SNA DECbit TCPIP ECN ATM)

tốc độ sẽ gửi được xaacutec định rotilde ragraveng

2 caacutech

Transport Layer 3-86

Viacute dụ điều khiển tắc nghẽn ATM ABR

ABR tốc độ bit sẵn sagraveng

ldquodịch vụ mềm dẻordquo nếu đường gửi ldquochưa

hếtrdquo becircn gửi sẽ dugraveng

băng thocircng sẵn sagraveng nếu đường gửi tắc

nghẽn becircn gửi điều tiết với

tốc độ tối thiểu

RM (resource management)

gửi bởi becircn gửi rải raacutec với caacutec ocirc dữ liệu

caacutec bit trong ocirc thiết lập bởi caacutec switch bit NI khocircng tăng tốc độ

(tắc nghẽn nhẹ) bit CI tắc nghẽn rotilde rệt

Caacutec ocirc RM được trả về becircn gửi từ becircn nhận với nguyecircn vẹn caacutec bit

Transport Layer 3-87

Viacute dụ điều khiển tắc nghẽn ATM ABR

trường 2-byte ER trong ocirc RM switch đatilde tắc nghẽn coacute thể coacute giaacute trị ER thấp hơn trong ocirc tốc độ gửi do đoacute coacute thể được hỗ trợ tối đa trecircn đường

EFCI bit trong caacutec ocirc dữ liệu được cagravei giaacute trị 1 trong switch đatilde tắc nghẽn nếu ocirc dữ liệu đứng trước ocirc RM coacute cagravei EFCI becircn gửi sẽ cagravei

bit CI trong ocirc RM trả về

Transport Layer 3-88

Chương 3 Nội dung trigravenh bagravey

31 Caacutec dịch vụ lớp Transport

32 Multiplexing vagrave demultiplexing

33 Vận chuyển khocircng kết nối UDP

34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy

35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối

36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn

37 Điều khiển tắc nghẽn TCP

Transport Layer 3-89

TCP điều khiển tắc nghẽn additive tăng lecircn multiplicative giảm xuống

8 Kbytes

16 Kbytes

24 Kbytes

time

congestionwindow

Caacutech tiếp cận tăng tốc độ truyền (kiacutech thước cửa sổ) tigravem khả năng băng thocircng coacute thể cho đến khi coacute mất maacutet xảy ra additive tăng lecircn tăng CongWin bởi 1 MSS

mỗi RTT cho đến khi coacute mất maacutet xảy ra multiplicative giảm xuống bỏ CongWin trong

nửa giai đoạn sau khi mất maacutet

timekiacutech

thư

ớc

cửa

sổ

tắc

nghẽ

n

Tigravem kiếm băng thocircng

Transport Layer 3-90

TCP điều khiển tắc nghẽn chi tiết

becircn gửi hạn chế việc truyền LastByteSent-LastByteAcked

CongWin Cocircng thức

CongWin thay đổi chức năng lagrave nhận biết tắc nghẽn trecircn mạng

Lagravem thế nagraveo becircn gửi nhận biết tắc nghẽn

mất maacutet xảy ra = timeout hoặc 3 ack trugraveng lặp

becircn gửi giảm tốc độ (CongWin) sau khi mất maacutet xảy ra

3 cơ chế AIMD khởi động chậm thận trọng sau khi coacute

caacutec sự kiện timeout

tốc độ = CongWin

RTT Bytess

Transport Layer 3-91

TCP khởi động chậm

Khi kết nối bắt đầu CongWin = 1 MSS Viacute dụ MSS = 500 bytes

amp RTT = 200 ms tốc độ khởi tạo = 20

kbps

băng thocircng sẵn sagraveng coacute thể gtgt MSSRTT mong muốn nhanh

choacuteng tăng tốc lecircn tốc độ coacute thể đaacutep ứng

Khi kết nối bắt đầu tăng tốc lecircn rất nhanh cho đến khi sự cố mất maacutet xảy ra đầu tiecircn

Transport Layer 3-92

TCP khởi động chậm (tt)

Khi kết nối bắt đầu tăng tốc lecircn rất nhanh cho đến khi sự cố mất maacutet xảy ra đầu tiecircn nhacircn đocirci CongWin mỗi

RTT hoagraven thagravenh nhờ tăng CongWin ứng với mỗi ACK đatilde nhận

Tổng kết tốc độ khởi đầu lagrave chậm nhưng sau đoacute tăng tốc rất nhanh

Host A

1 đoạn

RTT

Host B

thời gian

2 đoạn

4 đoạn

Transport Layer 3-93

Tinh chếHỏi Khi nagraveo việc tăng

tốc trở thagravenh tuyến tiacutenh

Trả lời Khi CongWin đạt đến 12 giaacute trị của noacute trước khi timeout

Hiện thực Ngưỡng thay đổi Tại thời điểm coacute sự cố

mất maacutet ngưỡng được cagravei giaacute trị bằng frac12 của CongWin ngay trước đoacute

Transport Layer 3-94

Tinh chế nhận biết mất maacutet

Sau 3 ACK trugraveng lặp CongWin sẽ giảm 12 kiacutech thước cửa sổ

tăng tuyến tiacutenh nhưng sau sự cố

timeout CongWin thay giaacute trị

bằng 1 MSS kiacutech thước cửa sổ

tăng cấp lũy thừa khi đến một ngưỡng

thigrave tăng tuyến tiacutenh

3 ACK trugraveng nhau chỉ ra khả năng truyền của mạng timeout chỉ thị ldquonhiều cảnh baacuteordquo về tigravenh huống tắc nghẽn

Nguyecircn lyacute

Transport Layer 3-95

Tổng kết TCP điều khiển tắc nghẽn

Khi CongWin dưới Threshold becircn gửi đang trong giai đoạn khởi động chậm kiacutech thước cửa sổ tăng nhanh theo cấp lũy thừa

Khi CongWin trecircn Threshold becircn gửi đang trong giai đoạn traacutenh tắc nghẽn kiacutech thước cửa sổ tăng nhanh theo cấp tuyến tiacutenh

Khi coacute 3 ACK trugraveng lặp xảy ra Threshold = CongWin2 vagrave CongWin = Threshold

Khi timeout xảy ra Threshold = CongWin2 vagrave CongWin = 1 MSS

Transport Layer 3-96

TCP điều khiển tắc nghẽn becircn gửi

Trạng thaacutei Sự kiện TCP becircn gửi hagravenh động Diễn giải

Slow Start (SS)-Khởi động chậm

ACK baacuteo nhận cho dữ liệu chưa ACK trước đoacute

CongWin = CongWin + MSS If (CongWin gt Threshold) cagravei đặt trạng thaacutei ldquoTraacutenh tắc nghẽnrdquo

Hậu quả lagravem tăng gấp đocirci CongWin mỗi RTT

CongestionAvoidance (CA) ndashTraacutenh tắc nghẽn

ACK baacuteo nhận cho dữ liệu chưa ACK trước đoacute

CongWin = CongWin+MSS (MSSCongWin)

Additive tăng lecircn lagravem tăng CongWin lecircn 1 MSS mỗi RTT

SS hoặc CA Sự cố mất maacutet xảy ra khi thấy coacute 3 ACK trugraveng lặp

Threshold = CongWin2 CongWin = Thresholdcagravei đặt trạng thaacutei ldquoTraacutenh tắc nghẽnrdquo

Khocirci phục nhanh hiện thực giảm xuống multiplicative CongWin sẽ khocircng giảm xuống dưới 1 MSS

SS hoặc CA Timeout Threshold = CongWin2 CongWin = 1 MSScagravei đặt trạng thaacutei ldquoKhởi động chậmrdquo

Vagraveo chế độ ldquoKhởi động chậmrdquo

SS hoặc CA ACK trugraveng lặp

Đếm ACK tăng lecircn cho đoạn vừa được ACK

CongWin vagrave Threshold khocircng thay đổi

Transport Layer 3-97

TCP throughput

Throughout trung bigravenh của TCP biểu diễn qua kiacutech thước của sổ vagrave RTT Bỏ qua trạng thaacutei ldquoKhởi động chậmrdquo

Cho W lagrave kiacutech thước cửa sổ khi coacute mất maacutet xảy ra

Khi kiacutech thước cửa sổ = W lưu lượng = WRTT

Chỉ ngay sau khi mất maacutet cửa sổ giảm xuống = W2 lưu lượng = W2RTT

throughout trung bigravenh 075 WRTT

Transport Layer 3-98

TCP tương lai

Viacute dụ caacutec đoạn dagravei 1500 byte RTT 100ms lưu lượng 10 Gbps

Kiacutech thước cửa sổ yecircu cầu W = 83333 đoạn trecircn đường truyền

Lưu lượng trong caacutec trường hợp mất maacutet

L = 210-10

Phiecircn bản mới của TCP dagravenh cho nhu cầu tốc độ cao

LRTT

MSS221

Transport Layer 3-99

Mục tiecircu nếu K phiecircn lagravem việc TCP chia sẻ kết nối cổ chai của băng thocircng lagrave R mỗi phiecircn coacute tốc độ trung bigravenh lagrave RK

TCP kết nối 1

router cổ chaikhả năng R

TCP kết nối 2

TCP tiacutenh cocircng bằng

Transport Layer 3-100

Tại sao phải TCP cocircng bằng

2 phiecircn lagravem việc cạnh tranh nhau Additive tăng lưu lượng tăng multiplicative giảm lưu lượng tương xứng

R

R

chia sẻ băng thocircng bằng nhau

Connection 1 throughputConnect

ion 2

th

roughput

traacutenh tắc nghẽn additive tăng lecircnmất maacutet giảm cửa sổ bằng 12

traacutenh tắc nghẽn additive tăng lecircnmất maacutet giảm cửa sổ bằng 12

Transport Layer 3-101

TCP tiacutenh cocircng bằng (tt)

Tiacutenh cocircng bằng amp UDP nhiều ứng dụng

thường khocircng dugraveng TCP khocircng muốn tốc độ bị

điều tiết do điều khiển tắc nghẽn

Thay bằng dugraveng UDP truyền audiovideo với

tốc độ ổn định chịu được mất maacutet

Nghiecircn cứu giao thức thacircn thiện với TCP

Tiacutenh cocircng bằng amp caacutec kết nối TCP song song

khocircng coacute gigrave ngăn cản việc ứng dụng mở caacutec kết nối song song giữa 2 host

Trigravenh duyệt Web lagravem giống như thế

Viacute dụ tốc độ R hỗ trợ 9 kết nối ứng dụng mới yecircu cầu 1

TCP coacute tốc độ R10 ứng dụng mới yecircu cầu 11

TCP coacute tốc độ R2

Transport Layer 3-102

Mocirc higravenh trễ

Hỏi Mất bao lacircu để nhận 1 đối tượng từ Web server sau khi gửi yecircu cầu

Bỏ qua tắc nghẽn trễ bị ảnh hưởng bởi

thiết lập kết nối TCP trễ truyền dữ liệu khởi động chậm

Notation caacutec giả định Giả sử một kết nối giữa

client vagrave server coacute tốc độ R

S MSS (bits) O kiacutech thước đối tượng

(bits) khocircng truyền lại (khocircng

mất maacutet khocircng hỏng)

Kiacutech thước cửa sổ Giả định 1 cửa sổ tắc

nghẽn cố định coacute W đoạn Sau đoacute cửa sổ thay đổi

mocirc higravenh khởi động chậm

Transport Layer 3-103

Cửa sổ tắc nghẽn cố định (1)

Trường hợp đầu tiecircnWSR gt RTT + SR cho

đoạn đầu tiecircn trong cửa sổ trả về trước khi cửa sổ dữ liệu gửi ACK

trễ = 2RTT + OR

Transport Layer 3-104

Cửa sổ tắc nghẽn cố định (2)

Trường hợp thứ hai WSR lt RTT + SR sent

chờ cho ACK sau khi gửi dữ liệu

trễ = 2RTT + OR+ (K-1)[SR + RTT - WSR]

Transport Layer 3-105

TCP Mocirc higravenh trễ Khởi động chậm (1)

Bacircy giờ giả sử kiacutech thước cửa sổ tăng lecircn tugravey theo quaacute trigravenh khởi động chậm

Độ trễ của một đối tượng sẽ lagrave

R

S

R

SRTTP

R

ORTTLatency P )12(2

trong đoacute P lagrave số lần TCP rảnh ở tại server

1min KQP

- trong đoacute Q lagrave số lần server rảnh nếu đối tượng đatilde khởi tạo kiacutech thước

- vagrave K lagrave số lượng cửa sổ bao trugravem đối tượng

Transport Layer 3-106

TCP Mocirc higravenh trễ Khởi động chậm (2)

RTT

initia te TCPconnection

requestobject

first w indow= S R

second w indow= 2S R

third w indow= 4S R

fourth w indow= 8S R

com pletetransm issionobject

delivered

tim e atc lient

tim e atserver

Viacute dụbull OS = 15 đoạnbull K = 4 cửa sổbull Q = 2bull P = minK-1Q = 2

Server rảnh P=2 lần

Caacutec thagravenh phần trễbull 2 RTT dagravenh cho thiết lập kết nối vagrave yecircu cầubull OR để truyền đối tượngbullthời gian server rảnh bởi vigrave khởi động chậm

Server rảnh P = minK-1Q lần

Transport Layer 3-107

TCP Mocirc higravenh trễ(3)

R

S

R

SRTTPRTT

R

O

R

SRTT

R

SRTT

R

O

idleTimeRTTR

O

P

kP

k

P

pp

)12(][2

]2[2

2delay

1

1

1

th window after the timeidle 2 1 kR

SRTT

R

S k

ementacknowledg receivesserver until

segment send tostartsserver when from time RTTR

S

window kth the transmit totime2 1

R

Sk

RTT

initia te TCPconnection

requestobject

first w indow= S R

second w indow= 2S R

third w indow= 4S R

fourth w indow= 8S R

com pletetransm issionobject

delivered

tim e atc lient

tim e atserver

Transport Layer 3-108

TCP Mocirc higravenh trễ (4)

)1(log

)1(logmin

12min

222min

222min

2

2

110

110

S

OS

Okk

S

Ok

SOk

OSSSkK

k

k

k

caacutech tiacutenh toaacuten Q tương tự (xem HW)

K = số lượng cửa sổ bao trugravem đối tượngLagravem thế nagraveo tiacutenh được K

Transport Layer 3-109

HTTP Mocirc higravenh Giả sử trang Web chứa

1 trang HTML (kiacutech thước O bits) M higravenh ảnh (mỗi caacutei kiacutech thướcO bits)

HTTP khocircng bền vững M+1 TCP kết nối Thời gian đaacutep ứng = (M+1)OR + (M+1)2RTT + tổng số thời

gian rảnh HTTP bền vững

2 RTT để yecircu cầu vagrave nhận file HTML 1 RTT để yecircu cầu vagrave nhận M higravenh ảnh Thời gian đaacutep ứng = (M+1)OR + 3RTT + tổng số thời gian

rảnh HTTP khocircng bền vững với X kết nối song song

Giả sử MX lagrave số nguyecircn 1 TCP kết nối cho file MX thiết lập caacutec kết nối song song cho caacutec higravenh ảnh Thời gian đaacutep ứng = (M+1)OR + (MX + 1)2RTT + tổng số

thời gian rảnh

Transport Layer 3-110

02468

101214161820

28Kbps

100Kbps

1Mbps

10Mbps

non-persistent

persistent

parallel non-persistent

HTTP thời gian đaacutep ứng (giacircy)RTT = 100 msec O = 5 Kbytes M=10 vagrave X=5

Với băng thocircng thấp thời gian kết nối amp đaacutep ứng trội hơn thời gian truyền

Caacutec kết nối bền vững chỉ cho sự cải thiện khocircng đaacuteng kể trecircn caacutec kết nối song song

Transport Layer 3-111

0

10

20

30

40

50

60

70

28Kbps

100Kbps

1Mbps

10Mbps

non-persistent

persistent

parallel non-persistent

HTTP thời gian đaacutep ứng (giacircy)

RTT =1 sec O = 5 Kbytes M=10 and X=5

Với RTT lớn hơn thời gian đaacutep ứng trội hơn thời gian trễ chờ thiết lập kết nốiTCP amp khởi động chậm Caacutec kết nối bền vững bacircy giờ cho thấy cải thiện rotilde rệt đặc biệtvới caacutec mạng băng thocircng cao

Transport Layer 3-112

Chương 3 Tổng kết caacutec nguyecircn lyacute của caacutec

dịch vụ lớp transport multiplexing

demultiplexing truyền dữ liệu tin cậy điều khiển luồng điều khiển tắc nghẽn

khởi tạo vagrave hiện thực trong Internet UDP TCP

Tiếp theo nghiecircn cứu xong

caacutec vấn đề ldquongoagravei biecircnrdquo (caacutec lớp application transport)

chuẩn bị vagraveo phần ldquolotildeirdquo của mạng

  • Slide 1
  • Chương 3 Lớp Transport
  • Chương 3 Nội dung trigravenh bagravey
  • Caacutec dịch vụ vagrave giao thức Transport
  • Lớp Transport với lớp network
  • Caacutec giao thức lớp transport trecircn Internet
  • Slide 7
  • Multiplexingdemultiplexing
  • Demultiplexing lagravem việc như thế nagraveo
  • Demultiplexing khocircng kết nối
  • Demultiplexing khocircng kết nối (tiếp)
  • Demultiplexing hướng kết nối
  • Demultiplexing hướng kết nối (tiếp)
  • Demultiplexing hướng kết nối Threaded Web Server
  • Slide 15
  • UDP User Datagram Protocol [RFC 768]
  • UDP (tt)
  • UDP checksum
  • Viacute dụ Checksum
  • Slide 20
  • Caacutec nguyecircn lyacute truyền dữ liệu tin cậy
  • Slide 22
  • Slide 23
  • Truyền dữ liệu tin cậy
  • Slide 25
  • Rdt10 truyền dữ liệu tin cậy trecircn 1 kecircnh truyền tin cậy
  • Rdt20 kecircnh với caacutec lỗi
  • rdt20 đặc tả FSM
  • rdt20 hoạt động khi khocircng lỗi
  • rdt20 hoạt động khi coacute lỗi
  • rdt20 coacute lỗ hổng nghiecircm trọng
  • rdt21 người gửi quản lyacute caacutec ACKNAK bị hỏng
  • Slide 33
  • rdt21 thảo luận
  • rdt22 một giao thức khocircng cần NAK
  • rdt22 gửi nhận caacutec mảnh
  • rdt30 caacutec kecircnh với lỗi vagrave mất maacutet
  • rdt30 gửi
  • hagravenh động của rdt30
  • Slide 40
  • Hiệu suất của rdt30
  • rdt30 hoạt động dừng-vagrave-chờ
  • Caacutec giao thức Pipelined
  • Pipelining độ khả dụng tăng
  • Go-Back-N
  • GBN becircn gửi mở rộng FSM
  • GBN becircn nhận mở rộng FSM
  • GBN hoạt động
  • Lặp coacute lựa chọn
  • Lặp coacute lựa chọn caacutec cửa sổ gửi nhận
  • Slide 51
  • Hoạt động của lặp coacute lựa chọn
  • Lặp coacute lựa chọn tigravenh trạng khoacute giải quyết
  • Slide 54
  • TCP Tổng quan RFCs 793 1122 1323 2018 2581
  • TCP cấu truacutec đoạn
  • Caacutec số thứ tự TCP vagrave ACK
  • TCP Round Trip Time vagraveTimeout
  • TCP Round Trip Time vagrave Timeout
  • Viacute dụ đaacutenh giaacute RTT
  • Slide 61
  • TCP truyền dữ liệu tin cậy
  • TCP caacutec sự kiện
  • TCP becircn gửi (đơn giản)
  • TCP caacutec tigravenh huống truyền lại
  • TCP caacutec tigravenh huống truyền lại (tt)
  • TCP sinh ra ACK [RFC 1122 RFC 2581]
  • Truyền lại nhanh
  • Giải thuật truyền lại nhanh
  • Slide 70
  • TCP điều khiển luồng
  • TCP điều khiển luồng caacutech lagravem
  • Slide 73
  • TCP quản lyacute kết nối
  • TCP quản lyacute kết nối (tt)
  • Slide 76
  • Slide 77
  • Slide 78
  • Caacutec nguyecircn lyacute điều khiển tắc nghẽn
  • Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 1
  • Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 2
  • Slide 82
  • Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 3
  • Slide 84
  • Caacutec caacutech tiếp cận đối với điều khiển tắc nghẽn
  • Viacute dụ điều khiển tắc nghẽn ATM ABR
  • Slide 87
  • Slide 88
  • TCP điều khiển tắc nghẽn additive tăng lecircn multiplicative giảm xuống
  • TCP điều khiển tắc nghẽn chi tiết
  • TCP khởi động chậm
  • TCP khởi động chậm (tt)
  • Tinh chế
  • Tinh chế nhận biết mất maacutet
  • Tổng kết TCP điều khiển tắc nghẽn
  • TCP điều khiển tắc nghẽn becircn gửi
  • TCP throughput
  • TCP tương lai
  • TCP tiacutenh cocircng bằng
  • Tại sao phải TCP cocircng bằng
  • TCP tiacutenh cocircng bằng (tt)
  • Mocirc higravenh trễ
  • Cửa sổ tắc nghẽn cố định (1)
  • Cửa sổ tắc nghẽn cố định (2)
  • TCP Mocirc higravenh trễ Khởi động chậm (1)
  • TCP Mocirc higravenh trễ Khởi động chậm (2)
  • TCP Mocirc higravenh trễ(3)
  • TCP Mocirc higravenh trễ (4)
  • HTTP Mocirc higravenh
  • Slide 110
  • Slide 111
  • Chương 3 Tổng kết

Transport Layer 3-73

Chương 3 Nội dung trigravenh bagravey

31 Caacutec dịch vụ lớp Transport

32 Multiplexing vagrave demultiplexing

33 Vận chuyển khocircng kết nối UDP

34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy

35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối

36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn

37 Điều khiển tắc nghẽn TCP

Transport Layer 3-74

TCP quản lyacute kết nối

Chuacute yacute Becircn gửi vagrave becircn nhận TCP thiết lập ldquokết nốirdquo trước khi trao đổi dữ liệu

khởi tạo caacutec biến TCP caacutec số thứ tự đoạn thocircng tin caacutec bộ đệm điều

khiển luồng (như RcvWindow)

client người khởi xướng kết nối

Socket clientSocket = new Socket(hostnameport

number) server được tiếp xuacutec bởi

client Socket connectionSocket =

welcomeSocketaccept()

3 phương phaacutep bắt tay

Bước 1 client host gửi đoạnTCP SYN đến server xaacutec định số thứ tự khởi đầu khocircng phải dữ liệu

Bước 2 server host nhận SYN trả lời với đoạn SYNACK

server cấp phaacutet caacutec bộ đệm

xaacutec định số thứ tự khởi đầuBước 3 client nhận SYNACK trả

lời với đoạn ACK (coacute thể chứa dữ liệu)

Transport Layer 3-75

TCP quản lyacute kết nối (tt)

Đoacuteng một kết nối

client đoacuteng socket clientSocketclose()

Bước 1 client gửi đoạn điều khiển TCP FIN đến server

Bước 2 server nhận FIN trả lời với ACK Đoacuteng kết nối gửi FIN

client

FIN

server

ACK

ACK

FIN

đoacuteng

đoacuteng

đatilde đoacutengthời g

ian c

hờ

Transport Layer 3-76

TCP quản lyacute kết nối (tt)

Bước 3 client nhận FIN trả lời với ACK

Trong khoảng ldquothời gian chờrdquo ndash sẽ phản hồi với ACK để nhận caacutec FIN

Bước 4 server nhận ACK Kết nối đatilde đoacuteng

Chuacute yacute với một sửa đổi nhỏ coacute thể quản lyacute nhiều FIN đồng thời

client

FIN

server

ACK

ACK

FIN

đang đoacuteng

đang đoacuteng

đatilde đoacuteng

thời g

ian c

hờ

đatilde đoacuteng

Transport Layer 3-77

TCP quản lyacute kết nối (tt)

chu kỳ sống củaTCP client

chu kỳ sống củaTCP server

Transport Layer 3-78

Chương 3 Nội dung trigravenh bagravey

31 Caacutec dịch vụ lớp Transport

32 Multiplexing vagrave demultiplexing

33 Vận chuyển khocircng kết nối UDP

34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy

35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối

36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn

37 Điều khiển tắc nghẽn TCP

Transport Layer 3-79

Caacutec nguyecircn lyacute điều khiển tắc nghẽn

Tắc nghẽn ldquoquaacute nhiều nguồn gửi quaacute nhanh vagrave quaacute nhiều

dữ liệu đến mạngrdquo khaacutec với điều khiển luồng caacutec biểu hiện

caacutec goacutei bị mất (tragraven bộ đệm tại caacutec router) caacutec độ trễ quaacute dagravei (xếp hagraveng trong bộ đệm

của router) lagrave 1 trong 10 vấn đề nan giải nhất

Transport Layer 3-80

Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 1

2 gửi 2 nhận 1 router caacutec bộ

đệm khocircng giới hạn

khocircng coacute truyền lại

caacutec độ trễ lớn hơn khi tắc nghẽn

năng suất coacute thể đạt tối đa

unlimited shared output link buffers

Host Ain original data

Host B

out

Transport Layer 3-81

Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 2

1 router caacutec bộ đệm coacute giới hạn becircn gửi truyền lại caacutec goacutei đatilde mất

chia sẻ vocirc hạncaacutec bộ đệm ouput

Host A in dữ liệu gốc

Host B

out

in dữ liệu gốc cugraveng với dữ liệu truyền lại

Transport Layer 3-82

Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 2 luocircn luocircn

truyền lại ldquohoagraven toagravenrdquo chỉ khi mất maacutet

truyền lại vigrave trễ (khocircng mất) lagravem cho lớn hơn với cugraveng

in

out

=

in

out

gt

in

out

ldquocaacutec chi phiacuterdquo của tắc nghẽn nhiều việc (truyền lại) caacutec truyền lại khocircng cần thiết liecircn kết nhiều bản sao của

goacutei

R2

R2in

ou

t

b

R2

R2in

ou

t

a

R2

R2in

ou

t

c

R4

R3

Transport Layer 3-83

Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 3 4 người gửi caacutec đường qua nhiều hop timeouttruyền lại

in

Hỏi điều gigrave xảy ra nếu vagrave tăng lecircn

in

chia sẻ vocirc hạncaacutec bộ đệm ouput

Host Ain dữ liệu gốc

Host B

out

in dữ liệu gốc cugraveng với dữ liệu truyền lại

Transport Layer 3-84

Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 3

ldquochi phiacuterdquo khaacutec của tắc nghẽn khi caacutec goacutei bị bỏ bất kỳ ldquokhả năng truyền

upstream dugraveng cho goacutei đoacute sẽ bị latildeng phiacuterdquo

Host A

Host B

o

u

t

Transport Layer 3-85

Caacutec caacutech tiếp cận đối với điều khiển tắc nghẽn

điều khiển tắc nghẽn end-end

khocircng coacute phản hồi rotilde ragraveng từ mạng

tắc nghẽn được suy ra từ việc quan saacutet caacutec hệ thống đầu cuối coacute mất maacutet trễ

tiếp cận được quản lyacute bởi TCP

điều khiển tắc nghẽn coacute sự hỗ trợ của mạng

caacutec router cung cấp phản hồi về caacutec hệ thống đầu cuối 1 bit duy nhất chỉ thị

tắc nghẽn (SNA DECbit TCPIP ECN ATM)

tốc độ sẽ gửi được xaacutec định rotilde ragraveng

2 caacutech

Transport Layer 3-86

Viacute dụ điều khiển tắc nghẽn ATM ABR

ABR tốc độ bit sẵn sagraveng

ldquodịch vụ mềm dẻordquo nếu đường gửi ldquochưa

hếtrdquo becircn gửi sẽ dugraveng

băng thocircng sẵn sagraveng nếu đường gửi tắc

nghẽn becircn gửi điều tiết với

tốc độ tối thiểu

RM (resource management)

gửi bởi becircn gửi rải raacutec với caacutec ocirc dữ liệu

caacutec bit trong ocirc thiết lập bởi caacutec switch bit NI khocircng tăng tốc độ

(tắc nghẽn nhẹ) bit CI tắc nghẽn rotilde rệt

Caacutec ocirc RM được trả về becircn gửi từ becircn nhận với nguyecircn vẹn caacutec bit

Transport Layer 3-87

Viacute dụ điều khiển tắc nghẽn ATM ABR

trường 2-byte ER trong ocirc RM switch đatilde tắc nghẽn coacute thể coacute giaacute trị ER thấp hơn trong ocirc tốc độ gửi do đoacute coacute thể được hỗ trợ tối đa trecircn đường

EFCI bit trong caacutec ocirc dữ liệu được cagravei giaacute trị 1 trong switch đatilde tắc nghẽn nếu ocirc dữ liệu đứng trước ocirc RM coacute cagravei EFCI becircn gửi sẽ cagravei

bit CI trong ocirc RM trả về

Transport Layer 3-88

Chương 3 Nội dung trigravenh bagravey

31 Caacutec dịch vụ lớp Transport

32 Multiplexing vagrave demultiplexing

33 Vận chuyển khocircng kết nối UDP

34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy

35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối

36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn

37 Điều khiển tắc nghẽn TCP

Transport Layer 3-89

TCP điều khiển tắc nghẽn additive tăng lecircn multiplicative giảm xuống

8 Kbytes

16 Kbytes

24 Kbytes

time

congestionwindow

Caacutech tiếp cận tăng tốc độ truyền (kiacutech thước cửa sổ) tigravem khả năng băng thocircng coacute thể cho đến khi coacute mất maacutet xảy ra additive tăng lecircn tăng CongWin bởi 1 MSS

mỗi RTT cho đến khi coacute mất maacutet xảy ra multiplicative giảm xuống bỏ CongWin trong

nửa giai đoạn sau khi mất maacutet

timekiacutech

thư

ớc

cửa

sổ

tắc

nghẽ

n

Tigravem kiếm băng thocircng

Transport Layer 3-90

TCP điều khiển tắc nghẽn chi tiết

becircn gửi hạn chế việc truyền LastByteSent-LastByteAcked

CongWin Cocircng thức

CongWin thay đổi chức năng lagrave nhận biết tắc nghẽn trecircn mạng

Lagravem thế nagraveo becircn gửi nhận biết tắc nghẽn

mất maacutet xảy ra = timeout hoặc 3 ack trugraveng lặp

becircn gửi giảm tốc độ (CongWin) sau khi mất maacutet xảy ra

3 cơ chế AIMD khởi động chậm thận trọng sau khi coacute

caacutec sự kiện timeout

tốc độ = CongWin

RTT Bytess

Transport Layer 3-91

TCP khởi động chậm

Khi kết nối bắt đầu CongWin = 1 MSS Viacute dụ MSS = 500 bytes

amp RTT = 200 ms tốc độ khởi tạo = 20

kbps

băng thocircng sẵn sagraveng coacute thể gtgt MSSRTT mong muốn nhanh

choacuteng tăng tốc lecircn tốc độ coacute thể đaacutep ứng

Khi kết nối bắt đầu tăng tốc lecircn rất nhanh cho đến khi sự cố mất maacutet xảy ra đầu tiecircn

Transport Layer 3-92

TCP khởi động chậm (tt)

Khi kết nối bắt đầu tăng tốc lecircn rất nhanh cho đến khi sự cố mất maacutet xảy ra đầu tiecircn nhacircn đocirci CongWin mỗi

RTT hoagraven thagravenh nhờ tăng CongWin ứng với mỗi ACK đatilde nhận

Tổng kết tốc độ khởi đầu lagrave chậm nhưng sau đoacute tăng tốc rất nhanh

Host A

1 đoạn

RTT

Host B

thời gian

2 đoạn

4 đoạn

Transport Layer 3-93

Tinh chếHỏi Khi nagraveo việc tăng

tốc trở thagravenh tuyến tiacutenh

Trả lời Khi CongWin đạt đến 12 giaacute trị của noacute trước khi timeout

Hiện thực Ngưỡng thay đổi Tại thời điểm coacute sự cố

mất maacutet ngưỡng được cagravei giaacute trị bằng frac12 của CongWin ngay trước đoacute

Transport Layer 3-94

Tinh chế nhận biết mất maacutet

Sau 3 ACK trugraveng lặp CongWin sẽ giảm 12 kiacutech thước cửa sổ

tăng tuyến tiacutenh nhưng sau sự cố

timeout CongWin thay giaacute trị

bằng 1 MSS kiacutech thước cửa sổ

tăng cấp lũy thừa khi đến một ngưỡng

thigrave tăng tuyến tiacutenh

3 ACK trugraveng nhau chỉ ra khả năng truyền của mạng timeout chỉ thị ldquonhiều cảnh baacuteordquo về tigravenh huống tắc nghẽn

Nguyecircn lyacute

Transport Layer 3-95

Tổng kết TCP điều khiển tắc nghẽn

Khi CongWin dưới Threshold becircn gửi đang trong giai đoạn khởi động chậm kiacutech thước cửa sổ tăng nhanh theo cấp lũy thừa

Khi CongWin trecircn Threshold becircn gửi đang trong giai đoạn traacutenh tắc nghẽn kiacutech thước cửa sổ tăng nhanh theo cấp tuyến tiacutenh

Khi coacute 3 ACK trugraveng lặp xảy ra Threshold = CongWin2 vagrave CongWin = Threshold

Khi timeout xảy ra Threshold = CongWin2 vagrave CongWin = 1 MSS

Transport Layer 3-96

TCP điều khiển tắc nghẽn becircn gửi

Trạng thaacutei Sự kiện TCP becircn gửi hagravenh động Diễn giải

Slow Start (SS)-Khởi động chậm

ACK baacuteo nhận cho dữ liệu chưa ACK trước đoacute

CongWin = CongWin + MSS If (CongWin gt Threshold) cagravei đặt trạng thaacutei ldquoTraacutenh tắc nghẽnrdquo

Hậu quả lagravem tăng gấp đocirci CongWin mỗi RTT

CongestionAvoidance (CA) ndashTraacutenh tắc nghẽn

ACK baacuteo nhận cho dữ liệu chưa ACK trước đoacute

CongWin = CongWin+MSS (MSSCongWin)

Additive tăng lecircn lagravem tăng CongWin lecircn 1 MSS mỗi RTT

SS hoặc CA Sự cố mất maacutet xảy ra khi thấy coacute 3 ACK trugraveng lặp

Threshold = CongWin2 CongWin = Thresholdcagravei đặt trạng thaacutei ldquoTraacutenh tắc nghẽnrdquo

Khocirci phục nhanh hiện thực giảm xuống multiplicative CongWin sẽ khocircng giảm xuống dưới 1 MSS

SS hoặc CA Timeout Threshold = CongWin2 CongWin = 1 MSScagravei đặt trạng thaacutei ldquoKhởi động chậmrdquo

Vagraveo chế độ ldquoKhởi động chậmrdquo

SS hoặc CA ACK trugraveng lặp

Đếm ACK tăng lecircn cho đoạn vừa được ACK

CongWin vagrave Threshold khocircng thay đổi

Transport Layer 3-97

TCP throughput

Throughout trung bigravenh của TCP biểu diễn qua kiacutech thước của sổ vagrave RTT Bỏ qua trạng thaacutei ldquoKhởi động chậmrdquo

Cho W lagrave kiacutech thước cửa sổ khi coacute mất maacutet xảy ra

Khi kiacutech thước cửa sổ = W lưu lượng = WRTT

Chỉ ngay sau khi mất maacutet cửa sổ giảm xuống = W2 lưu lượng = W2RTT

throughout trung bigravenh 075 WRTT

Transport Layer 3-98

TCP tương lai

Viacute dụ caacutec đoạn dagravei 1500 byte RTT 100ms lưu lượng 10 Gbps

Kiacutech thước cửa sổ yecircu cầu W = 83333 đoạn trecircn đường truyền

Lưu lượng trong caacutec trường hợp mất maacutet

L = 210-10

Phiecircn bản mới của TCP dagravenh cho nhu cầu tốc độ cao

LRTT

MSS221

Transport Layer 3-99

Mục tiecircu nếu K phiecircn lagravem việc TCP chia sẻ kết nối cổ chai của băng thocircng lagrave R mỗi phiecircn coacute tốc độ trung bigravenh lagrave RK

TCP kết nối 1

router cổ chaikhả năng R

TCP kết nối 2

TCP tiacutenh cocircng bằng

Transport Layer 3-100

Tại sao phải TCP cocircng bằng

2 phiecircn lagravem việc cạnh tranh nhau Additive tăng lưu lượng tăng multiplicative giảm lưu lượng tương xứng

R

R

chia sẻ băng thocircng bằng nhau

Connection 1 throughputConnect

ion 2

th

roughput

traacutenh tắc nghẽn additive tăng lecircnmất maacutet giảm cửa sổ bằng 12

traacutenh tắc nghẽn additive tăng lecircnmất maacutet giảm cửa sổ bằng 12

Transport Layer 3-101

TCP tiacutenh cocircng bằng (tt)

Tiacutenh cocircng bằng amp UDP nhiều ứng dụng

thường khocircng dugraveng TCP khocircng muốn tốc độ bị

điều tiết do điều khiển tắc nghẽn

Thay bằng dugraveng UDP truyền audiovideo với

tốc độ ổn định chịu được mất maacutet

Nghiecircn cứu giao thức thacircn thiện với TCP

Tiacutenh cocircng bằng amp caacutec kết nối TCP song song

khocircng coacute gigrave ngăn cản việc ứng dụng mở caacutec kết nối song song giữa 2 host

Trigravenh duyệt Web lagravem giống như thế

Viacute dụ tốc độ R hỗ trợ 9 kết nối ứng dụng mới yecircu cầu 1

TCP coacute tốc độ R10 ứng dụng mới yecircu cầu 11

TCP coacute tốc độ R2

Transport Layer 3-102

Mocirc higravenh trễ

Hỏi Mất bao lacircu để nhận 1 đối tượng từ Web server sau khi gửi yecircu cầu

Bỏ qua tắc nghẽn trễ bị ảnh hưởng bởi

thiết lập kết nối TCP trễ truyền dữ liệu khởi động chậm

Notation caacutec giả định Giả sử một kết nối giữa

client vagrave server coacute tốc độ R

S MSS (bits) O kiacutech thước đối tượng

(bits) khocircng truyền lại (khocircng

mất maacutet khocircng hỏng)

Kiacutech thước cửa sổ Giả định 1 cửa sổ tắc

nghẽn cố định coacute W đoạn Sau đoacute cửa sổ thay đổi

mocirc higravenh khởi động chậm

Transport Layer 3-103

Cửa sổ tắc nghẽn cố định (1)

Trường hợp đầu tiecircnWSR gt RTT + SR cho

đoạn đầu tiecircn trong cửa sổ trả về trước khi cửa sổ dữ liệu gửi ACK

trễ = 2RTT + OR

Transport Layer 3-104

Cửa sổ tắc nghẽn cố định (2)

Trường hợp thứ hai WSR lt RTT + SR sent

chờ cho ACK sau khi gửi dữ liệu

trễ = 2RTT + OR+ (K-1)[SR + RTT - WSR]

Transport Layer 3-105

TCP Mocirc higravenh trễ Khởi động chậm (1)

Bacircy giờ giả sử kiacutech thước cửa sổ tăng lecircn tugravey theo quaacute trigravenh khởi động chậm

Độ trễ của một đối tượng sẽ lagrave

R

S

R

SRTTP

R

ORTTLatency P )12(2

trong đoacute P lagrave số lần TCP rảnh ở tại server

1min KQP

- trong đoacute Q lagrave số lần server rảnh nếu đối tượng đatilde khởi tạo kiacutech thước

- vagrave K lagrave số lượng cửa sổ bao trugravem đối tượng

Transport Layer 3-106

TCP Mocirc higravenh trễ Khởi động chậm (2)

RTT

initia te TCPconnection

requestobject

first w indow= S R

second w indow= 2S R

third w indow= 4S R

fourth w indow= 8S R

com pletetransm issionobject

delivered

tim e atc lient

tim e atserver

Viacute dụbull OS = 15 đoạnbull K = 4 cửa sổbull Q = 2bull P = minK-1Q = 2

Server rảnh P=2 lần

Caacutec thagravenh phần trễbull 2 RTT dagravenh cho thiết lập kết nối vagrave yecircu cầubull OR để truyền đối tượngbullthời gian server rảnh bởi vigrave khởi động chậm

Server rảnh P = minK-1Q lần

Transport Layer 3-107

TCP Mocirc higravenh trễ(3)

R

S

R

SRTTPRTT

R

O

R

SRTT

R

SRTT

R

O

idleTimeRTTR

O

P

kP

k

P

pp

)12(][2

]2[2

2delay

1

1

1

th window after the timeidle 2 1 kR

SRTT

R

S k

ementacknowledg receivesserver until

segment send tostartsserver when from time RTTR

S

window kth the transmit totime2 1

R

Sk

RTT

initia te TCPconnection

requestobject

first w indow= S R

second w indow= 2S R

third w indow= 4S R

fourth w indow= 8S R

com pletetransm issionobject

delivered

tim e atc lient

tim e atserver

Transport Layer 3-108

TCP Mocirc higravenh trễ (4)

)1(log

)1(logmin

12min

222min

222min

2

2

110

110

S

OS

Okk

S

Ok

SOk

OSSSkK

k

k

k

caacutech tiacutenh toaacuten Q tương tự (xem HW)

K = số lượng cửa sổ bao trugravem đối tượngLagravem thế nagraveo tiacutenh được K

Transport Layer 3-109

HTTP Mocirc higravenh Giả sử trang Web chứa

1 trang HTML (kiacutech thước O bits) M higravenh ảnh (mỗi caacutei kiacutech thướcO bits)

HTTP khocircng bền vững M+1 TCP kết nối Thời gian đaacutep ứng = (M+1)OR + (M+1)2RTT + tổng số thời

gian rảnh HTTP bền vững

2 RTT để yecircu cầu vagrave nhận file HTML 1 RTT để yecircu cầu vagrave nhận M higravenh ảnh Thời gian đaacutep ứng = (M+1)OR + 3RTT + tổng số thời gian

rảnh HTTP khocircng bền vững với X kết nối song song

Giả sử MX lagrave số nguyecircn 1 TCP kết nối cho file MX thiết lập caacutec kết nối song song cho caacutec higravenh ảnh Thời gian đaacutep ứng = (M+1)OR + (MX + 1)2RTT + tổng số

thời gian rảnh

Transport Layer 3-110

02468

101214161820

28Kbps

100Kbps

1Mbps

10Mbps

non-persistent

persistent

parallel non-persistent

HTTP thời gian đaacutep ứng (giacircy)RTT = 100 msec O = 5 Kbytes M=10 vagrave X=5

Với băng thocircng thấp thời gian kết nối amp đaacutep ứng trội hơn thời gian truyền

Caacutec kết nối bền vững chỉ cho sự cải thiện khocircng đaacuteng kể trecircn caacutec kết nối song song

Transport Layer 3-111

0

10

20

30

40

50

60

70

28Kbps

100Kbps

1Mbps

10Mbps

non-persistent

persistent

parallel non-persistent

HTTP thời gian đaacutep ứng (giacircy)

RTT =1 sec O = 5 Kbytes M=10 and X=5

Với RTT lớn hơn thời gian đaacutep ứng trội hơn thời gian trễ chờ thiết lập kết nốiTCP amp khởi động chậm Caacutec kết nối bền vững bacircy giờ cho thấy cải thiện rotilde rệt đặc biệtvới caacutec mạng băng thocircng cao

Transport Layer 3-112

Chương 3 Tổng kết caacutec nguyecircn lyacute của caacutec

dịch vụ lớp transport multiplexing

demultiplexing truyền dữ liệu tin cậy điều khiển luồng điều khiển tắc nghẽn

khởi tạo vagrave hiện thực trong Internet UDP TCP

Tiếp theo nghiecircn cứu xong

caacutec vấn đề ldquongoagravei biecircnrdquo (caacutec lớp application transport)

chuẩn bị vagraveo phần ldquolotildeirdquo của mạng

  • Slide 1
  • Chương 3 Lớp Transport
  • Chương 3 Nội dung trigravenh bagravey
  • Caacutec dịch vụ vagrave giao thức Transport
  • Lớp Transport với lớp network
  • Caacutec giao thức lớp transport trecircn Internet
  • Slide 7
  • Multiplexingdemultiplexing
  • Demultiplexing lagravem việc như thế nagraveo
  • Demultiplexing khocircng kết nối
  • Demultiplexing khocircng kết nối (tiếp)
  • Demultiplexing hướng kết nối
  • Demultiplexing hướng kết nối (tiếp)
  • Demultiplexing hướng kết nối Threaded Web Server
  • Slide 15
  • UDP User Datagram Protocol [RFC 768]
  • UDP (tt)
  • UDP checksum
  • Viacute dụ Checksum
  • Slide 20
  • Caacutec nguyecircn lyacute truyền dữ liệu tin cậy
  • Slide 22
  • Slide 23
  • Truyền dữ liệu tin cậy
  • Slide 25
  • Rdt10 truyền dữ liệu tin cậy trecircn 1 kecircnh truyền tin cậy
  • Rdt20 kecircnh với caacutec lỗi
  • rdt20 đặc tả FSM
  • rdt20 hoạt động khi khocircng lỗi
  • rdt20 hoạt động khi coacute lỗi
  • rdt20 coacute lỗ hổng nghiecircm trọng
  • rdt21 người gửi quản lyacute caacutec ACKNAK bị hỏng
  • Slide 33
  • rdt21 thảo luận
  • rdt22 một giao thức khocircng cần NAK
  • rdt22 gửi nhận caacutec mảnh
  • rdt30 caacutec kecircnh với lỗi vagrave mất maacutet
  • rdt30 gửi
  • hagravenh động của rdt30
  • Slide 40
  • Hiệu suất của rdt30
  • rdt30 hoạt động dừng-vagrave-chờ
  • Caacutec giao thức Pipelined
  • Pipelining độ khả dụng tăng
  • Go-Back-N
  • GBN becircn gửi mở rộng FSM
  • GBN becircn nhận mở rộng FSM
  • GBN hoạt động
  • Lặp coacute lựa chọn
  • Lặp coacute lựa chọn caacutec cửa sổ gửi nhận
  • Slide 51
  • Hoạt động của lặp coacute lựa chọn
  • Lặp coacute lựa chọn tigravenh trạng khoacute giải quyết
  • Slide 54
  • TCP Tổng quan RFCs 793 1122 1323 2018 2581
  • TCP cấu truacutec đoạn
  • Caacutec số thứ tự TCP vagrave ACK
  • TCP Round Trip Time vagraveTimeout
  • TCP Round Trip Time vagrave Timeout
  • Viacute dụ đaacutenh giaacute RTT
  • Slide 61
  • TCP truyền dữ liệu tin cậy
  • TCP caacutec sự kiện
  • TCP becircn gửi (đơn giản)
  • TCP caacutec tigravenh huống truyền lại
  • TCP caacutec tigravenh huống truyền lại (tt)
  • TCP sinh ra ACK [RFC 1122 RFC 2581]
  • Truyền lại nhanh
  • Giải thuật truyền lại nhanh
  • Slide 70
  • TCP điều khiển luồng
  • TCP điều khiển luồng caacutech lagravem
  • Slide 73
  • TCP quản lyacute kết nối
  • TCP quản lyacute kết nối (tt)
  • Slide 76
  • Slide 77
  • Slide 78
  • Caacutec nguyecircn lyacute điều khiển tắc nghẽn
  • Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 1
  • Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 2
  • Slide 82
  • Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 3
  • Slide 84
  • Caacutec caacutech tiếp cận đối với điều khiển tắc nghẽn
  • Viacute dụ điều khiển tắc nghẽn ATM ABR
  • Slide 87
  • Slide 88
  • TCP điều khiển tắc nghẽn additive tăng lecircn multiplicative giảm xuống
  • TCP điều khiển tắc nghẽn chi tiết
  • TCP khởi động chậm
  • TCP khởi động chậm (tt)
  • Tinh chế
  • Tinh chế nhận biết mất maacutet
  • Tổng kết TCP điều khiển tắc nghẽn
  • TCP điều khiển tắc nghẽn becircn gửi
  • TCP throughput
  • TCP tương lai
  • TCP tiacutenh cocircng bằng
  • Tại sao phải TCP cocircng bằng
  • TCP tiacutenh cocircng bằng (tt)
  • Mocirc higravenh trễ
  • Cửa sổ tắc nghẽn cố định (1)
  • Cửa sổ tắc nghẽn cố định (2)
  • TCP Mocirc higravenh trễ Khởi động chậm (1)
  • TCP Mocirc higravenh trễ Khởi động chậm (2)
  • TCP Mocirc higravenh trễ(3)
  • TCP Mocirc higravenh trễ (4)
  • HTTP Mocirc higravenh
  • Slide 110
  • Slide 111
  • Chương 3 Tổng kết

Transport Layer 3-74

TCP quản lyacute kết nối

Chuacute yacute Becircn gửi vagrave becircn nhận TCP thiết lập ldquokết nốirdquo trước khi trao đổi dữ liệu

khởi tạo caacutec biến TCP caacutec số thứ tự đoạn thocircng tin caacutec bộ đệm điều

khiển luồng (như RcvWindow)

client người khởi xướng kết nối

Socket clientSocket = new Socket(hostnameport

number) server được tiếp xuacutec bởi

client Socket connectionSocket =

welcomeSocketaccept()

3 phương phaacutep bắt tay

Bước 1 client host gửi đoạnTCP SYN đến server xaacutec định số thứ tự khởi đầu khocircng phải dữ liệu

Bước 2 server host nhận SYN trả lời với đoạn SYNACK

server cấp phaacutet caacutec bộ đệm

xaacutec định số thứ tự khởi đầuBước 3 client nhận SYNACK trả

lời với đoạn ACK (coacute thể chứa dữ liệu)

Transport Layer 3-75

TCP quản lyacute kết nối (tt)

Đoacuteng một kết nối

client đoacuteng socket clientSocketclose()

Bước 1 client gửi đoạn điều khiển TCP FIN đến server

Bước 2 server nhận FIN trả lời với ACK Đoacuteng kết nối gửi FIN

client

FIN

server

ACK

ACK

FIN

đoacuteng

đoacuteng

đatilde đoacutengthời g

ian c

hờ

Transport Layer 3-76

TCP quản lyacute kết nối (tt)

Bước 3 client nhận FIN trả lời với ACK

Trong khoảng ldquothời gian chờrdquo ndash sẽ phản hồi với ACK để nhận caacutec FIN

Bước 4 server nhận ACK Kết nối đatilde đoacuteng

Chuacute yacute với một sửa đổi nhỏ coacute thể quản lyacute nhiều FIN đồng thời

client

FIN

server

ACK

ACK

FIN

đang đoacuteng

đang đoacuteng

đatilde đoacuteng

thời g

ian c

hờ

đatilde đoacuteng

Transport Layer 3-77

TCP quản lyacute kết nối (tt)

chu kỳ sống củaTCP client

chu kỳ sống củaTCP server

Transport Layer 3-78

Chương 3 Nội dung trigravenh bagravey

31 Caacutec dịch vụ lớp Transport

32 Multiplexing vagrave demultiplexing

33 Vận chuyển khocircng kết nối UDP

34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy

35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối

36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn

37 Điều khiển tắc nghẽn TCP

Transport Layer 3-79

Caacutec nguyecircn lyacute điều khiển tắc nghẽn

Tắc nghẽn ldquoquaacute nhiều nguồn gửi quaacute nhanh vagrave quaacute nhiều

dữ liệu đến mạngrdquo khaacutec với điều khiển luồng caacutec biểu hiện

caacutec goacutei bị mất (tragraven bộ đệm tại caacutec router) caacutec độ trễ quaacute dagravei (xếp hagraveng trong bộ đệm

của router) lagrave 1 trong 10 vấn đề nan giải nhất

Transport Layer 3-80

Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 1

2 gửi 2 nhận 1 router caacutec bộ

đệm khocircng giới hạn

khocircng coacute truyền lại

caacutec độ trễ lớn hơn khi tắc nghẽn

năng suất coacute thể đạt tối đa

unlimited shared output link buffers

Host Ain original data

Host B

out

Transport Layer 3-81

Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 2

1 router caacutec bộ đệm coacute giới hạn becircn gửi truyền lại caacutec goacutei đatilde mất

chia sẻ vocirc hạncaacutec bộ đệm ouput

Host A in dữ liệu gốc

Host B

out

in dữ liệu gốc cugraveng với dữ liệu truyền lại

Transport Layer 3-82

Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 2 luocircn luocircn

truyền lại ldquohoagraven toagravenrdquo chỉ khi mất maacutet

truyền lại vigrave trễ (khocircng mất) lagravem cho lớn hơn với cugraveng

in

out

=

in

out

gt

in

out

ldquocaacutec chi phiacuterdquo của tắc nghẽn nhiều việc (truyền lại) caacutec truyền lại khocircng cần thiết liecircn kết nhiều bản sao của

goacutei

R2

R2in

ou

t

b

R2

R2in

ou

t

a

R2

R2in

ou

t

c

R4

R3

Transport Layer 3-83

Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 3 4 người gửi caacutec đường qua nhiều hop timeouttruyền lại

in

Hỏi điều gigrave xảy ra nếu vagrave tăng lecircn

in

chia sẻ vocirc hạncaacutec bộ đệm ouput

Host Ain dữ liệu gốc

Host B

out

in dữ liệu gốc cugraveng với dữ liệu truyền lại

Transport Layer 3-84

Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 3

ldquochi phiacuterdquo khaacutec của tắc nghẽn khi caacutec goacutei bị bỏ bất kỳ ldquokhả năng truyền

upstream dugraveng cho goacutei đoacute sẽ bị latildeng phiacuterdquo

Host A

Host B

o

u

t

Transport Layer 3-85

Caacutec caacutech tiếp cận đối với điều khiển tắc nghẽn

điều khiển tắc nghẽn end-end

khocircng coacute phản hồi rotilde ragraveng từ mạng

tắc nghẽn được suy ra từ việc quan saacutet caacutec hệ thống đầu cuối coacute mất maacutet trễ

tiếp cận được quản lyacute bởi TCP

điều khiển tắc nghẽn coacute sự hỗ trợ của mạng

caacutec router cung cấp phản hồi về caacutec hệ thống đầu cuối 1 bit duy nhất chỉ thị

tắc nghẽn (SNA DECbit TCPIP ECN ATM)

tốc độ sẽ gửi được xaacutec định rotilde ragraveng

2 caacutech

Transport Layer 3-86

Viacute dụ điều khiển tắc nghẽn ATM ABR

ABR tốc độ bit sẵn sagraveng

ldquodịch vụ mềm dẻordquo nếu đường gửi ldquochưa

hếtrdquo becircn gửi sẽ dugraveng

băng thocircng sẵn sagraveng nếu đường gửi tắc

nghẽn becircn gửi điều tiết với

tốc độ tối thiểu

RM (resource management)

gửi bởi becircn gửi rải raacutec với caacutec ocirc dữ liệu

caacutec bit trong ocirc thiết lập bởi caacutec switch bit NI khocircng tăng tốc độ

(tắc nghẽn nhẹ) bit CI tắc nghẽn rotilde rệt

Caacutec ocirc RM được trả về becircn gửi từ becircn nhận với nguyecircn vẹn caacutec bit

Transport Layer 3-87

Viacute dụ điều khiển tắc nghẽn ATM ABR

trường 2-byte ER trong ocirc RM switch đatilde tắc nghẽn coacute thể coacute giaacute trị ER thấp hơn trong ocirc tốc độ gửi do đoacute coacute thể được hỗ trợ tối đa trecircn đường

EFCI bit trong caacutec ocirc dữ liệu được cagravei giaacute trị 1 trong switch đatilde tắc nghẽn nếu ocirc dữ liệu đứng trước ocirc RM coacute cagravei EFCI becircn gửi sẽ cagravei

bit CI trong ocirc RM trả về

Transport Layer 3-88

Chương 3 Nội dung trigravenh bagravey

31 Caacutec dịch vụ lớp Transport

32 Multiplexing vagrave demultiplexing

33 Vận chuyển khocircng kết nối UDP

34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy

35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối

36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn

37 Điều khiển tắc nghẽn TCP

Transport Layer 3-89

TCP điều khiển tắc nghẽn additive tăng lecircn multiplicative giảm xuống

8 Kbytes

16 Kbytes

24 Kbytes

time

congestionwindow

Caacutech tiếp cận tăng tốc độ truyền (kiacutech thước cửa sổ) tigravem khả năng băng thocircng coacute thể cho đến khi coacute mất maacutet xảy ra additive tăng lecircn tăng CongWin bởi 1 MSS

mỗi RTT cho đến khi coacute mất maacutet xảy ra multiplicative giảm xuống bỏ CongWin trong

nửa giai đoạn sau khi mất maacutet

timekiacutech

thư

ớc

cửa

sổ

tắc

nghẽ

n

Tigravem kiếm băng thocircng

Transport Layer 3-90

TCP điều khiển tắc nghẽn chi tiết

becircn gửi hạn chế việc truyền LastByteSent-LastByteAcked

CongWin Cocircng thức

CongWin thay đổi chức năng lagrave nhận biết tắc nghẽn trecircn mạng

Lagravem thế nagraveo becircn gửi nhận biết tắc nghẽn

mất maacutet xảy ra = timeout hoặc 3 ack trugraveng lặp

becircn gửi giảm tốc độ (CongWin) sau khi mất maacutet xảy ra

3 cơ chế AIMD khởi động chậm thận trọng sau khi coacute

caacutec sự kiện timeout

tốc độ = CongWin

RTT Bytess

Transport Layer 3-91

TCP khởi động chậm

Khi kết nối bắt đầu CongWin = 1 MSS Viacute dụ MSS = 500 bytes

amp RTT = 200 ms tốc độ khởi tạo = 20

kbps

băng thocircng sẵn sagraveng coacute thể gtgt MSSRTT mong muốn nhanh

choacuteng tăng tốc lecircn tốc độ coacute thể đaacutep ứng

Khi kết nối bắt đầu tăng tốc lecircn rất nhanh cho đến khi sự cố mất maacutet xảy ra đầu tiecircn

Transport Layer 3-92

TCP khởi động chậm (tt)

Khi kết nối bắt đầu tăng tốc lecircn rất nhanh cho đến khi sự cố mất maacutet xảy ra đầu tiecircn nhacircn đocirci CongWin mỗi

RTT hoagraven thagravenh nhờ tăng CongWin ứng với mỗi ACK đatilde nhận

Tổng kết tốc độ khởi đầu lagrave chậm nhưng sau đoacute tăng tốc rất nhanh

Host A

1 đoạn

RTT

Host B

thời gian

2 đoạn

4 đoạn

Transport Layer 3-93

Tinh chếHỏi Khi nagraveo việc tăng

tốc trở thagravenh tuyến tiacutenh

Trả lời Khi CongWin đạt đến 12 giaacute trị của noacute trước khi timeout

Hiện thực Ngưỡng thay đổi Tại thời điểm coacute sự cố

mất maacutet ngưỡng được cagravei giaacute trị bằng frac12 của CongWin ngay trước đoacute

Transport Layer 3-94

Tinh chế nhận biết mất maacutet

Sau 3 ACK trugraveng lặp CongWin sẽ giảm 12 kiacutech thước cửa sổ

tăng tuyến tiacutenh nhưng sau sự cố

timeout CongWin thay giaacute trị

bằng 1 MSS kiacutech thước cửa sổ

tăng cấp lũy thừa khi đến một ngưỡng

thigrave tăng tuyến tiacutenh

3 ACK trugraveng nhau chỉ ra khả năng truyền của mạng timeout chỉ thị ldquonhiều cảnh baacuteordquo về tigravenh huống tắc nghẽn

Nguyecircn lyacute

Transport Layer 3-95

Tổng kết TCP điều khiển tắc nghẽn

Khi CongWin dưới Threshold becircn gửi đang trong giai đoạn khởi động chậm kiacutech thước cửa sổ tăng nhanh theo cấp lũy thừa

Khi CongWin trecircn Threshold becircn gửi đang trong giai đoạn traacutenh tắc nghẽn kiacutech thước cửa sổ tăng nhanh theo cấp tuyến tiacutenh

Khi coacute 3 ACK trugraveng lặp xảy ra Threshold = CongWin2 vagrave CongWin = Threshold

Khi timeout xảy ra Threshold = CongWin2 vagrave CongWin = 1 MSS

Transport Layer 3-96

TCP điều khiển tắc nghẽn becircn gửi

Trạng thaacutei Sự kiện TCP becircn gửi hagravenh động Diễn giải

Slow Start (SS)-Khởi động chậm

ACK baacuteo nhận cho dữ liệu chưa ACK trước đoacute

CongWin = CongWin + MSS If (CongWin gt Threshold) cagravei đặt trạng thaacutei ldquoTraacutenh tắc nghẽnrdquo

Hậu quả lagravem tăng gấp đocirci CongWin mỗi RTT

CongestionAvoidance (CA) ndashTraacutenh tắc nghẽn

ACK baacuteo nhận cho dữ liệu chưa ACK trước đoacute

CongWin = CongWin+MSS (MSSCongWin)

Additive tăng lecircn lagravem tăng CongWin lecircn 1 MSS mỗi RTT

SS hoặc CA Sự cố mất maacutet xảy ra khi thấy coacute 3 ACK trugraveng lặp

Threshold = CongWin2 CongWin = Thresholdcagravei đặt trạng thaacutei ldquoTraacutenh tắc nghẽnrdquo

Khocirci phục nhanh hiện thực giảm xuống multiplicative CongWin sẽ khocircng giảm xuống dưới 1 MSS

SS hoặc CA Timeout Threshold = CongWin2 CongWin = 1 MSScagravei đặt trạng thaacutei ldquoKhởi động chậmrdquo

Vagraveo chế độ ldquoKhởi động chậmrdquo

SS hoặc CA ACK trugraveng lặp

Đếm ACK tăng lecircn cho đoạn vừa được ACK

CongWin vagrave Threshold khocircng thay đổi

Transport Layer 3-97

TCP throughput

Throughout trung bigravenh của TCP biểu diễn qua kiacutech thước của sổ vagrave RTT Bỏ qua trạng thaacutei ldquoKhởi động chậmrdquo

Cho W lagrave kiacutech thước cửa sổ khi coacute mất maacutet xảy ra

Khi kiacutech thước cửa sổ = W lưu lượng = WRTT

Chỉ ngay sau khi mất maacutet cửa sổ giảm xuống = W2 lưu lượng = W2RTT

throughout trung bigravenh 075 WRTT

Transport Layer 3-98

TCP tương lai

Viacute dụ caacutec đoạn dagravei 1500 byte RTT 100ms lưu lượng 10 Gbps

Kiacutech thước cửa sổ yecircu cầu W = 83333 đoạn trecircn đường truyền

Lưu lượng trong caacutec trường hợp mất maacutet

L = 210-10

Phiecircn bản mới của TCP dagravenh cho nhu cầu tốc độ cao

LRTT

MSS221

Transport Layer 3-99

Mục tiecircu nếu K phiecircn lagravem việc TCP chia sẻ kết nối cổ chai của băng thocircng lagrave R mỗi phiecircn coacute tốc độ trung bigravenh lagrave RK

TCP kết nối 1

router cổ chaikhả năng R

TCP kết nối 2

TCP tiacutenh cocircng bằng

Transport Layer 3-100

Tại sao phải TCP cocircng bằng

2 phiecircn lagravem việc cạnh tranh nhau Additive tăng lưu lượng tăng multiplicative giảm lưu lượng tương xứng

R

R

chia sẻ băng thocircng bằng nhau

Connection 1 throughputConnect

ion 2

th

roughput

traacutenh tắc nghẽn additive tăng lecircnmất maacutet giảm cửa sổ bằng 12

traacutenh tắc nghẽn additive tăng lecircnmất maacutet giảm cửa sổ bằng 12

Transport Layer 3-101

TCP tiacutenh cocircng bằng (tt)

Tiacutenh cocircng bằng amp UDP nhiều ứng dụng

thường khocircng dugraveng TCP khocircng muốn tốc độ bị

điều tiết do điều khiển tắc nghẽn

Thay bằng dugraveng UDP truyền audiovideo với

tốc độ ổn định chịu được mất maacutet

Nghiecircn cứu giao thức thacircn thiện với TCP

Tiacutenh cocircng bằng amp caacutec kết nối TCP song song

khocircng coacute gigrave ngăn cản việc ứng dụng mở caacutec kết nối song song giữa 2 host

Trigravenh duyệt Web lagravem giống như thế

Viacute dụ tốc độ R hỗ trợ 9 kết nối ứng dụng mới yecircu cầu 1

TCP coacute tốc độ R10 ứng dụng mới yecircu cầu 11

TCP coacute tốc độ R2

Transport Layer 3-102

Mocirc higravenh trễ

Hỏi Mất bao lacircu để nhận 1 đối tượng từ Web server sau khi gửi yecircu cầu

Bỏ qua tắc nghẽn trễ bị ảnh hưởng bởi

thiết lập kết nối TCP trễ truyền dữ liệu khởi động chậm

Notation caacutec giả định Giả sử một kết nối giữa

client vagrave server coacute tốc độ R

S MSS (bits) O kiacutech thước đối tượng

(bits) khocircng truyền lại (khocircng

mất maacutet khocircng hỏng)

Kiacutech thước cửa sổ Giả định 1 cửa sổ tắc

nghẽn cố định coacute W đoạn Sau đoacute cửa sổ thay đổi

mocirc higravenh khởi động chậm

Transport Layer 3-103

Cửa sổ tắc nghẽn cố định (1)

Trường hợp đầu tiecircnWSR gt RTT + SR cho

đoạn đầu tiecircn trong cửa sổ trả về trước khi cửa sổ dữ liệu gửi ACK

trễ = 2RTT + OR

Transport Layer 3-104

Cửa sổ tắc nghẽn cố định (2)

Trường hợp thứ hai WSR lt RTT + SR sent

chờ cho ACK sau khi gửi dữ liệu

trễ = 2RTT + OR+ (K-1)[SR + RTT - WSR]

Transport Layer 3-105

TCP Mocirc higravenh trễ Khởi động chậm (1)

Bacircy giờ giả sử kiacutech thước cửa sổ tăng lecircn tugravey theo quaacute trigravenh khởi động chậm

Độ trễ của một đối tượng sẽ lagrave

R

S

R

SRTTP

R

ORTTLatency P )12(2

trong đoacute P lagrave số lần TCP rảnh ở tại server

1min KQP

- trong đoacute Q lagrave số lần server rảnh nếu đối tượng đatilde khởi tạo kiacutech thước

- vagrave K lagrave số lượng cửa sổ bao trugravem đối tượng

Transport Layer 3-106

TCP Mocirc higravenh trễ Khởi động chậm (2)

RTT

initia te TCPconnection

requestobject

first w indow= S R

second w indow= 2S R

third w indow= 4S R

fourth w indow= 8S R

com pletetransm issionobject

delivered

tim e atc lient

tim e atserver

Viacute dụbull OS = 15 đoạnbull K = 4 cửa sổbull Q = 2bull P = minK-1Q = 2

Server rảnh P=2 lần

Caacutec thagravenh phần trễbull 2 RTT dagravenh cho thiết lập kết nối vagrave yecircu cầubull OR để truyền đối tượngbullthời gian server rảnh bởi vigrave khởi động chậm

Server rảnh P = minK-1Q lần

Transport Layer 3-107

TCP Mocirc higravenh trễ(3)

R

S

R

SRTTPRTT

R

O

R

SRTT

R

SRTT

R

O

idleTimeRTTR

O

P

kP

k

P

pp

)12(][2

]2[2

2delay

1

1

1

th window after the timeidle 2 1 kR

SRTT

R

S k

ementacknowledg receivesserver until

segment send tostartsserver when from time RTTR

S

window kth the transmit totime2 1

R

Sk

RTT

initia te TCPconnection

requestobject

first w indow= S R

second w indow= 2S R

third w indow= 4S R

fourth w indow= 8S R

com pletetransm issionobject

delivered

tim e atc lient

tim e atserver

Transport Layer 3-108

TCP Mocirc higravenh trễ (4)

)1(log

)1(logmin

12min

222min

222min

2

2

110

110

S

OS

Okk

S

Ok

SOk

OSSSkK

k

k

k

caacutech tiacutenh toaacuten Q tương tự (xem HW)

K = số lượng cửa sổ bao trugravem đối tượngLagravem thế nagraveo tiacutenh được K

Transport Layer 3-109

HTTP Mocirc higravenh Giả sử trang Web chứa

1 trang HTML (kiacutech thước O bits) M higravenh ảnh (mỗi caacutei kiacutech thướcO bits)

HTTP khocircng bền vững M+1 TCP kết nối Thời gian đaacutep ứng = (M+1)OR + (M+1)2RTT + tổng số thời

gian rảnh HTTP bền vững

2 RTT để yecircu cầu vagrave nhận file HTML 1 RTT để yecircu cầu vagrave nhận M higravenh ảnh Thời gian đaacutep ứng = (M+1)OR + 3RTT + tổng số thời gian

rảnh HTTP khocircng bền vững với X kết nối song song

Giả sử MX lagrave số nguyecircn 1 TCP kết nối cho file MX thiết lập caacutec kết nối song song cho caacutec higravenh ảnh Thời gian đaacutep ứng = (M+1)OR + (MX + 1)2RTT + tổng số

thời gian rảnh

Transport Layer 3-110

02468

101214161820

28Kbps

100Kbps

1Mbps

10Mbps

non-persistent

persistent

parallel non-persistent

HTTP thời gian đaacutep ứng (giacircy)RTT = 100 msec O = 5 Kbytes M=10 vagrave X=5

Với băng thocircng thấp thời gian kết nối amp đaacutep ứng trội hơn thời gian truyền

Caacutec kết nối bền vững chỉ cho sự cải thiện khocircng đaacuteng kể trecircn caacutec kết nối song song

Transport Layer 3-111

0

10

20

30

40

50

60

70

28Kbps

100Kbps

1Mbps

10Mbps

non-persistent

persistent

parallel non-persistent

HTTP thời gian đaacutep ứng (giacircy)

RTT =1 sec O = 5 Kbytes M=10 and X=5

Với RTT lớn hơn thời gian đaacutep ứng trội hơn thời gian trễ chờ thiết lập kết nốiTCP amp khởi động chậm Caacutec kết nối bền vững bacircy giờ cho thấy cải thiện rotilde rệt đặc biệtvới caacutec mạng băng thocircng cao

Transport Layer 3-112

Chương 3 Tổng kết caacutec nguyecircn lyacute của caacutec

dịch vụ lớp transport multiplexing

demultiplexing truyền dữ liệu tin cậy điều khiển luồng điều khiển tắc nghẽn

khởi tạo vagrave hiện thực trong Internet UDP TCP

Tiếp theo nghiecircn cứu xong

caacutec vấn đề ldquongoagravei biecircnrdquo (caacutec lớp application transport)

chuẩn bị vagraveo phần ldquolotildeirdquo của mạng

  • Slide 1
  • Chương 3 Lớp Transport
  • Chương 3 Nội dung trigravenh bagravey
  • Caacutec dịch vụ vagrave giao thức Transport
  • Lớp Transport với lớp network
  • Caacutec giao thức lớp transport trecircn Internet
  • Slide 7
  • Multiplexingdemultiplexing
  • Demultiplexing lagravem việc như thế nagraveo
  • Demultiplexing khocircng kết nối
  • Demultiplexing khocircng kết nối (tiếp)
  • Demultiplexing hướng kết nối
  • Demultiplexing hướng kết nối (tiếp)
  • Demultiplexing hướng kết nối Threaded Web Server
  • Slide 15
  • UDP User Datagram Protocol [RFC 768]
  • UDP (tt)
  • UDP checksum
  • Viacute dụ Checksum
  • Slide 20
  • Caacutec nguyecircn lyacute truyền dữ liệu tin cậy
  • Slide 22
  • Slide 23
  • Truyền dữ liệu tin cậy
  • Slide 25
  • Rdt10 truyền dữ liệu tin cậy trecircn 1 kecircnh truyền tin cậy
  • Rdt20 kecircnh với caacutec lỗi
  • rdt20 đặc tả FSM
  • rdt20 hoạt động khi khocircng lỗi
  • rdt20 hoạt động khi coacute lỗi
  • rdt20 coacute lỗ hổng nghiecircm trọng
  • rdt21 người gửi quản lyacute caacutec ACKNAK bị hỏng
  • Slide 33
  • rdt21 thảo luận
  • rdt22 một giao thức khocircng cần NAK
  • rdt22 gửi nhận caacutec mảnh
  • rdt30 caacutec kecircnh với lỗi vagrave mất maacutet
  • rdt30 gửi
  • hagravenh động của rdt30
  • Slide 40
  • Hiệu suất của rdt30
  • rdt30 hoạt động dừng-vagrave-chờ
  • Caacutec giao thức Pipelined
  • Pipelining độ khả dụng tăng
  • Go-Back-N
  • GBN becircn gửi mở rộng FSM
  • GBN becircn nhận mở rộng FSM
  • GBN hoạt động
  • Lặp coacute lựa chọn
  • Lặp coacute lựa chọn caacutec cửa sổ gửi nhận
  • Slide 51
  • Hoạt động của lặp coacute lựa chọn
  • Lặp coacute lựa chọn tigravenh trạng khoacute giải quyết
  • Slide 54
  • TCP Tổng quan RFCs 793 1122 1323 2018 2581
  • TCP cấu truacutec đoạn
  • Caacutec số thứ tự TCP vagrave ACK
  • TCP Round Trip Time vagraveTimeout
  • TCP Round Trip Time vagrave Timeout
  • Viacute dụ đaacutenh giaacute RTT
  • Slide 61
  • TCP truyền dữ liệu tin cậy
  • TCP caacutec sự kiện
  • TCP becircn gửi (đơn giản)
  • TCP caacutec tigravenh huống truyền lại
  • TCP caacutec tigravenh huống truyền lại (tt)
  • TCP sinh ra ACK [RFC 1122 RFC 2581]
  • Truyền lại nhanh
  • Giải thuật truyền lại nhanh
  • Slide 70
  • TCP điều khiển luồng
  • TCP điều khiển luồng caacutech lagravem
  • Slide 73
  • TCP quản lyacute kết nối
  • TCP quản lyacute kết nối (tt)
  • Slide 76
  • Slide 77
  • Slide 78
  • Caacutec nguyecircn lyacute điều khiển tắc nghẽn
  • Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 1
  • Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 2
  • Slide 82
  • Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 3
  • Slide 84
  • Caacutec caacutech tiếp cận đối với điều khiển tắc nghẽn
  • Viacute dụ điều khiển tắc nghẽn ATM ABR
  • Slide 87
  • Slide 88
  • TCP điều khiển tắc nghẽn additive tăng lecircn multiplicative giảm xuống
  • TCP điều khiển tắc nghẽn chi tiết
  • TCP khởi động chậm
  • TCP khởi động chậm (tt)
  • Tinh chế
  • Tinh chế nhận biết mất maacutet
  • Tổng kết TCP điều khiển tắc nghẽn
  • TCP điều khiển tắc nghẽn becircn gửi
  • TCP throughput
  • TCP tương lai
  • TCP tiacutenh cocircng bằng
  • Tại sao phải TCP cocircng bằng
  • TCP tiacutenh cocircng bằng (tt)
  • Mocirc higravenh trễ
  • Cửa sổ tắc nghẽn cố định (1)
  • Cửa sổ tắc nghẽn cố định (2)
  • TCP Mocirc higravenh trễ Khởi động chậm (1)
  • TCP Mocirc higravenh trễ Khởi động chậm (2)
  • TCP Mocirc higravenh trễ(3)
  • TCP Mocirc higravenh trễ (4)
  • HTTP Mocirc higravenh
  • Slide 110
  • Slide 111
  • Chương 3 Tổng kết

Transport Layer 3-75

TCP quản lyacute kết nối (tt)

Đoacuteng một kết nối

client đoacuteng socket clientSocketclose()

Bước 1 client gửi đoạn điều khiển TCP FIN đến server

Bước 2 server nhận FIN trả lời với ACK Đoacuteng kết nối gửi FIN

client

FIN

server

ACK

ACK

FIN

đoacuteng

đoacuteng

đatilde đoacutengthời g

ian c

hờ

Transport Layer 3-76

TCP quản lyacute kết nối (tt)

Bước 3 client nhận FIN trả lời với ACK

Trong khoảng ldquothời gian chờrdquo ndash sẽ phản hồi với ACK để nhận caacutec FIN

Bước 4 server nhận ACK Kết nối đatilde đoacuteng

Chuacute yacute với một sửa đổi nhỏ coacute thể quản lyacute nhiều FIN đồng thời

client

FIN

server

ACK

ACK

FIN

đang đoacuteng

đang đoacuteng

đatilde đoacuteng

thời g

ian c

hờ

đatilde đoacuteng

Transport Layer 3-77

TCP quản lyacute kết nối (tt)

chu kỳ sống củaTCP client

chu kỳ sống củaTCP server

Transport Layer 3-78

Chương 3 Nội dung trigravenh bagravey

31 Caacutec dịch vụ lớp Transport

32 Multiplexing vagrave demultiplexing

33 Vận chuyển khocircng kết nối UDP

34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy

35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối

36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn

37 Điều khiển tắc nghẽn TCP

Transport Layer 3-79

Caacutec nguyecircn lyacute điều khiển tắc nghẽn

Tắc nghẽn ldquoquaacute nhiều nguồn gửi quaacute nhanh vagrave quaacute nhiều

dữ liệu đến mạngrdquo khaacutec với điều khiển luồng caacutec biểu hiện

caacutec goacutei bị mất (tragraven bộ đệm tại caacutec router) caacutec độ trễ quaacute dagravei (xếp hagraveng trong bộ đệm

của router) lagrave 1 trong 10 vấn đề nan giải nhất

Transport Layer 3-80

Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 1

2 gửi 2 nhận 1 router caacutec bộ

đệm khocircng giới hạn

khocircng coacute truyền lại

caacutec độ trễ lớn hơn khi tắc nghẽn

năng suất coacute thể đạt tối đa

unlimited shared output link buffers

Host Ain original data

Host B

out

Transport Layer 3-81

Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 2

1 router caacutec bộ đệm coacute giới hạn becircn gửi truyền lại caacutec goacutei đatilde mất

chia sẻ vocirc hạncaacutec bộ đệm ouput

Host A in dữ liệu gốc

Host B

out

in dữ liệu gốc cugraveng với dữ liệu truyền lại

Transport Layer 3-82

Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 2 luocircn luocircn

truyền lại ldquohoagraven toagravenrdquo chỉ khi mất maacutet

truyền lại vigrave trễ (khocircng mất) lagravem cho lớn hơn với cugraveng

in

out

=

in

out

gt

in

out

ldquocaacutec chi phiacuterdquo của tắc nghẽn nhiều việc (truyền lại) caacutec truyền lại khocircng cần thiết liecircn kết nhiều bản sao của

goacutei

R2

R2in

ou

t

b

R2

R2in

ou

t

a

R2

R2in

ou

t

c

R4

R3

Transport Layer 3-83

Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 3 4 người gửi caacutec đường qua nhiều hop timeouttruyền lại

in

Hỏi điều gigrave xảy ra nếu vagrave tăng lecircn

in

chia sẻ vocirc hạncaacutec bộ đệm ouput

Host Ain dữ liệu gốc

Host B

out

in dữ liệu gốc cugraveng với dữ liệu truyền lại

Transport Layer 3-84

Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 3

ldquochi phiacuterdquo khaacutec của tắc nghẽn khi caacutec goacutei bị bỏ bất kỳ ldquokhả năng truyền

upstream dugraveng cho goacutei đoacute sẽ bị latildeng phiacuterdquo

Host A

Host B

o

u

t

Transport Layer 3-85

Caacutec caacutech tiếp cận đối với điều khiển tắc nghẽn

điều khiển tắc nghẽn end-end

khocircng coacute phản hồi rotilde ragraveng từ mạng

tắc nghẽn được suy ra từ việc quan saacutet caacutec hệ thống đầu cuối coacute mất maacutet trễ

tiếp cận được quản lyacute bởi TCP

điều khiển tắc nghẽn coacute sự hỗ trợ của mạng

caacutec router cung cấp phản hồi về caacutec hệ thống đầu cuối 1 bit duy nhất chỉ thị

tắc nghẽn (SNA DECbit TCPIP ECN ATM)

tốc độ sẽ gửi được xaacutec định rotilde ragraveng

2 caacutech

Transport Layer 3-86

Viacute dụ điều khiển tắc nghẽn ATM ABR

ABR tốc độ bit sẵn sagraveng

ldquodịch vụ mềm dẻordquo nếu đường gửi ldquochưa

hếtrdquo becircn gửi sẽ dugraveng

băng thocircng sẵn sagraveng nếu đường gửi tắc

nghẽn becircn gửi điều tiết với

tốc độ tối thiểu

RM (resource management)

gửi bởi becircn gửi rải raacutec với caacutec ocirc dữ liệu

caacutec bit trong ocirc thiết lập bởi caacutec switch bit NI khocircng tăng tốc độ

(tắc nghẽn nhẹ) bit CI tắc nghẽn rotilde rệt

Caacutec ocirc RM được trả về becircn gửi từ becircn nhận với nguyecircn vẹn caacutec bit

Transport Layer 3-87

Viacute dụ điều khiển tắc nghẽn ATM ABR

trường 2-byte ER trong ocirc RM switch đatilde tắc nghẽn coacute thể coacute giaacute trị ER thấp hơn trong ocirc tốc độ gửi do đoacute coacute thể được hỗ trợ tối đa trecircn đường

EFCI bit trong caacutec ocirc dữ liệu được cagravei giaacute trị 1 trong switch đatilde tắc nghẽn nếu ocirc dữ liệu đứng trước ocirc RM coacute cagravei EFCI becircn gửi sẽ cagravei

bit CI trong ocirc RM trả về

Transport Layer 3-88

Chương 3 Nội dung trigravenh bagravey

31 Caacutec dịch vụ lớp Transport

32 Multiplexing vagrave demultiplexing

33 Vận chuyển khocircng kết nối UDP

34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy

35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối

36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn

37 Điều khiển tắc nghẽn TCP

Transport Layer 3-89

TCP điều khiển tắc nghẽn additive tăng lecircn multiplicative giảm xuống

8 Kbytes

16 Kbytes

24 Kbytes

time

congestionwindow

Caacutech tiếp cận tăng tốc độ truyền (kiacutech thước cửa sổ) tigravem khả năng băng thocircng coacute thể cho đến khi coacute mất maacutet xảy ra additive tăng lecircn tăng CongWin bởi 1 MSS

mỗi RTT cho đến khi coacute mất maacutet xảy ra multiplicative giảm xuống bỏ CongWin trong

nửa giai đoạn sau khi mất maacutet

timekiacutech

thư

ớc

cửa

sổ

tắc

nghẽ

n

Tigravem kiếm băng thocircng

Transport Layer 3-90

TCP điều khiển tắc nghẽn chi tiết

becircn gửi hạn chế việc truyền LastByteSent-LastByteAcked

CongWin Cocircng thức

CongWin thay đổi chức năng lagrave nhận biết tắc nghẽn trecircn mạng

Lagravem thế nagraveo becircn gửi nhận biết tắc nghẽn

mất maacutet xảy ra = timeout hoặc 3 ack trugraveng lặp

becircn gửi giảm tốc độ (CongWin) sau khi mất maacutet xảy ra

3 cơ chế AIMD khởi động chậm thận trọng sau khi coacute

caacutec sự kiện timeout

tốc độ = CongWin

RTT Bytess

Transport Layer 3-91

TCP khởi động chậm

Khi kết nối bắt đầu CongWin = 1 MSS Viacute dụ MSS = 500 bytes

amp RTT = 200 ms tốc độ khởi tạo = 20

kbps

băng thocircng sẵn sagraveng coacute thể gtgt MSSRTT mong muốn nhanh

choacuteng tăng tốc lecircn tốc độ coacute thể đaacutep ứng

Khi kết nối bắt đầu tăng tốc lecircn rất nhanh cho đến khi sự cố mất maacutet xảy ra đầu tiecircn

Transport Layer 3-92

TCP khởi động chậm (tt)

Khi kết nối bắt đầu tăng tốc lecircn rất nhanh cho đến khi sự cố mất maacutet xảy ra đầu tiecircn nhacircn đocirci CongWin mỗi

RTT hoagraven thagravenh nhờ tăng CongWin ứng với mỗi ACK đatilde nhận

Tổng kết tốc độ khởi đầu lagrave chậm nhưng sau đoacute tăng tốc rất nhanh

Host A

1 đoạn

RTT

Host B

thời gian

2 đoạn

4 đoạn

Transport Layer 3-93

Tinh chếHỏi Khi nagraveo việc tăng

tốc trở thagravenh tuyến tiacutenh

Trả lời Khi CongWin đạt đến 12 giaacute trị của noacute trước khi timeout

Hiện thực Ngưỡng thay đổi Tại thời điểm coacute sự cố

mất maacutet ngưỡng được cagravei giaacute trị bằng frac12 của CongWin ngay trước đoacute

Transport Layer 3-94

Tinh chế nhận biết mất maacutet

Sau 3 ACK trugraveng lặp CongWin sẽ giảm 12 kiacutech thước cửa sổ

tăng tuyến tiacutenh nhưng sau sự cố

timeout CongWin thay giaacute trị

bằng 1 MSS kiacutech thước cửa sổ

tăng cấp lũy thừa khi đến một ngưỡng

thigrave tăng tuyến tiacutenh

3 ACK trugraveng nhau chỉ ra khả năng truyền của mạng timeout chỉ thị ldquonhiều cảnh baacuteordquo về tigravenh huống tắc nghẽn

Nguyecircn lyacute

Transport Layer 3-95

Tổng kết TCP điều khiển tắc nghẽn

Khi CongWin dưới Threshold becircn gửi đang trong giai đoạn khởi động chậm kiacutech thước cửa sổ tăng nhanh theo cấp lũy thừa

Khi CongWin trecircn Threshold becircn gửi đang trong giai đoạn traacutenh tắc nghẽn kiacutech thước cửa sổ tăng nhanh theo cấp tuyến tiacutenh

Khi coacute 3 ACK trugraveng lặp xảy ra Threshold = CongWin2 vagrave CongWin = Threshold

Khi timeout xảy ra Threshold = CongWin2 vagrave CongWin = 1 MSS

Transport Layer 3-96

TCP điều khiển tắc nghẽn becircn gửi

Trạng thaacutei Sự kiện TCP becircn gửi hagravenh động Diễn giải

Slow Start (SS)-Khởi động chậm

ACK baacuteo nhận cho dữ liệu chưa ACK trước đoacute

CongWin = CongWin + MSS If (CongWin gt Threshold) cagravei đặt trạng thaacutei ldquoTraacutenh tắc nghẽnrdquo

Hậu quả lagravem tăng gấp đocirci CongWin mỗi RTT

CongestionAvoidance (CA) ndashTraacutenh tắc nghẽn

ACK baacuteo nhận cho dữ liệu chưa ACK trước đoacute

CongWin = CongWin+MSS (MSSCongWin)

Additive tăng lecircn lagravem tăng CongWin lecircn 1 MSS mỗi RTT

SS hoặc CA Sự cố mất maacutet xảy ra khi thấy coacute 3 ACK trugraveng lặp

Threshold = CongWin2 CongWin = Thresholdcagravei đặt trạng thaacutei ldquoTraacutenh tắc nghẽnrdquo

Khocirci phục nhanh hiện thực giảm xuống multiplicative CongWin sẽ khocircng giảm xuống dưới 1 MSS

SS hoặc CA Timeout Threshold = CongWin2 CongWin = 1 MSScagravei đặt trạng thaacutei ldquoKhởi động chậmrdquo

Vagraveo chế độ ldquoKhởi động chậmrdquo

SS hoặc CA ACK trugraveng lặp

Đếm ACK tăng lecircn cho đoạn vừa được ACK

CongWin vagrave Threshold khocircng thay đổi

Transport Layer 3-97

TCP throughput

Throughout trung bigravenh của TCP biểu diễn qua kiacutech thước của sổ vagrave RTT Bỏ qua trạng thaacutei ldquoKhởi động chậmrdquo

Cho W lagrave kiacutech thước cửa sổ khi coacute mất maacutet xảy ra

Khi kiacutech thước cửa sổ = W lưu lượng = WRTT

Chỉ ngay sau khi mất maacutet cửa sổ giảm xuống = W2 lưu lượng = W2RTT

throughout trung bigravenh 075 WRTT

Transport Layer 3-98

TCP tương lai

Viacute dụ caacutec đoạn dagravei 1500 byte RTT 100ms lưu lượng 10 Gbps

Kiacutech thước cửa sổ yecircu cầu W = 83333 đoạn trecircn đường truyền

Lưu lượng trong caacutec trường hợp mất maacutet

L = 210-10

Phiecircn bản mới của TCP dagravenh cho nhu cầu tốc độ cao

LRTT

MSS221

Transport Layer 3-99

Mục tiecircu nếu K phiecircn lagravem việc TCP chia sẻ kết nối cổ chai của băng thocircng lagrave R mỗi phiecircn coacute tốc độ trung bigravenh lagrave RK

TCP kết nối 1

router cổ chaikhả năng R

TCP kết nối 2

TCP tiacutenh cocircng bằng

Transport Layer 3-100

Tại sao phải TCP cocircng bằng

2 phiecircn lagravem việc cạnh tranh nhau Additive tăng lưu lượng tăng multiplicative giảm lưu lượng tương xứng

R

R

chia sẻ băng thocircng bằng nhau

Connection 1 throughputConnect

ion 2

th

roughput

traacutenh tắc nghẽn additive tăng lecircnmất maacutet giảm cửa sổ bằng 12

traacutenh tắc nghẽn additive tăng lecircnmất maacutet giảm cửa sổ bằng 12

Transport Layer 3-101

TCP tiacutenh cocircng bằng (tt)

Tiacutenh cocircng bằng amp UDP nhiều ứng dụng

thường khocircng dugraveng TCP khocircng muốn tốc độ bị

điều tiết do điều khiển tắc nghẽn

Thay bằng dugraveng UDP truyền audiovideo với

tốc độ ổn định chịu được mất maacutet

Nghiecircn cứu giao thức thacircn thiện với TCP

Tiacutenh cocircng bằng amp caacutec kết nối TCP song song

khocircng coacute gigrave ngăn cản việc ứng dụng mở caacutec kết nối song song giữa 2 host

Trigravenh duyệt Web lagravem giống như thế

Viacute dụ tốc độ R hỗ trợ 9 kết nối ứng dụng mới yecircu cầu 1

TCP coacute tốc độ R10 ứng dụng mới yecircu cầu 11

TCP coacute tốc độ R2

Transport Layer 3-102

Mocirc higravenh trễ

Hỏi Mất bao lacircu để nhận 1 đối tượng từ Web server sau khi gửi yecircu cầu

Bỏ qua tắc nghẽn trễ bị ảnh hưởng bởi

thiết lập kết nối TCP trễ truyền dữ liệu khởi động chậm

Notation caacutec giả định Giả sử một kết nối giữa

client vagrave server coacute tốc độ R

S MSS (bits) O kiacutech thước đối tượng

(bits) khocircng truyền lại (khocircng

mất maacutet khocircng hỏng)

Kiacutech thước cửa sổ Giả định 1 cửa sổ tắc

nghẽn cố định coacute W đoạn Sau đoacute cửa sổ thay đổi

mocirc higravenh khởi động chậm

Transport Layer 3-103

Cửa sổ tắc nghẽn cố định (1)

Trường hợp đầu tiecircnWSR gt RTT + SR cho

đoạn đầu tiecircn trong cửa sổ trả về trước khi cửa sổ dữ liệu gửi ACK

trễ = 2RTT + OR

Transport Layer 3-104

Cửa sổ tắc nghẽn cố định (2)

Trường hợp thứ hai WSR lt RTT + SR sent

chờ cho ACK sau khi gửi dữ liệu

trễ = 2RTT + OR+ (K-1)[SR + RTT - WSR]

Transport Layer 3-105

TCP Mocirc higravenh trễ Khởi động chậm (1)

Bacircy giờ giả sử kiacutech thước cửa sổ tăng lecircn tugravey theo quaacute trigravenh khởi động chậm

Độ trễ của một đối tượng sẽ lagrave

R

S

R

SRTTP

R

ORTTLatency P )12(2

trong đoacute P lagrave số lần TCP rảnh ở tại server

1min KQP

- trong đoacute Q lagrave số lần server rảnh nếu đối tượng đatilde khởi tạo kiacutech thước

- vagrave K lagrave số lượng cửa sổ bao trugravem đối tượng

Transport Layer 3-106

TCP Mocirc higravenh trễ Khởi động chậm (2)

RTT

initia te TCPconnection

requestobject

first w indow= S R

second w indow= 2S R

third w indow= 4S R

fourth w indow= 8S R

com pletetransm issionobject

delivered

tim e atc lient

tim e atserver

Viacute dụbull OS = 15 đoạnbull K = 4 cửa sổbull Q = 2bull P = minK-1Q = 2

Server rảnh P=2 lần

Caacutec thagravenh phần trễbull 2 RTT dagravenh cho thiết lập kết nối vagrave yecircu cầubull OR để truyền đối tượngbullthời gian server rảnh bởi vigrave khởi động chậm

Server rảnh P = minK-1Q lần

Transport Layer 3-107

TCP Mocirc higravenh trễ(3)

R

S

R

SRTTPRTT

R

O

R

SRTT

R

SRTT

R

O

idleTimeRTTR

O

P

kP

k

P

pp

)12(][2

]2[2

2delay

1

1

1

th window after the timeidle 2 1 kR

SRTT

R

S k

ementacknowledg receivesserver until

segment send tostartsserver when from time RTTR

S

window kth the transmit totime2 1

R

Sk

RTT

initia te TCPconnection

requestobject

first w indow= S R

second w indow= 2S R

third w indow= 4S R

fourth w indow= 8S R

com pletetransm issionobject

delivered

tim e atc lient

tim e atserver

Transport Layer 3-108

TCP Mocirc higravenh trễ (4)

)1(log

)1(logmin

12min

222min

222min

2

2

110

110

S

OS

Okk

S

Ok

SOk

OSSSkK

k

k

k

caacutech tiacutenh toaacuten Q tương tự (xem HW)

K = số lượng cửa sổ bao trugravem đối tượngLagravem thế nagraveo tiacutenh được K

Transport Layer 3-109

HTTP Mocirc higravenh Giả sử trang Web chứa

1 trang HTML (kiacutech thước O bits) M higravenh ảnh (mỗi caacutei kiacutech thướcO bits)

HTTP khocircng bền vững M+1 TCP kết nối Thời gian đaacutep ứng = (M+1)OR + (M+1)2RTT + tổng số thời

gian rảnh HTTP bền vững

2 RTT để yecircu cầu vagrave nhận file HTML 1 RTT để yecircu cầu vagrave nhận M higravenh ảnh Thời gian đaacutep ứng = (M+1)OR + 3RTT + tổng số thời gian

rảnh HTTP khocircng bền vững với X kết nối song song

Giả sử MX lagrave số nguyecircn 1 TCP kết nối cho file MX thiết lập caacutec kết nối song song cho caacutec higravenh ảnh Thời gian đaacutep ứng = (M+1)OR + (MX + 1)2RTT + tổng số

thời gian rảnh

Transport Layer 3-110

02468

101214161820

28Kbps

100Kbps

1Mbps

10Mbps

non-persistent

persistent

parallel non-persistent

HTTP thời gian đaacutep ứng (giacircy)RTT = 100 msec O = 5 Kbytes M=10 vagrave X=5

Với băng thocircng thấp thời gian kết nối amp đaacutep ứng trội hơn thời gian truyền

Caacutec kết nối bền vững chỉ cho sự cải thiện khocircng đaacuteng kể trecircn caacutec kết nối song song

Transport Layer 3-111

0

10

20

30

40

50

60

70

28Kbps

100Kbps

1Mbps

10Mbps

non-persistent

persistent

parallel non-persistent

HTTP thời gian đaacutep ứng (giacircy)

RTT =1 sec O = 5 Kbytes M=10 and X=5

Với RTT lớn hơn thời gian đaacutep ứng trội hơn thời gian trễ chờ thiết lập kết nốiTCP amp khởi động chậm Caacutec kết nối bền vững bacircy giờ cho thấy cải thiện rotilde rệt đặc biệtvới caacutec mạng băng thocircng cao

Transport Layer 3-112

Chương 3 Tổng kết caacutec nguyecircn lyacute của caacutec

dịch vụ lớp transport multiplexing

demultiplexing truyền dữ liệu tin cậy điều khiển luồng điều khiển tắc nghẽn

khởi tạo vagrave hiện thực trong Internet UDP TCP

Tiếp theo nghiecircn cứu xong

caacutec vấn đề ldquongoagravei biecircnrdquo (caacutec lớp application transport)

chuẩn bị vagraveo phần ldquolotildeirdquo của mạng

  • Slide 1
  • Chương 3 Lớp Transport
  • Chương 3 Nội dung trigravenh bagravey
  • Caacutec dịch vụ vagrave giao thức Transport
  • Lớp Transport với lớp network
  • Caacutec giao thức lớp transport trecircn Internet
  • Slide 7
  • Multiplexingdemultiplexing
  • Demultiplexing lagravem việc như thế nagraveo
  • Demultiplexing khocircng kết nối
  • Demultiplexing khocircng kết nối (tiếp)
  • Demultiplexing hướng kết nối
  • Demultiplexing hướng kết nối (tiếp)
  • Demultiplexing hướng kết nối Threaded Web Server
  • Slide 15
  • UDP User Datagram Protocol [RFC 768]
  • UDP (tt)
  • UDP checksum
  • Viacute dụ Checksum
  • Slide 20
  • Caacutec nguyecircn lyacute truyền dữ liệu tin cậy
  • Slide 22
  • Slide 23
  • Truyền dữ liệu tin cậy
  • Slide 25
  • Rdt10 truyền dữ liệu tin cậy trecircn 1 kecircnh truyền tin cậy
  • Rdt20 kecircnh với caacutec lỗi
  • rdt20 đặc tả FSM
  • rdt20 hoạt động khi khocircng lỗi
  • rdt20 hoạt động khi coacute lỗi
  • rdt20 coacute lỗ hổng nghiecircm trọng
  • rdt21 người gửi quản lyacute caacutec ACKNAK bị hỏng
  • Slide 33
  • rdt21 thảo luận
  • rdt22 một giao thức khocircng cần NAK
  • rdt22 gửi nhận caacutec mảnh
  • rdt30 caacutec kecircnh với lỗi vagrave mất maacutet
  • rdt30 gửi
  • hagravenh động của rdt30
  • Slide 40
  • Hiệu suất của rdt30
  • rdt30 hoạt động dừng-vagrave-chờ
  • Caacutec giao thức Pipelined
  • Pipelining độ khả dụng tăng
  • Go-Back-N
  • GBN becircn gửi mở rộng FSM
  • GBN becircn nhận mở rộng FSM
  • GBN hoạt động
  • Lặp coacute lựa chọn
  • Lặp coacute lựa chọn caacutec cửa sổ gửi nhận
  • Slide 51
  • Hoạt động của lặp coacute lựa chọn
  • Lặp coacute lựa chọn tigravenh trạng khoacute giải quyết
  • Slide 54
  • TCP Tổng quan RFCs 793 1122 1323 2018 2581
  • TCP cấu truacutec đoạn
  • Caacutec số thứ tự TCP vagrave ACK
  • TCP Round Trip Time vagraveTimeout
  • TCP Round Trip Time vagrave Timeout
  • Viacute dụ đaacutenh giaacute RTT
  • Slide 61
  • TCP truyền dữ liệu tin cậy
  • TCP caacutec sự kiện
  • TCP becircn gửi (đơn giản)
  • TCP caacutec tigravenh huống truyền lại
  • TCP caacutec tigravenh huống truyền lại (tt)
  • TCP sinh ra ACK [RFC 1122 RFC 2581]
  • Truyền lại nhanh
  • Giải thuật truyền lại nhanh
  • Slide 70
  • TCP điều khiển luồng
  • TCP điều khiển luồng caacutech lagravem
  • Slide 73
  • TCP quản lyacute kết nối
  • TCP quản lyacute kết nối (tt)
  • Slide 76
  • Slide 77
  • Slide 78
  • Caacutec nguyecircn lyacute điều khiển tắc nghẽn
  • Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 1
  • Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 2
  • Slide 82
  • Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 3
  • Slide 84
  • Caacutec caacutech tiếp cận đối với điều khiển tắc nghẽn
  • Viacute dụ điều khiển tắc nghẽn ATM ABR
  • Slide 87
  • Slide 88
  • TCP điều khiển tắc nghẽn additive tăng lecircn multiplicative giảm xuống
  • TCP điều khiển tắc nghẽn chi tiết
  • TCP khởi động chậm
  • TCP khởi động chậm (tt)
  • Tinh chế
  • Tinh chế nhận biết mất maacutet
  • Tổng kết TCP điều khiển tắc nghẽn
  • TCP điều khiển tắc nghẽn becircn gửi
  • TCP throughput
  • TCP tương lai
  • TCP tiacutenh cocircng bằng
  • Tại sao phải TCP cocircng bằng
  • TCP tiacutenh cocircng bằng (tt)
  • Mocirc higravenh trễ
  • Cửa sổ tắc nghẽn cố định (1)
  • Cửa sổ tắc nghẽn cố định (2)
  • TCP Mocirc higravenh trễ Khởi động chậm (1)
  • TCP Mocirc higravenh trễ Khởi động chậm (2)
  • TCP Mocirc higravenh trễ(3)
  • TCP Mocirc higravenh trễ (4)
  • HTTP Mocirc higravenh
  • Slide 110
  • Slide 111
  • Chương 3 Tổng kết

Transport Layer 3-76

TCP quản lyacute kết nối (tt)

Bước 3 client nhận FIN trả lời với ACK

Trong khoảng ldquothời gian chờrdquo ndash sẽ phản hồi với ACK để nhận caacutec FIN

Bước 4 server nhận ACK Kết nối đatilde đoacuteng

Chuacute yacute với một sửa đổi nhỏ coacute thể quản lyacute nhiều FIN đồng thời

client

FIN

server

ACK

ACK

FIN

đang đoacuteng

đang đoacuteng

đatilde đoacuteng

thời g

ian c

hờ

đatilde đoacuteng

Transport Layer 3-77

TCP quản lyacute kết nối (tt)

chu kỳ sống củaTCP client

chu kỳ sống củaTCP server

Transport Layer 3-78

Chương 3 Nội dung trigravenh bagravey

31 Caacutec dịch vụ lớp Transport

32 Multiplexing vagrave demultiplexing

33 Vận chuyển khocircng kết nối UDP

34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy

35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối

36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn

37 Điều khiển tắc nghẽn TCP

Transport Layer 3-79

Caacutec nguyecircn lyacute điều khiển tắc nghẽn

Tắc nghẽn ldquoquaacute nhiều nguồn gửi quaacute nhanh vagrave quaacute nhiều

dữ liệu đến mạngrdquo khaacutec với điều khiển luồng caacutec biểu hiện

caacutec goacutei bị mất (tragraven bộ đệm tại caacutec router) caacutec độ trễ quaacute dagravei (xếp hagraveng trong bộ đệm

của router) lagrave 1 trong 10 vấn đề nan giải nhất

Transport Layer 3-80

Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 1

2 gửi 2 nhận 1 router caacutec bộ

đệm khocircng giới hạn

khocircng coacute truyền lại

caacutec độ trễ lớn hơn khi tắc nghẽn

năng suất coacute thể đạt tối đa

unlimited shared output link buffers

Host Ain original data

Host B

out

Transport Layer 3-81

Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 2

1 router caacutec bộ đệm coacute giới hạn becircn gửi truyền lại caacutec goacutei đatilde mất

chia sẻ vocirc hạncaacutec bộ đệm ouput

Host A in dữ liệu gốc

Host B

out

in dữ liệu gốc cugraveng với dữ liệu truyền lại

Transport Layer 3-82

Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 2 luocircn luocircn

truyền lại ldquohoagraven toagravenrdquo chỉ khi mất maacutet

truyền lại vigrave trễ (khocircng mất) lagravem cho lớn hơn với cugraveng

in

out

=

in

out

gt

in

out

ldquocaacutec chi phiacuterdquo của tắc nghẽn nhiều việc (truyền lại) caacutec truyền lại khocircng cần thiết liecircn kết nhiều bản sao của

goacutei

R2

R2in

ou

t

b

R2

R2in

ou

t

a

R2

R2in

ou

t

c

R4

R3

Transport Layer 3-83

Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 3 4 người gửi caacutec đường qua nhiều hop timeouttruyền lại

in

Hỏi điều gigrave xảy ra nếu vagrave tăng lecircn

in

chia sẻ vocirc hạncaacutec bộ đệm ouput

Host Ain dữ liệu gốc

Host B

out

in dữ liệu gốc cugraveng với dữ liệu truyền lại

Transport Layer 3-84

Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 3

ldquochi phiacuterdquo khaacutec của tắc nghẽn khi caacutec goacutei bị bỏ bất kỳ ldquokhả năng truyền

upstream dugraveng cho goacutei đoacute sẽ bị latildeng phiacuterdquo

Host A

Host B

o

u

t

Transport Layer 3-85

Caacutec caacutech tiếp cận đối với điều khiển tắc nghẽn

điều khiển tắc nghẽn end-end

khocircng coacute phản hồi rotilde ragraveng từ mạng

tắc nghẽn được suy ra từ việc quan saacutet caacutec hệ thống đầu cuối coacute mất maacutet trễ

tiếp cận được quản lyacute bởi TCP

điều khiển tắc nghẽn coacute sự hỗ trợ của mạng

caacutec router cung cấp phản hồi về caacutec hệ thống đầu cuối 1 bit duy nhất chỉ thị

tắc nghẽn (SNA DECbit TCPIP ECN ATM)

tốc độ sẽ gửi được xaacutec định rotilde ragraveng

2 caacutech

Transport Layer 3-86

Viacute dụ điều khiển tắc nghẽn ATM ABR

ABR tốc độ bit sẵn sagraveng

ldquodịch vụ mềm dẻordquo nếu đường gửi ldquochưa

hếtrdquo becircn gửi sẽ dugraveng

băng thocircng sẵn sagraveng nếu đường gửi tắc

nghẽn becircn gửi điều tiết với

tốc độ tối thiểu

RM (resource management)

gửi bởi becircn gửi rải raacutec với caacutec ocirc dữ liệu

caacutec bit trong ocirc thiết lập bởi caacutec switch bit NI khocircng tăng tốc độ

(tắc nghẽn nhẹ) bit CI tắc nghẽn rotilde rệt

Caacutec ocirc RM được trả về becircn gửi từ becircn nhận với nguyecircn vẹn caacutec bit

Transport Layer 3-87

Viacute dụ điều khiển tắc nghẽn ATM ABR

trường 2-byte ER trong ocirc RM switch đatilde tắc nghẽn coacute thể coacute giaacute trị ER thấp hơn trong ocirc tốc độ gửi do đoacute coacute thể được hỗ trợ tối đa trecircn đường

EFCI bit trong caacutec ocirc dữ liệu được cagravei giaacute trị 1 trong switch đatilde tắc nghẽn nếu ocirc dữ liệu đứng trước ocirc RM coacute cagravei EFCI becircn gửi sẽ cagravei

bit CI trong ocirc RM trả về

Transport Layer 3-88

Chương 3 Nội dung trigravenh bagravey

31 Caacutec dịch vụ lớp Transport

32 Multiplexing vagrave demultiplexing

33 Vận chuyển khocircng kết nối UDP

34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy

35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối

36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn

37 Điều khiển tắc nghẽn TCP

Transport Layer 3-89

TCP điều khiển tắc nghẽn additive tăng lecircn multiplicative giảm xuống

8 Kbytes

16 Kbytes

24 Kbytes

time

congestionwindow

Caacutech tiếp cận tăng tốc độ truyền (kiacutech thước cửa sổ) tigravem khả năng băng thocircng coacute thể cho đến khi coacute mất maacutet xảy ra additive tăng lecircn tăng CongWin bởi 1 MSS

mỗi RTT cho đến khi coacute mất maacutet xảy ra multiplicative giảm xuống bỏ CongWin trong

nửa giai đoạn sau khi mất maacutet

timekiacutech

thư

ớc

cửa

sổ

tắc

nghẽ

n

Tigravem kiếm băng thocircng

Transport Layer 3-90

TCP điều khiển tắc nghẽn chi tiết

becircn gửi hạn chế việc truyền LastByteSent-LastByteAcked

CongWin Cocircng thức

CongWin thay đổi chức năng lagrave nhận biết tắc nghẽn trecircn mạng

Lagravem thế nagraveo becircn gửi nhận biết tắc nghẽn

mất maacutet xảy ra = timeout hoặc 3 ack trugraveng lặp

becircn gửi giảm tốc độ (CongWin) sau khi mất maacutet xảy ra

3 cơ chế AIMD khởi động chậm thận trọng sau khi coacute

caacutec sự kiện timeout

tốc độ = CongWin

RTT Bytess

Transport Layer 3-91

TCP khởi động chậm

Khi kết nối bắt đầu CongWin = 1 MSS Viacute dụ MSS = 500 bytes

amp RTT = 200 ms tốc độ khởi tạo = 20

kbps

băng thocircng sẵn sagraveng coacute thể gtgt MSSRTT mong muốn nhanh

choacuteng tăng tốc lecircn tốc độ coacute thể đaacutep ứng

Khi kết nối bắt đầu tăng tốc lecircn rất nhanh cho đến khi sự cố mất maacutet xảy ra đầu tiecircn

Transport Layer 3-92

TCP khởi động chậm (tt)

Khi kết nối bắt đầu tăng tốc lecircn rất nhanh cho đến khi sự cố mất maacutet xảy ra đầu tiecircn nhacircn đocirci CongWin mỗi

RTT hoagraven thagravenh nhờ tăng CongWin ứng với mỗi ACK đatilde nhận

Tổng kết tốc độ khởi đầu lagrave chậm nhưng sau đoacute tăng tốc rất nhanh

Host A

1 đoạn

RTT

Host B

thời gian

2 đoạn

4 đoạn

Transport Layer 3-93

Tinh chếHỏi Khi nagraveo việc tăng

tốc trở thagravenh tuyến tiacutenh

Trả lời Khi CongWin đạt đến 12 giaacute trị của noacute trước khi timeout

Hiện thực Ngưỡng thay đổi Tại thời điểm coacute sự cố

mất maacutet ngưỡng được cagravei giaacute trị bằng frac12 của CongWin ngay trước đoacute

Transport Layer 3-94

Tinh chế nhận biết mất maacutet

Sau 3 ACK trugraveng lặp CongWin sẽ giảm 12 kiacutech thước cửa sổ

tăng tuyến tiacutenh nhưng sau sự cố

timeout CongWin thay giaacute trị

bằng 1 MSS kiacutech thước cửa sổ

tăng cấp lũy thừa khi đến một ngưỡng

thigrave tăng tuyến tiacutenh

3 ACK trugraveng nhau chỉ ra khả năng truyền của mạng timeout chỉ thị ldquonhiều cảnh baacuteordquo về tigravenh huống tắc nghẽn

Nguyecircn lyacute

Transport Layer 3-95

Tổng kết TCP điều khiển tắc nghẽn

Khi CongWin dưới Threshold becircn gửi đang trong giai đoạn khởi động chậm kiacutech thước cửa sổ tăng nhanh theo cấp lũy thừa

Khi CongWin trecircn Threshold becircn gửi đang trong giai đoạn traacutenh tắc nghẽn kiacutech thước cửa sổ tăng nhanh theo cấp tuyến tiacutenh

Khi coacute 3 ACK trugraveng lặp xảy ra Threshold = CongWin2 vagrave CongWin = Threshold

Khi timeout xảy ra Threshold = CongWin2 vagrave CongWin = 1 MSS

Transport Layer 3-96

TCP điều khiển tắc nghẽn becircn gửi

Trạng thaacutei Sự kiện TCP becircn gửi hagravenh động Diễn giải

Slow Start (SS)-Khởi động chậm

ACK baacuteo nhận cho dữ liệu chưa ACK trước đoacute

CongWin = CongWin + MSS If (CongWin gt Threshold) cagravei đặt trạng thaacutei ldquoTraacutenh tắc nghẽnrdquo

Hậu quả lagravem tăng gấp đocirci CongWin mỗi RTT

CongestionAvoidance (CA) ndashTraacutenh tắc nghẽn

ACK baacuteo nhận cho dữ liệu chưa ACK trước đoacute

CongWin = CongWin+MSS (MSSCongWin)

Additive tăng lecircn lagravem tăng CongWin lecircn 1 MSS mỗi RTT

SS hoặc CA Sự cố mất maacutet xảy ra khi thấy coacute 3 ACK trugraveng lặp

Threshold = CongWin2 CongWin = Thresholdcagravei đặt trạng thaacutei ldquoTraacutenh tắc nghẽnrdquo

Khocirci phục nhanh hiện thực giảm xuống multiplicative CongWin sẽ khocircng giảm xuống dưới 1 MSS

SS hoặc CA Timeout Threshold = CongWin2 CongWin = 1 MSScagravei đặt trạng thaacutei ldquoKhởi động chậmrdquo

Vagraveo chế độ ldquoKhởi động chậmrdquo

SS hoặc CA ACK trugraveng lặp

Đếm ACK tăng lecircn cho đoạn vừa được ACK

CongWin vagrave Threshold khocircng thay đổi

Transport Layer 3-97

TCP throughput

Throughout trung bigravenh của TCP biểu diễn qua kiacutech thước của sổ vagrave RTT Bỏ qua trạng thaacutei ldquoKhởi động chậmrdquo

Cho W lagrave kiacutech thước cửa sổ khi coacute mất maacutet xảy ra

Khi kiacutech thước cửa sổ = W lưu lượng = WRTT

Chỉ ngay sau khi mất maacutet cửa sổ giảm xuống = W2 lưu lượng = W2RTT

throughout trung bigravenh 075 WRTT

Transport Layer 3-98

TCP tương lai

Viacute dụ caacutec đoạn dagravei 1500 byte RTT 100ms lưu lượng 10 Gbps

Kiacutech thước cửa sổ yecircu cầu W = 83333 đoạn trecircn đường truyền

Lưu lượng trong caacutec trường hợp mất maacutet

L = 210-10

Phiecircn bản mới của TCP dagravenh cho nhu cầu tốc độ cao

LRTT

MSS221

Transport Layer 3-99

Mục tiecircu nếu K phiecircn lagravem việc TCP chia sẻ kết nối cổ chai của băng thocircng lagrave R mỗi phiecircn coacute tốc độ trung bigravenh lagrave RK

TCP kết nối 1

router cổ chaikhả năng R

TCP kết nối 2

TCP tiacutenh cocircng bằng

Transport Layer 3-100

Tại sao phải TCP cocircng bằng

2 phiecircn lagravem việc cạnh tranh nhau Additive tăng lưu lượng tăng multiplicative giảm lưu lượng tương xứng

R

R

chia sẻ băng thocircng bằng nhau

Connection 1 throughputConnect

ion 2

th

roughput

traacutenh tắc nghẽn additive tăng lecircnmất maacutet giảm cửa sổ bằng 12

traacutenh tắc nghẽn additive tăng lecircnmất maacutet giảm cửa sổ bằng 12

Transport Layer 3-101

TCP tiacutenh cocircng bằng (tt)

Tiacutenh cocircng bằng amp UDP nhiều ứng dụng

thường khocircng dugraveng TCP khocircng muốn tốc độ bị

điều tiết do điều khiển tắc nghẽn

Thay bằng dugraveng UDP truyền audiovideo với

tốc độ ổn định chịu được mất maacutet

Nghiecircn cứu giao thức thacircn thiện với TCP

Tiacutenh cocircng bằng amp caacutec kết nối TCP song song

khocircng coacute gigrave ngăn cản việc ứng dụng mở caacutec kết nối song song giữa 2 host

Trigravenh duyệt Web lagravem giống như thế

Viacute dụ tốc độ R hỗ trợ 9 kết nối ứng dụng mới yecircu cầu 1

TCP coacute tốc độ R10 ứng dụng mới yecircu cầu 11

TCP coacute tốc độ R2

Transport Layer 3-102

Mocirc higravenh trễ

Hỏi Mất bao lacircu để nhận 1 đối tượng từ Web server sau khi gửi yecircu cầu

Bỏ qua tắc nghẽn trễ bị ảnh hưởng bởi

thiết lập kết nối TCP trễ truyền dữ liệu khởi động chậm

Notation caacutec giả định Giả sử một kết nối giữa

client vagrave server coacute tốc độ R

S MSS (bits) O kiacutech thước đối tượng

(bits) khocircng truyền lại (khocircng

mất maacutet khocircng hỏng)

Kiacutech thước cửa sổ Giả định 1 cửa sổ tắc

nghẽn cố định coacute W đoạn Sau đoacute cửa sổ thay đổi

mocirc higravenh khởi động chậm

Transport Layer 3-103

Cửa sổ tắc nghẽn cố định (1)

Trường hợp đầu tiecircnWSR gt RTT + SR cho

đoạn đầu tiecircn trong cửa sổ trả về trước khi cửa sổ dữ liệu gửi ACK

trễ = 2RTT + OR

Transport Layer 3-104

Cửa sổ tắc nghẽn cố định (2)

Trường hợp thứ hai WSR lt RTT + SR sent

chờ cho ACK sau khi gửi dữ liệu

trễ = 2RTT + OR+ (K-1)[SR + RTT - WSR]

Transport Layer 3-105

TCP Mocirc higravenh trễ Khởi động chậm (1)

Bacircy giờ giả sử kiacutech thước cửa sổ tăng lecircn tugravey theo quaacute trigravenh khởi động chậm

Độ trễ của một đối tượng sẽ lagrave

R

S

R

SRTTP

R

ORTTLatency P )12(2

trong đoacute P lagrave số lần TCP rảnh ở tại server

1min KQP

- trong đoacute Q lagrave số lần server rảnh nếu đối tượng đatilde khởi tạo kiacutech thước

- vagrave K lagrave số lượng cửa sổ bao trugravem đối tượng

Transport Layer 3-106

TCP Mocirc higravenh trễ Khởi động chậm (2)

RTT

initia te TCPconnection

requestobject

first w indow= S R

second w indow= 2S R

third w indow= 4S R

fourth w indow= 8S R

com pletetransm issionobject

delivered

tim e atc lient

tim e atserver

Viacute dụbull OS = 15 đoạnbull K = 4 cửa sổbull Q = 2bull P = minK-1Q = 2

Server rảnh P=2 lần

Caacutec thagravenh phần trễbull 2 RTT dagravenh cho thiết lập kết nối vagrave yecircu cầubull OR để truyền đối tượngbullthời gian server rảnh bởi vigrave khởi động chậm

Server rảnh P = minK-1Q lần

Transport Layer 3-107

TCP Mocirc higravenh trễ(3)

R

S

R

SRTTPRTT

R

O

R

SRTT

R

SRTT

R

O

idleTimeRTTR

O

P

kP

k

P

pp

)12(][2

]2[2

2delay

1

1

1

th window after the timeidle 2 1 kR

SRTT

R

S k

ementacknowledg receivesserver until

segment send tostartsserver when from time RTTR

S

window kth the transmit totime2 1

R

Sk

RTT

initia te TCPconnection

requestobject

first w indow= S R

second w indow= 2S R

third w indow= 4S R

fourth w indow= 8S R

com pletetransm issionobject

delivered

tim e atc lient

tim e atserver

Transport Layer 3-108

TCP Mocirc higravenh trễ (4)

)1(log

)1(logmin

12min

222min

222min

2

2

110

110

S

OS

Okk

S

Ok

SOk

OSSSkK

k

k

k

caacutech tiacutenh toaacuten Q tương tự (xem HW)

K = số lượng cửa sổ bao trugravem đối tượngLagravem thế nagraveo tiacutenh được K

Transport Layer 3-109

HTTP Mocirc higravenh Giả sử trang Web chứa

1 trang HTML (kiacutech thước O bits) M higravenh ảnh (mỗi caacutei kiacutech thướcO bits)

HTTP khocircng bền vững M+1 TCP kết nối Thời gian đaacutep ứng = (M+1)OR + (M+1)2RTT + tổng số thời

gian rảnh HTTP bền vững

2 RTT để yecircu cầu vagrave nhận file HTML 1 RTT để yecircu cầu vagrave nhận M higravenh ảnh Thời gian đaacutep ứng = (M+1)OR + 3RTT + tổng số thời gian

rảnh HTTP khocircng bền vững với X kết nối song song

Giả sử MX lagrave số nguyecircn 1 TCP kết nối cho file MX thiết lập caacutec kết nối song song cho caacutec higravenh ảnh Thời gian đaacutep ứng = (M+1)OR + (MX + 1)2RTT + tổng số

thời gian rảnh

Transport Layer 3-110

02468

101214161820

28Kbps

100Kbps

1Mbps

10Mbps

non-persistent

persistent

parallel non-persistent

HTTP thời gian đaacutep ứng (giacircy)RTT = 100 msec O = 5 Kbytes M=10 vagrave X=5

Với băng thocircng thấp thời gian kết nối amp đaacutep ứng trội hơn thời gian truyền

Caacutec kết nối bền vững chỉ cho sự cải thiện khocircng đaacuteng kể trecircn caacutec kết nối song song

Transport Layer 3-111

0

10

20

30

40

50

60

70

28Kbps

100Kbps

1Mbps

10Mbps

non-persistent

persistent

parallel non-persistent

HTTP thời gian đaacutep ứng (giacircy)

RTT =1 sec O = 5 Kbytes M=10 and X=5

Với RTT lớn hơn thời gian đaacutep ứng trội hơn thời gian trễ chờ thiết lập kết nốiTCP amp khởi động chậm Caacutec kết nối bền vững bacircy giờ cho thấy cải thiện rotilde rệt đặc biệtvới caacutec mạng băng thocircng cao

Transport Layer 3-112

Chương 3 Tổng kết caacutec nguyecircn lyacute của caacutec

dịch vụ lớp transport multiplexing

demultiplexing truyền dữ liệu tin cậy điều khiển luồng điều khiển tắc nghẽn

khởi tạo vagrave hiện thực trong Internet UDP TCP

Tiếp theo nghiecircn cứu xong

caacutec vấn đề ldquongoagravei biecircnrdquo (caacutec lớp application transport)

chuẩn bị vagraveo phần ldquolotildeirdquo của mạng

  • Slide 1
  • Chương 3 Lớp Transport
  • Chương 3 Nội dung trigravenh bagravey
  • Caacutec dịch vụ vagrave giao thức Transport
  • Lớp Transport với lớp network
  • Caacutec giao thức lớp transport trecircn Internet
  • Slide 7
  • Multiplexingdemultiplexing
  • Demultiplexing lagravem việc như thế nagraveo
  • Demultiplexing khocircng kết nối
  • Demultiplexing khocircng kết nối (tiếp)
  • Demultiplexing hướng kết nối
  • Demultiplexing hướng kết nối (tiếp)
  • Demultiplexing hướng kết nối Threaded Web Server
  • Slide 15
  • UDP User Datagram Protocol [RFC 768]
  • UDP (tt)
  • UDP checksum
  • Viacute dụ Checksum
  • Slide 20
  • Caacutec nguyecircn lyacute truyền dữ liệu tin cậy
  • Slide 22
  • Slide 23
  • Truyền dữ liệu tin cậy
  • Slide 25
  • Rdt10 truyền dữ liệu tin cậy trecircn 1 kecircnh truyền tin cậy
  • Rdt20 kecircnh với caacutec lỗi
  • rdt20 đặc tả FSM
  • rdt20 hoạt động khi khocircng lỗi
  • rdt20 hoạt động khi coacute lỗi
  • rdt20 coacute lỗ hổng nghiecircm trọng
  • rdt21 người gửi quản lyacute caacutec ACKNAK bị hỏng
  • Slide 33
  • rdt21 thảo luận
  • rdt22 một giao thức khocircng cần NAK
  • rdt22 gửi nhận caacutec mảnh
  • rdt30 caacutec kecircnh với lỗi vagrave mất maacutet
  • rdt30 gửi
  • hagravenh động của rdt30
  • Slide 40
  • Hiệu suất của rdt30
  • rdt30 hoạt động dừng-vagrave-chờ
  • Caacutec giao thức Pipelined
  • Pipelining độ khả dụng tăng
  • Go-Back-N
  • GBN becircn gửi mở rộng FSM
  • GBN becircn nhận mở rộng FSM
  • GBN hoạt động
  • Lặp coacute lựa chọn
  • Lặp coacute lựa chọn caacutec cửa sổ gửi nhận
  • Slide 51
  • Hoạt động của lặp coacute lựa chọn
  • Lặp coacute lựa chọn tigravenh trạng khoacute giải quyết
  • Slide 54
  • TCP Tổng quan RFCs 793 1122 1323 2018 2581
  • TCP cấu truacutec đoạn
  • Caacutec số thứ tự TCP vagrave ACK
  • TCP Round Trip Time vagraveTimeout
  • TCP Round Trip Time vagrave Timeout
  • Viacute dụ đaacutenh giaacute RTT
  • Slide 61
  • TCP truyền dữ liệu tin cậy
  • TCP caacutec sự kiện
  • TCP becircn gửi (đơn giản)
  • TCP caacutec tigravenh huống truyền lại
  • TCP caacutec tigravenh huống truyền lại (tt)
  • TCP sinh ra ACK [RFC 1122 RFC 2581]
  • Truyền lại nhanh
  • Giải thuật truyền lại nhanh
  • Slide 70
  • TCP điều khiển luồng
  • TCP điều khiển luồng caacutech lagravem
  • Slide 73
  • TCP quản lyacute kết nối
  • TCP quản lyacute kết nối (tt)
  • Slide 76
  • Slide 77
  • Slide 78
  • Caacutec nguyecircn lyacute điều khiển tắc nghẽn
  • Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 1
  • Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 2
  • Slide 82
  • Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 3
  • Slide 84
  • Caacutec caacutech tiếp cận đối với điều khiển tắc nghẽn
  • Viacute dụ điều khiển tắc nghẽn ATM ABR
  • Slide 87
  • Slide 88
  • TCP điều khiển tắc nghẽn additive tăng lecircn multiplicative giảm xuống
  • TCP điều khiển tắc nghẽn chi tiết
  • TCP khởi động chậm
  • TCP khởi động chậm (tt)
  • Tinh chế
  • Tinh chế nhận biết mất maacutet
  • Tổng kết TCP điều khiển tắc nghẽn
  • TCP điều khiển tắc nghẽn becircn gửi
  • TCP throughput
  • TCP tương lai
  • TCP tiacutenh cocircng bằng
  • Tại sao phải TCP cocircng bằng
  • TCP tiacutenh cocircng bằng (tt)
  • Mocirc higravenh trễ
  • Cửa sổ tắc nghẽn cố định (1)
  • Cửa sổ tắc nghẽn cố định (2)
  • TCP Mocirc higravenh trễ Khởi động chậm (1)
  • TCP Mocirc higravenh trễ Khởi động chậm (2)
  • TCP Mocirc higravenh trễ(3)
  • TCP Mocirc higravenh trễ (4)
  • HTTP Mocirc higravenh
  • Slide 110
  • Slide 111
  • Chương 3 Tổng kết

Transport Layer 3-77

TCP quản lyacute kết nối (tt)

chu kỳ sống củaTCP client

chu kỳ sống củaTCP server

Transport Layer 3-78

Chương 3 Nội dung trigravenh bagravey

31 Caacutec dịch vụ lớp Transport

32 Multiplexing vagrave demultiplexing

33 Vận chuyển khocircng kết nối UDP

34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy

35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối

36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn

37 Điều khiển tắc nghẽn TCP

Transport Layer 3-79

Caacutec nguyecircn lyacute điều khiển tắc nghẽn

Tắc nghẽn ldquoquaacute nhiều nguồn gửi quaacute nhanh vagrave quaacute nhiều

dữ liệu đến mạngrdquo khaacutec với điều khiển luồng caacutec biểu hiện

caacutec goacutei bị mất (tragraven bộ đệm tại caacutec router) caacutec độ trễ quaacute dagravei (xếp hagraveng trong bộ đệm

của router) lagrave 1 trong 10 vấn đề nan giải nhất

Transport Layer 3-80

Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 1

2 gửi 2 nhận 1 router caacutec bộ

đệm khocircng giới hạn

khocircng coacute truyền lại

caacutec độ trễ lớn hơn khi tắc nghẽn

năng suất coacute thể đạt tối đa

unlimited shared output link buffers

Host Ain original data

Host B

out

Transport Layer 3-81

Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 2

1 router caacutec bộ đệm coacute giới hạn becircn gửi truyền lại caacutec goacutei đatilde mất

chia sẻ vocirc hạncaacutec bộ đệm ouput

Host A in dữ liệu gốc

Host B

out

in dữ liệu gốc cugraveng với dữ liệu truyền lại

Transport Layer 3-82

Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 2 luocircn luocircn

truyền lại ldquohoagraven toagravenrdquo chỉ khi mất maacutet

truyền lại vigrave trễ (khocircng mất) lagravem cho lớn hơn với cugraveng

in

out

=

in

out

gt

in

out

ldquocaacutec chi phiacuterdquo của tắc nghẽn nhiều việc (truyền lại) caacutec truyền lại khocircng cần thiết liecircn kết nhiều bản sao của

goacutei

R2

R2in

ou

t

b

R2

R2in

ou

t

a

R2

R2in

ou

t

c

R4

R3

Transport Layer 3-83

Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 3 4 người gửi caacutec đường qua nhiều hop timeouttruyền lại

in

Hỏi điều gigrave xảy ra nếu vagrave tăng lecircn

in

chia sẻ vocirc hạncaacutec bộ đệm ouput

Host Ain dữ liệu gốc

Host B

out

in dữ liệu gốc cugraveng với dữ liệu truyền lại

Transport Layer 3-84

Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 3

ldquochi phiacuterdquo khaacutec của tắc nghẽn khi caacutec goacutei bị bỏ bất kỳ ldquokhả năng truyền

upstream dugraveng cho goacutei đoacute sẽ bị latildeng phiacuterdquo

Host A

Host B

o

u

t

Transport Layer 3-85

Caacutec caacutech tiếp cận đối với điều khiển tắc nghẽn

điều khiển tắc nghẽn end-end

khocircng coacute phản hồi rotilde ragraveng từ mạng

tắc nghẽn được suy ra từ việc quan saacutet caacutec hệ thống đầu cuối coacute mất maacutet trễ

tiếp cận được quản lyacute bởi TCP

điều khiển tắc nghẽn coacute sự hỗ trợ của mạng

caacutec router cung cấp phản hồi về caacutec hệ thống đầu cuối 1 bit duy nhất chỉ thị

tắc nghẽn (SNA DECbit TCPIP ECN ATM)

tốc độ sẽ gửi được xaacutec định rotilde ragraveng

2 caacutech

Transport Layer 3-86

Viacute dụ điều khiển tắc nghẽn ATM ABR

ABR tốc độ bit sẵn sagraveng

ldquodịch vụ mềm dẻordquo nếu đường gửi ldquochưa

hếtrdquo becircn gửi sẽ dugraveng

băng thocircng sẵn sagraveng nếu đường gửi tắc

nghẽn becircn gửi điều tiết với

tốc độ tối thiểu

RM (resource management)

gửi bởi becircn gửi rải raacutec với caacutec ocirc dữ liệu

caacutec bit trong ocirc thiết lập bởi caacutec switch bit NI khocircng tăng tốc độ

(tắc nghẽn nhẹ) bit CI tắc nghẽn rotilde rệt

Caacutec ocirc RM được trả về becircn gửi từ becircn nhận với nguyecircn vẹn caacutec bit

Transport Layer 3-87

Viacute dụ điều khiển tắc nghẽn ATM ABR

trường 2-byte ER trong ocirc RM switch đatilde tắc nghẽn coacute thể coacute giaacute trị ER thấp hơn trong ocirc tốc độ gửi do đoacute coacute thể được hỗ trợ tối đa trecircn đường

EFCI bit trong caacutec ocirc dữ liệu được cagravei giaacute trị 1 trong switch đatilde tắc nghẽn nếu ocirc dữ liệu đứng trước ocirc RM coacute cagravei EFCI becircn gửi sẽ cagravei

bit CI trong ocirc RM trả về

Transport Layer 3-88

Chương 3 Nội dung trigravenh bagravey

31 Caacutec dịch vụ lớp Transport

32 Multiplexing vagrave demultiplexing

33 Vận chuyển khocircng kết nối UDP

34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy

35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối

36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn

37 Điều khiển tắc nghẽn TCP

Transport Layer 3-89

TCP điều khiển tắc nghẽn additive tăng lecircn multiplicative giảm xuống

8 Kbytes

16 Kbytes

24 Kbytes

time

congestionwindow

Caacutech tiếp cận tăng tốc độ truyền (kiacutech thước cửa sổ) tigravem khả năng băng thocircng coacute thể cho đến khi coacute mất maacutet xảy ra additive tăng lecircn tăng CongWin bởi 1 MSS

mỗi RTT cho đến khi coacute mất maacutet xảy ra multiplicative giảm xuống bỏ CongWin trong

nửa giai đoạn sau khi mất maacutet

timekiacutech

thư

ớc

cửa

sổ

tắc

nghẽ

n

Tigravem kiếm băng thocircng

Transport Layer 3-90

TCP điều khiển tắc nghẽn chi tiết

becircn gửi hạn chế việc truyền LastByteSent-LastByteAcked

CongWin Cocircng thức

CongWin thay đổi chức năng lagrave nhận biết tắc nghẽn trecircn mạng

Lagravem thế nagraveo becircn gửi nhận biết tắc nghẽn

mất maacutet xảy ra = timeout hoặc 3 ack trugraveng lặp

becircn gửi giảm tốc độ (CongWin) sau khi mất maacutet xảy ra

3 cơ chế AIMD khởi động chậm thận trọng sau khi coacute

caacutec sự kiện timeout

tốc độ = CongWin

RTT Bytess

Transport Layer 3-91

TCP khởi động chậm

Khi kết nối bắt đầu CongWin = 1 MSS Viacute dụ MSS = 500 bytes

amp RTT = 200 ms tốc độ khởi tạo = 20

kbps

băng thocircng sẵn sagraveng coacute thể gtgt MSSRTT mong muốn nhanh

choacuteng tăng tốc lecircn tốc độ coacute thể đaacutep ứng

Khi kết nối bắt đầu tăng tốc lecircn rất nhanh cho đến khi sự cố mất maacutet xảy ra đầu tiecircn

Transport Layer 3-92

TCP khởi động chậm (tt)

Khi kết nối bắt đầu tăng tốc lecircn rất nhanh cho đến khi sự cố mất maacutet xảy ra đầu tiecircn nhacircn đocirci CongWin mỗi

RTT hoagraven thagravenh nhờ tăng CongWin ứng với mỗi ACK đatilde nhận

Tổng kết tốc độ khởi đầu lagrave chậm nhưng sau đoacute tăng tốc rất nhanh

Host A

1 đoạn

RTT

Host B

thời gian

2 đoạn

4 đoạn

Transport Layer 3-93

Tinh chếHỏi Khi nagraveo việc tăng

tốc trở thagravenh tuyến tiacutenh

Trả lời Khi CongWin đạt đến 12 giaacute trị của noacute trước khi timeout

Hiện thực Ngưỡng thay đổi Tại thời điểm coacute sự cố

mất maacutet ngưỡng được cagravei giaacute trị bằng frac12 của CongWin ngay trước đoacute

Transport Layer 3-94

Tinh chế nhận biết mất maacutet

Sau 3 ACK trugraveng lặp CongWin sẽ giảm 12 kiacutech thước cửa sổ

tăng tuyến tiacutenh nhưng sau sự cố

timeout CongWin thay giaacute trị

bằng 1 MSS kiacutech thước cửa sổ

tăng cấp lũy thừa khi đến một ngưỡng

thigrave tăng tuyến tiacutenh

3 ACK trugraveng nhau chỉ ra khả năng truyền của mạng timeout chỉ thị ldquonhiều cảnh baacuteordquo về tigravenh huống tắc nghẽn

Nguyecircn lyacute

Transport Layer 3-95

Tổng kết TCP điều khiển tắc nghẽn

Khi CongWin dưới Threshold becircn gửi đang trong giai đoạn khởi động chậm kiacutech thước cửa sổ tăng nhanh theo cấp lũy thừa

Khi CongWin trecircn Threshold becircn gửi đang trong giai đoạn traacutenh tắc nghẽn kiacutech thước cửa sổ tăng nhanh theo cấp tuyến tiacutenh

Khi coacute 3 ACK trugraveng lặp xảy ra Threshold = CongWin2 vagrave CongWin = Threshold

Khi timeout xảy ra Threshold = CongWin2 vagrave CongWin = 1 MSS

Transport Layer 3-96

TCP điều khiển tắc nghẽn becircn gửi

Trạng thaacutei Sự kiện TCP becircn gửi hagravenh động Diễn giải

Slow Start (SS)-Khởi động chậm

ACK baacuteo nhận cho dữ liệu chưa ACK trước đoacute

CongWin = CongWin + MSS If (CongWin gt Threshold) cagravei đặt trạng thaacutei ldquoTraacutenh tắc nghẽnrdquo

Hậu quả lagravem tăng gấp đocirci CongWin mỗi RTT

CongestionAvoidance (CA) ndashTraacutenh tắc nghẽn

ACK baacuteo nhận cho dữ liệu chưa ACK trước đoacute

CongWin = CongWin+MSS (MSSCongWin)

Additive tăng lecircn lagravem tăng CongWin lecircn 1 MSS mỗi RTT

SS hoặc CA Sự cố mất maacutet xảy ra khi thấy coacute 3 ACK trugraveng lặp

Threshold = CongWin2 CongWin = Thresholdcagravei đặt trạng thaacutei ldquoTraacutenh tắc nghẽnrdquo

Khocirci phục nhanh hiện thực giảm xuống multiplicative CongWin sẽ khocircng giảm xuống dưới 1 MSS

SS hoặc CA Timeout Threshold = CongWin2 CongWin = 1 MSScagravei đặt trạng thaacutei ldquoKhởi động chậmrdquo

Vagraveo chế độ ldquoKhởi động chậmrdquo

SS hoặc CA ACK trugraveng lặp

Đếm ACK tăng lecircn cho đoạn vừa được ACK

CongWin vagrave Threshold khocircng thay đổi

Transport Layer 3-97

TCP throughput

Throughout trung bigravenh của TCP biểu diễn qua kiacutech thước của sổ vagrave RTT Bỏ qua trạng thaacutei ldquoKhởi động chậmrdquo

Cho W lagrave kiacutech thước cửa sổ khi coacute mất maacutet xảy ra

Khi kiacutech thước cửa sổ = W lưu lượng = WRTT

Chỉ ngay sau khi mất maacutet cửa sổ giảm xuống = W2 lưu lượng = W2RTT

throughout trung bigravenh 075 WRTT

Transport Layer 3-98

TCP tương lai

Viacute dụ caacutec đoạn dagravei 1500 byte RTT 100ms lưu lượng 10 Gbps

Kiacutech thước cửa sổ yecircu cầu W = 83333 đoạn trecircn đường truyền

Lưu lượng trong caacutec trường hợp mất maacutet

L = 210-10

Phiecircn bản mới của TCP dagravenh cho nhu cầu tốc độ cao

LRTT

MSS221

Transport Layer 3-99

Mục tiecircu nếu K phiecircn lagravem việc TCP chia sẻ kết nối cổ chai của băng thocircng lagrave R mỗi phiecircn coacute tốc độ trung bigravenh lagrave RK

TCP kết nối 1

router cổ chaikhả năng R

TCP kết nối 2

TCP tiacutenh cocircng bằng

Transport Layer 3-100

Tại sao phải TCP cocircng bằng

2 phiecircn lagravem việc cạnh tranh nhau Additive tăng lưu lượng tăng multiplicative giảm lưu lượng tương xứng

R

R

chia sẻ băng thocircng bằng nhau

Connection 1 throughputConnect

ion 2

th

roughput

traacutenh tắc nghẽn additive tăng lecircnmất maacutet giảm cửa sổ bằng 12

traacutenh tắc nghẽn additive tăng lecircnmất maacutet giảm cửa sổ bằng 12

Transport Layer 3-101

TCP tiacutenh cocircng bằng (tt)

Tiacutenh cocircng bằng amp UDP nhiều ứng dụng

thường khocircng dugraveng TCP khocircng muốn tốc độ bị

điều tiết do điều khiển tắc nghẽn

Thay bằng dugraveng UDP truyền audiovideo với

tốc độ ổn định chịu được mất maacutet

Nghiecircn cứu giao thức thacircn thiện với TCP

Tiacutenh cocircng bằng amp caacutec kết nối TCP song song

khocircng coacute gigrave ngăn cản việc ứng dụng mở caacutec kết nối song song giữa 2 host

Trigravenh duyệt Web lagravem giống như thế

Viacute dụ tốc độ R hỗ trợ 9 kết nối ứng dụng mới yecircu cầu 1

TCP coacute tốc độ R10 ứng dụng mới yecircu cầu 11

TCP coacute tốc độ R2

Transport Layer 3-102

Mocirc higravenh trễ

Hỏi Mất bao lacircu để nhận 1 đối tượng từ Web server sau khi gửi yecircu cầu

Bỏ qua tắc nghẽn trễ bị ảnh hưởng bởi

thiết lập kết nối TCP trễ truyền dữ liệu khởi động chậm

Notation caacutec giả định Giả sử một kết nối giữa

client vagrave server coacute tốc độ R

S MSS (bits) O kiacutech thước đối tượng

(bits) khocircng truyền lại (khocircng

mất maacutet khocircng hỏng)

Kiacutech thước cửa sổ Giả định 1 cửa sổ tắc

nghẽn cố định coacute W đoạn Sau đoacute cửa sổ thay đổi

mocirc higravenh khởi động chậm

Transport Layer 3-103

Cửa sổ tắc nghẽn cố định (1)

Trường hợp đầu tiecircnWSR gt RTT + SR cho

đoạn đầu tiecircn trong cửa sổ trả về trước khi cửa sổ dữ liệu gửi ACK

trễ = 2RTT + OR

Transport Layer 3-104

Cửa sổ tắc nghẽn cố định (2)

Trường hợp thứ hai WSR lt RTT + SR sent

chờ cho ACK sau khi gửi dữ liệu

trễ = 2RTT + OR+ (K-1)[SR + RTT - WSR]

Transport Layer 3-105

TCP Mocirc higravenh trễ Khởi động chậm (1)

Bacircy giờ giả sử kiacutech thước cửa sổ tăng lecircn tugravey theo quaacute trigravenh khởi động chậm

Độ trễ của một đối tượng sẽ lagrave

R

S

R

SRTTP

R

ORTTLatency P )12(2

trong đoacute P lagrave số lần TCP rảnh ở tại server

1min KQP

- trong đoacute Q lagrave số lần server rảnh nếu đối tượng đatilde khởi tạo kiacutech thước

- vagrave K lagrave số lượng cửa sổ bao trugravem đối tượng

Transport Layer 3-106

TCP Mocirc higravenh trễ Khởi động chậm (2)

RTT

initia te TCPconnection

requestobject

first w indow= S R

second w indow= 2S R

third w indow= 4S R

fourth w indow= 8S R

com pletetransm issionobject

delivered

tim e atc lient

tim e atserver

Viacute dụbull OS = 15 đoạnbull K = 4 cửa sổbull Q = 2bull P = minK-1Q = 2

Server rảnh P=2 lần

Caacutec thagravenh phần trễbull 2 RTT dagravenh cho thiết lập kết nối vagrave yecircu cầubull OR để truyền đối tượngbullthời gian server rảnh bởi vigrave khởi động chậm

Server rảnh P = minK-1Q lần

Transport Layer 3-107

TCP Mocirc higravenh trễ(3)

R

S

R

SRTTPRTT

R

O

R

SRTT

R

SRTT

R

O

idleTimeRTTR

O

P

kP

k

P

pp

)12(][2

]2[2

2delay

1

1

1

th window after the timeidle 2 1 kR

SRTT

R

S k

ementacknowledg receivesserver until

segment send tostartsserver when from time RTTR

S

window kth the transmit totime2 1

R

Sk

RTT

initia te TCPconnection

requestobject

first w indow= S R

second w indow= 2S R

third w indow= 4S R

fourth w indow= 8S R

com pletetransm issionobject

delivered

tim e atc lient

tim e atserver

Transport Layer 3-108

TCP Mocirc higravenh trễ (4)

)1(log

)1(logmin

12min

222min

222min

2

2

110

110

S

OS

Okk

S

Ok

SOk

OSSSkK

k

k

k

caacutech tiacutenh toaacuten Q tương tự (xem HW)

K = số lượng cửa sổ bao trugravem đối tượngLagravem thế nagraveo tiacutenh được K

Transport Layer 3-109

HTTP Mocirc higravenh Giả sử trang Web chứa

1 trang HTML (kiacutech thước O bits) M higravenh ảnh (mỗi caacutei kiacutech thướcO bits)

HTTP khocircng bền vững M+1 TCP kết nối Thời gian đaacutep ứng = (M+1)OR + (M+1)2RTT + tổng số thời

gian rảnh HTTP bền vững

2 RTT để yecircu cầu vagrave nhận file HTML 1 RTT để yecircu cầu vagrave nhận M higravenh ảnh Thời gian đaacutep ứng = (M+1)OR + 3RTT + tổng số thời gian

rảnh HTTP khocircng bền vững với X kết nối song song

Giả sử MX lagrave số nguyecircn 1 TCP kết nối cho file MX thiết lập caacutec kết nối song song cho caacutec higravenh ảnh Thời gian đaacutep ứng = (M+1)OR + (MX + 1)2RTT + tổng số

thời gian rảnh

Transport Layer 3-110

02468

101214161820

28Kbps

100Kbps

1Mbps

10Mbps

non-persistent

persistent

parallel non-persistent

HTTP thời gian đaacutep ứng (giacircy)RTT = 100 msec O = 5 Kbytes M=10 vagrave X=5

Với băng thocircng thấp thời gian kết nối amp đaacutep ứng trội hơn thời gian truyền

Caacutec kết nối bền vững chỉ cho sự cải thiện khocircng đaacuteng kể trecircn caacutec kết nối song song

Transport Layer 3-111

0

10

20

30

40

50

60

70

28Kbps

100Kbps

1Mbps

10Mbps

non-persistent

persistent

parallel non-persistent

HTTP thời gian đaacutep ứng (giacircy)

RTT =1 sec O = 5 Kbytes M=10 and X=5

Với RTT lớn hơn thời gian đaacutep ứng trội hơn thời gian trễ chờ thiết lập kết nốiTCP amp khởi động chậm Caacutec kết nối bền vững bacircy giờ cho thấy cải thiện rotilde rệt đặc biệtvới caacutec mạng băng thocircng cao

Transport Layer 3-112

Chương 3 Tổng kết caacutec nguyecircn lyacute của caacutec

dịch vụ lớp transport multiplexing

demultiplexing truyền dữ liệu tin cậy điều khiển luồng điều khiển tắc nghẽn

khởi tạo vagrave hiện thực trong Internet UDP TCP

Tiếp theo nghiecircn cứu xong

caacutec vấn đề ldquongoagravei biecircnrdquo (caacutec lớp application transport)

chuẩn bị vagraveo phần ldquolotildeirdquo của mạng

  • Slide 1
  • Chương 3 Lớp Transport
  • Chương 3 Nội dung trigravenh bagravey
  • Caacutec dịch vụ vagrave giao thức Transport
  • Lớp Transport với lớp network
  • Caacutec giao thức lớp transport trecircn Internet
  • Slide 7
  • Multiplexingdemultiplexing
  • Demultiplexing lagravem việc như thế nagraveo
  • Demultiplexing khocircng kết nối
  • Demultiplexing khocircng kết nối (tiếp)
  • Demultiplexing hướng kết nối
  • Demultiplexing hướng kết nối (tiếp)
  • Demultiplexing hướng kết nối Threaded Web Server
  • Slide 15
  • UDP User Datagram Protocol [RFC 768]
  • UDP (tt)
  • UDP checksum
  • Viacute dụ Checksum
  • Slide 20
  • Caacutec nguyecircn lyacute truyền dữ liệu tin cậy
  • Slide 22
  • Slide 23
  • Truyền dữ liệu tin cậy
  • Slide 25
  • Rdt10 truyền dữ liệu tin cậy trecircn 1 kecircnh truyền tin cậy
  • Rdt20 kecircnh với caacutec lỗi
  • rdt20 đặc tả FSM
  • rdt20 hoạt động khi khocircng lỗi
  • rdt20 hoạt động khi coacute lỗi
  • rdt20 coacute lỗ hổng nghiecircm trọng
  • rdt21 người gửi quản lyacute caacutec ACKNAK bị hỏng
  • Slide 33
  • rdt21 thảo luận
  • rdt22 một giao thức khocircng cần NAK
  • rdt22 gửi nhận caacutec mảnh
  • rdt30 caacutec kecircnh với lỗi vagrave mất maacutet
  • rdt30 gửi
  • hagravenh động của rdt30
  • Slide 40
  • Hiệu suất của rdt30
  • rdt30 hoạt động dừng-vagrave-chờ
  • Caacutec giao thức Pipelined
  • Pipelining độ khả dụng tăng
  • Go-Back-N
  • GBN becircn gửi mở rộng FSM
  • GBN becircn nhận mở rộng FSM
  • GBN hoạt động
  • Lặp coacute lựa chọn
  • Lặp coacute lựa chọn caacutec cửa sổ gửi nhận
  • Slide 51
  • Hoạt động của lặp coacute lựa chọn
  • Lặp coacute lựa chọn tigravenh trạng khoacute giải quyết
  • Slide 54
  • TCP Tổng quan RFCs 793 1122 1323 2018 2581
  • TCP cấu truacutec đoạn
  • Caacutec số thứ tự TCP vagrave ACK
  • TCP Round Trip Time vagraveTimeout
  • TCP Round Trip Time vagrave Timeout
  • Viacute dụ đaacutenh giaacute RTT
  • Slide 61
  • TCP truyền dữ liệu tin cậy
  • TCP caacutec sự kiện
  • TCP becircn gửi (đơn giản)
  • TCP caacutec tigravenh huống truyền lại
  • TCP caacutec tigravenh huống truyền lại (tt)
  • TCP sinh ra ACK [RFC 1122 RFC 2581]
  • Truyền lại nhanh
  • Giải thuật truyền lại nhanh
  • Slide 70
  • TCP điều khiển luồng
  • TCP điều khiển luồng caacutech lagravem
  • Slide 73
  • TCP quản lyacute kết nối
  • TCP quản lyacute kết nối (tt)
  • Slide 76
  • Slide 77
  • Slide 78
  • Caacutec nguyecircn lyacute điều khiển tắc nghẽn
  • Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 1
  • Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 2
  • Slide 82
  • Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 3
  • Slide 84
  • Caacutec caacutech tiếp cận đối với điều khiển tắc nghẽn
  • Viacute dụ điều khiển tắc nghẽn ATM ABR
  • Slide 87
  • Slide 88
  • TCP điều khiển tắc nghẽn additive tăng lecircn multiplicative giảm xuống
  • TCP điều khiển tắc nghẽn chi tiết
  • TCP khởi động chậm
  • TCP khởi động chậm (tt)
  • Tinh chế
  • Tinh chế nhận biết mất maacutet
  • Tổng kết TCP điều khiển tắc nghẽn
  • TCP điều khiển tắc nghẽn becircn gửi
  • TCP throughput
  • TCP tương lai
  • TCP tiacutenh cocircng bằng
  • Tại sao phải TCP cocircng bằng
  • TCP tiacutenh cocircng bằng (tt)
  • Mocirc higravenh trễ
  • Cửa sổ tắc nghẽn cố định (1)
  • Cửa sổ tắc nghẽn cố định (2)
  • TCP Mocirc higravenh trễ Khởi động chậm (1)
  • TCP Mocirc higravenh trễ Khởi động chậm (2)
  • TCP Mocirc higravenh trễ(3)
  • TCP Mocirc higravenh trễ (4)
  • HTTP Mocirc higravenh
  • Slide 110
  • Slide 111
  • Chương 3 Tổng kết

Transport Layer 3-78

Chương 3 Nội dung trigravenh bagravey

31 Caacutec dịch vụ lớp Transport

32 Multiplexing vagrave demultiplexing

33 Vận chuyển khocircng kết nối UDP

34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy

35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối

36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn

37 Điều khiển tắc nghẽn TCP

Transport Layer 3-79

Caacutec nguyecircn lyacute điều khiển tắc nghẽn

Tắc nghẽn ldquoquaacute nhiều nguồn gửi quaacute nhanh vagrave quaacute nhiều

dữ liệu đến mạngrdquo khaacutec với điều khiển luồng caacutec biểu hiện

caacutec goacutei bị mất (tragraven bộ đệm tại caacutec router) caacutec độ trễ quaacute dagravei (xếp hagraveng trong bộ đệm

của router) lagrave 1 trong 10 vấn đề nan giải nhất

Transport Layer 3-80

Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 1

2 gửi 2 nhận 1 router caacutec bộ

đệm khocircng giới hạn

khocircng coacute truyền lại

caacutec độ trễ lớn hơn khi tắc nghẽn

năng suất coacute thể đạt tối đa

unlimited shared output link buffers

Host Ain original data

Host B

out

Transport Layer 3-81

Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 2

1 router caacutec bộ đệm coacute giới hạn becircn gửi truyền lại caacutec goacutei đatilde mất

chia sẻ vocirc hạncaacutec bộ đệm ouput

Host A in dữ liệu gốc

Host B

out

in dữ liệu gốc cugraveng với dữ liệu truyền lại

Transport Layer 3-82

Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 2 luocircn luocircn

truyền lại ldquohoagraven toagravenrdquo chỉ khi mất maacutet

truyền lại vigrave trễ (khocircng mất) lagravem cho lớn hơn với cugraveng

in

out

=

in

out

gt

in

out

ldquocaacutec chi phiacuterdquo của tắc nghẽn nhiều việc (truyền lại) caacutec truyền lại khocircng cần thiết liecircn kết nhiều bản sao của

goacutei

R2

R2in

ou

t

b

R2

R2in

ou

t

a

R2

R2in

ou

t

c

R4

R3

Transport Layer 3-83

Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 3 4 người gửi caacutec đường qua nhiều hop timeouttruyền lại

in

Hỏi điều gigrave xảy ra nếu vagrave tăng lecircn

in

chia sẻ vocirc hạncaacutec bộ đệm ouput

Host Ain dữ liệu gốc

Host B

out

in dữ liệu gốc cugraveng với dữ liệu truyền lại

Transport Layer 3-84

Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 3

ldquochi phiacuterdquo khaacutec của tắc nghẽn khi caacutec goacutei bị bỏ bất kỳ ldquokhả năng truyền

upstream dugraveng cho goacutei đoacute sẽ bị latildeng phiacuterdquo

Host A

Host B

o

u

t

Transport Layer 3-85

Caacutec caacutech tiếp cận đối với điều khiển tắc nghẽn

điều khiển tắc nghẽn end-end

khocircng coacute phản hồi rotilde ragraveng từ mạng

tắc nghẽn được suy ra từ việc quan saacutet caacutec hệ thống đầu cuối coacute mất maacutet trễ

tiếp cận được quản lyacute bởi TCP

điều khiển tắc nghẽn coacute sự hỗ trợ của mạng

caacutec router cung cấp phản hồi về caacutec hệ thống đầu cuối 1 bit duy nhất chỉ thị

tắc nghẽn (SNA DECbit TCPIP ECN ATM)

tốc độ sẽ gửi được xaacutec định rotilde ragraveng

2 caacutech

Transport Layer 3-86

Viacute dụ điều khiển tắc nghẽn ATM ABR

ABR tốc độ bit sẵn sagraveng

ldquodịch vụ mềm dẻordquo nếu đường gửi ldquochưa

hếtrdquo becircn gửi sẽ dugraveng

băng thocircng sẵn sagraveng nếu đường gửi tắc

nghẽn becircn gửi điều tiết với

tốc độ tối thiểu

RM (resource management)

gửi bởi becircn gửi rải raacutec với caacutec ocirc dữ liệu

caacutec bit trong ocirc thiết lập bởi caacutec switch bit NI khocircng tăng tốc độ

(tắc nghẽn nhẹ) bit CI tắc nghẽn rotilde rệt

Caacutec ocirc RM được trả về becircn gửi từ becircn nhận với nguyecircn vẹn caacutec bit

Transport Layer 3-87

Viacute dụ điều khiển tắc nghẽn ATM ABR

trường 2-byte ER trong ocirc RM switch đatilde tắc nghẽn coacute thể coacute giaacute trị ER thấp hơn trong ocirc tốc độ gửi do đoacute coacute thể được hỗ trợ tối đa trecircn đường

EFCI bit trong caacutec ocirc dữ liệu được cagravei giaacute trị 1 trong switch đatilde tắc nghẽn nếu ocirc dữ liệu đứng trước ocirc RM coacute cagravei EFCI becircn gửi sẽ cagravei

bit CI trong ocirc RM trả về

Transport Layer 3-88

Chương 3 Nội dung trigravenh bagravey

31 Caacutec dịch vụ lớp Transport

32 Multiplexing vagrave demultiplexing

33 Vận chuyển khocircng kết nối UDP

34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy

35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối

36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn

37 Điều khiển tắc nghẽn TCP

Transport Layer 3-89

TCP điều khiển tắc nghẽn additive tăng lecircn multiplicative giảm xuống

8 Kbytes

16 Kbytes

24 Kbytes

time

congestionwindow

Caacutech tiếp cận tăng tốc độ truyền (kiacutech thước cửa sổ) tigravem khả năng băng thocircng coacute thể cho đến khi coacute mất maacutet xảy ra additive tăng lecircn tăng CongWin bởi 1 MSS

mỗi RTT cho đến khi coacute mất maacutet xảy ra multiplicative giảm xuống bỏ CongWin trong

nửa giai đoạn sau khi mất maacutet

timekiacutech

thư

ớc

cửa

sổ

tắc

nghẽ

n

Tigravem kiếm băng thocircng

Transport Layer 3-90

TCP điều khiển tắc nghẽn chi tiết

becircn gửi hạn chế việc truyền LastByteSent-LastByteAcked

CongWin Cocircng thức

CongWin thay đổi chức năng lagrave nhận biết tắc nghẽn trecircn mạng

Lagravem thế nagraveo becircn gửi nhận biết tắc nghẽn

mất maacutet xảy ra = timeout hoặc 3 ack trugraveng lặp

becircn gửi giảm tốc độ (CongWin) sau khi mất maacutet xảy ra

3 cơ chế AIMD khởi động chậm thận trọng sau khi coacute

caacutec sự kiện timeout

tốc độ = CongWin

RTT Bytess

Transport Layer 3-91

TCP khởi động chậm

Khi kết nối bắt đầu CongWin = 1 MSS Viacute dụ MSS = 500 bytes

amp RTT = 200 ms tốc độ khởi tạo = 20

kbps

băng thocircng sẵn sagraveng coacute thể gtgt MSSRTT mong muốn nhanh

choacuteng tăng tốc lecircn tốc độ coacute thể đaacutep ứng

Khi kết nối bắt đầu tăng tốc lecircn rất nhanh cho đến khi sự cố mất maacutet xảy ra đầu tiecircn

Transport Layer 3-92

TCP khởi động chậm (tt)

Khi kết nối bắt đầu tăng tốc lecircn rất nhanh cho đến khi sự cố mất maacutet xảy ra đầu tiecircn nhacircn đocirci CongWin mỗi

RTT hoagraven thagravenh nhờ tăng CongWin ứng với mỗi ACK đatilde nhận

Tổng kết tốc độ khởi đầu lagrave chậm nhưng sau đoacute tăng tốc rất nhanh

Host A

1 đoạn

RTT

Host B

thời gian

2 đoạn

4 đoạn

Transport Layer 3-93

Tinh chếHỏi Khi nagraveo việc tăng

tốc trở thagravenh tuyến tiacutenh

Trả lời Khi CongWin đạt đến 12 giaacute trị của noacute trước khi timeout

Hiện thực Ngưỡng thay đổi Tại thời điểm coacute sự cố

mất maacutet ngưỡng được cagravei giaacute trị bằng frac12 của CongWin ngay trước đoacute

Transport Layer 3-94

Tinh chế nhận biết mất maacutet

Sau 3 ACK trugraveng lặp CongWin sẽ giảm 12 kiacutech thước cửa sổ

tăng tuyến tiacutenh nhưng sau sự cố

timeout CongWin thay giaacute trị

bằng 1 MSS kiacutech thước cửa sổ

tăng cấp lũy thừa khi đến một ngưỡng

thigrave tăng tuyến tiacutenh

3 ACK trugraveng nhau chỉ ra khả năng truyền của mạng timeout chỉ thị ldquonhiều cảnh baacuteordquo về tigravenh huống tắc nghẽn

Nguyecircn lyacute

Transport Layer 3-95

Tổng kết TCP điều khiển tắc nghẽn

Khi CongWin dưới Threshold becircn gửi đang trong giai đoạn khởi động chậm kiacutech thước cửa sổ tăng nhanh theo cấp lũy thừa

Khi CongWin trecircn Threshold becircn gửi đang trong giai đoạn traacutenh tắc nghẽn kiacutech thước cửa sổ tăng nhanh theo cấp tuyến tiacutenh

Khi coacute 3 ACK trugraveng lặp xảy ra Threshold = CongWin2 vagrave CongWin = Threshold

Khi timeout xảy ra Threshold = CongWin2 vagrave CongWin = 1 MSS

Transport Layer 3-96

TCP điều khiển tắc nghẽn becircn gửi

Trạng thaacutei Sự kiện TCP becircn gửi hagravenh động Diễn giải

Slow Start (SS)-Khởi động chậm

ACK baacuteo nhận cho dữ liệu chưa ACK trước đoacute

CongWin = CongWin + MSS If (CongWin gt Threshold) cagravei đặt trạng thaacutei ldquoTraacutenh tắc nghẽnrdquo

Hậu quả lagravem tăng gấp đocirci CongWin mỗi RTT

CongestionAvoidance (CA) ndashTraacutenh tắc nghẽn

ACK baacuteo nhận cho dữ liệu chưa ACK trước đoacute

CongWin = CongWin+MSS (MSSCongWin)

Additive tăng lecircn lagravem tăng CongWin lecircn 1 MSS mỗi RTT

SS hoặc CA Sự cố mất maacutet xảy ra khi thấy coacute 3 ACK trugraveng lặp

Threshold = CongWin2 CongWin = Thresholdcagravei đặt trạng thaacutei ldquoTraacutenh tắc nghẽnrdquo

Khocirci phục nhanh hiện thực giảm xuống multiplicative CongWin sẽ khocircng giảm xuống dưới 1 MSS

SS hoặc CA Timeout Threshold = CongWin2 CongWin = 1 MSScagravei đặt trạng thaacutei ldquoKhởi động chậmrdquo

Vagraveo chế độ ldquoKhởi động chậmrdquo

SS hoặc CA ACK trugraveng lặp

Đếm ACK tăng lecircn cho đoạn vừa được ACK

CongWin vagrave Threshold khocircng thay đổi

Transport Layer 3-97

TCP throughput

Throughout trung bigravenh của TCP biểu diễn qua kiacutech thước của sổ vagrave RTT Bỏ qua trạng thaacutei ldquoKhởi động chậmrdquo

Cho W lagrave kiacutech thước cửa sổ khi coacute mất maacutet xảy ra

Khi kiacutech thước cửa sổ = W lưu lượng = WRTT

Chỉ ngay sau khi mất maacutet cửa sổ giảm xuống = W2 lưu lượng = W2RTT

throughout trung bigravenh 075 WRTT

Transport Layer 3-98

TCP tương lai

Viacute dụ caacutec đoạn dagravei 1500 byte RTT 100ms lưu lượng 10 Gbps

Kiacutech thước cửa sổ yecircu cầu W = 83333 đoạn trecircn đường truyền

Lưu lượng trong caacutec trường hợp mất maacutet

L = 210-10

Phiecircn bản mới của TCP dagravenh cho nhu cầu tốc độ cao

LRTT

MSS221

Transport Layer 3-99

Mục tiecircu nếu K phiecircn lagravem việc TCP chia sẻ kết nối cổ chai của băng thocircng lagrave R mỗi phiecircn coacute tốc độ trung bigravenh lagrave RK

TCP kết nối 1

router cổ chaikhả năng R

TCP kết nối 2

TCP tiacutenh cocircng bằng

Transport Layer 3-100

Tại sao phải TCP cocircng bằng

2 phiecircn lagravem việc cạnh tranh nhau Additive tăng lưu lượng tăng multiplicative giảm lưu lượng tương xứng

R

R

chia sẻ băng thocircng bằng nhau

Connection 1 throughputConnect

ion 2

th

roughput

traacutenh tắc nghẽn additive tăng lecircnmất maacutet giảm cửa sổ bằng 12

traacutenh tắc nghẽn additive tăng lecircnmất maacutet giảm cửa sổ bằng 12

Transport Layer 3-101

TCP tiacutenh cocircng bằng (tt)

Tiacutenh cocircng bằng amp UDP nhiều ứng dụng

thường khocircng dugraveng TCP khocircng muốn tốc độ bị

điều tiết do điều khiển tắc nghẽn

Thay bằng dugraveng UDP truyền audiovideo với

tốc độ ổn định chịu được mất maacutet

Nghiecircn cứu giao thức thacircn thiện với TCP

Tiacutenh cocircng bằng amp caacutec kết nối TCP song song

khocircng coacute gigrave ngăn cản việc ứng dụng mở caacutec kết nối song song giữa 2 host

Trigravenh duyệt Web lagravem giống như thế

Viacute dụ tốc độ R hỗ trợ 9 kết nối ứng dụng mới yecircu cầu 1

TCP coacute tốc độ R10 ứng dụng mới yecircu cầu 11

TCP coacute tốc độ R2

Transport Layer 3-102

Mocirc higravenh trễ

Hỏi Mất bao lacircu để nhận 1 đối tượng từ Web server sau khi gửi yecircu cầu

Bỏ qua tắc nghẽn trễ bị ảnh hưởng bởi

thiết lập kết nối TCP trễ truyền dữ liệu khởi động chậm

Notation caacutec giả định Giả sử một kết nối giữa

client vagrave server coacute tốc độ R

S MSS (bits) O kiacutech thước đối tượng

(bits) khocircng truyền lại (khocircng

mất maacutet khocircng hỏng)

Kiacutech thước cửa sổ Giả định 1 cửa sổ tắc

nghẽn cố định coacute W đoạn Sau đoacute cửa sổ thay đổi

mocirc higravenh khởi động chậm

Transport Layer 3-103

Cửa sổ tắc nghẽn cố định (1)

Trường hợp đầu tiecircnWSR gt RTT + SR cho

đoạn đầu tiecircn trong cửa sổ trả về trước khi cửa sổ dữ liệu gửi ACK

trễ = 2RTT + OR

Transport Layer 3-104

Cửa sổ tắc nghẽn cố định (2)

Trường hợp thứ hai WSR lt RTT + SR sent

chờ cho ACK sau khi gửi dữ liệu

trễ = 2RTT + OR+ (K-1)[SR + RTT - WSR]

Transport Layer 3-105

TCP Mocirc higravenh trễ Khởi động chậm (1)

Bacircy giờ giả sử kiacutech thước cửa sổ tăng lecircn tugravey theo quaacute trigravenh khởi động chậm

Độ trễ của một đối tượng sẽ lagrave

R

S

R

SRTTP

R

ORTTLatency P )12(2

trong đoacute P lagrave số lần TCP rảnh ở tại server

1min KQP

- trong đoacute Q lagrave số lần server rảnh nếu đối tượng đatilde khởi tạo kiacutech thước

- vagrave K lagrave số lượng cửa sổ bao trugravem đối tượng

Transport Layer 3-106

TCP Mocirc higravenh trễ Khởi động chậm (2)

RTT

initia te TCPconnection

requestobject

first w indow= S R

second w indow= 2S R

third w indow= 4S R

fourth w indow= 8S R

com pletetransm issionobject

delivered

tim e atc lient

tim e atserver

Viacute dụbull OS = 15 đoạnbull K = 4 cửa sổbull Q = 2bull P = minK-1Q = 2

Server rảnh P=2 lần

Caacutec thagravenh phần trễbull 2 RTT dagravenh cho thiết lập kết nối vagrave yecircu cầubull OR để truyền đối tượngbullthời gian server rảnh bởi vigrave khởi động chậm

Server rảnh P = minK-1Q lần

Transport Layer 3-107

TCP Mocirc higravenh trễ(3)

R

S

R

SRTTPRTT

R

O

R

SRTT

R

SRTT

R

O

idleTimeRTTR

O

P

kP

k

P

pp

)12(][2

]2[2

2delay

1

1

1

th window after the timeidle 2 1 kR

SRTT

R

S k

ementacknowledg receivesserver until

segment send tostartsserver when from time RTTR

S

window kth the transmit totime2 1

R

Sk

RTT

initia te TCPconnection

requestobject

first w indow= S R

second w indow= 2S R

third w indow= 4S R

fourth w indow= 8S R

com pletetransm issionobject

delivered

tim e atc lient

tim e atserver

Transport Layer 3-108

TCP Mocirc higravenh trễ (4)

)1(log

)1(logmin

12min

222min

222min

2

2

110

110

S

OS

Okk

S

Ok

SOk

OSSSkK

k

k

k

caacutech tiacutenh toaacuten Q tương tự (xem HW)

K = số lượng cửa sổ bao trugravem đối tượngLagravem thế nagraveo tiacutenh được K

Transport Layer 3-109

HTTP Mocirc higravenh Giả sử trang Web chứa

1 trang HTML (kiacutech thước O bits) M higravenh ảnh (mỗi caacutei kiacutech thướcO bits)

HTTP khocircng bền vững M+1 TCP kết nối Thời gian đaacutep ứng = (M+1)OR + (M+1)2RTT + tổng số thời

gian rảnh HTTP bền vững

2 RTT để yecircu cầu vagrave nhận file HTML 1 RTT để yecircu cầu vagrave nhận M higravenh ảnh Thời gian đaacutep ứng = (M+1)OR + 3RTT + tổng số thời gian

rảnh HTTP khocircng bền vững với X kết nối song song

Giả sử MX lagrave số nguyecircn 1 TCP kết nối cho file MX thiết lập caacutec kết nối song song cho caacutec higravenh ảnh Thời gian đaacutep ứng = (M+1)OR + (MX + 1)2RTT + tổng số

thời gian rảnh

Transport Layer 3-110

02468

101214161820

28Kbps

100Kbps

1Mbps

10Mbps

non-persistent

persistent

parallel non-persistent

HTTP thời gian đaacutep ứng (giacircy)RTT = 100 msec O = 5 Kbytes M=10 vagrave X=5

Với băng thocircng thấp thời gian kết nối amp đaacutep ứng trội hơn thời gian truyền

Caacutec kết nối bền vững chỉ cho sự cải thiện khocircng đaacuteng kể trecircn caacutec kết nối song song

Transport Layer 3-111

0

10

20

30

40

50

60

70

28Kbps

100Kbps

1Mbps

10Mbps

non-persistent

persistent

parallel non-persistent

HTTP thời gian đaacutep ứng (giacircy)

RTT =1 sec O = 5 Kbytes M=10 and X=5

Với RTT lớn hơn thời gian đaacutep ứng trội hơn thời gian trễ chờ thiết lập kết nốiTCP amp khởi động chậm Caacutec kết nối bền vững bacircy giờ cho thấy cải thiện rotilde rệt đặc biệtvới caacutec mạng băng thocircng cao

Transport Layer 3-112

Chương 3 Tổng kết caacutec nguyecircn lyacute của caacutec

dịch vụ lớp transport multiplexing

demultiplexing truyền dữ liệu tin cậy điều khiển luồng điều khiển tắc nghẽn

khởi tạo vagrave hiện thực trong Internet UDP TCP

Tiếp theo nghiecircn cứu xong

caacutec vấn đề ldquongoagravei biecircnrdquo (caacutec lớp application transport)

chuẩn bị vagraveo phần ldquolotildeirdquo của mạng

  • Slide 1
  • Chương 3 Lớp Transport
  • Chương 3 Nội dung trigravenh bagravey
  • Caacutec dịch vụ vagrave giao thức Transport
  • Lớp Transport với lớp network
  • Caacutec giao thức lớp transport trecircn Internet
  • Slide 7
  • Multiplexingdemultiplexing
  • Demultiplexing lagravem việc như thế nagraveo
  • Demultiplexing khocircng kết nối
  • Demultiplexing khocircng kết nối (tiếp)
  • Demultiplexing hướng kết nối
  • Demultiplexing hướng kết nối (tiếp)
  • Demultiplexing hướng kết nối Threaded Web Server
  • Slide 15
  • UDP User Datagram Protocol [RFC 768]
  • UDP (tt)
  • UDP checksum
  • Viacute dụ Checksum
  • Slide 20
  • Caacutec nguyecircn lyacute truyền dữ liệu tin cậy
  • Slide 22
  • Slide 23
  • Truyền dữ liệu tin cậy
  • Slide 25
  • Rdt10 truyền dữ liệu tin cậy trecircn 1 kecircnh truyền tin cậy
  • Rdt20 kecircnh với caacutec lỗi
  • rdt20 đặc tả FSM
  • rdt20 hoạt động khi khocircng lỗi
  • rdt20 hoạt động khi coacute lỗi
  • rdt20 coacute lỗ hổng nghiecircm trọng
  • rdt21 người gửi quản lyacute caacutec ACKNAK bị hỏng
  • Slide 33
  • rdt21 thảo luận
  • rdt22 một giao thức khocircng cần NAK
  • rdt22 gửi nhận caacutec mảnh
  • rdt30 caacutec kecircnh với lỗi vagrave mất maacutet
  • rdt30 gửi
  • hagravenh động của rdt30
  • Slide 40
  • Hiệu suất của rdt30
  • rdt30 hoạt động dừng-vagrave-chờ
  • Caacutec giao thức Pipelined
  • Pipelining độ khả dụng tăng
  • Go-Back-N
  • GBN becircn gửi mở rộng FSM
  • GBN becircn nhận mở rộng FSM
  • GBN hoạt động
  • Lặp coacute lựa chọn
  • Lặp coacute lựa chọn caacutec cửa sổ gửi nhận
  • Slide 51
  • Hoạt động của lặp coacute lựa chọn
  • Lặp coacute lựa chọn tigravenh trạng khoacute giải quyết
  • Slide 54
  • TCP Tổng quan RFCs 793 1122 1323 2018 2581
  • TCP cấu truacutec đoạn
  • Caacutec số thứ tự TCP vagrave ACK
  • TCP Round Trip Time vagraveTimeout
  • TCP Round Trip Time vagrave Timeout
  • Viacute dụ đaacutenh giaacute RTT
  • Slide 61
  • TCP truyền dữ liệu tin cậy
  • TCP caacutec sự kiện
  • TCP becircn gửi (đơn giản)
  • TCP caacutec tigravenh huống truyền lại
  • TCP caacutec tigravenh huống truyền lại (tt)
  • TCP sinh ra ACK [RFC 1122 RFC 2581]
  • Truyền lại nhanh
  • Giải thuật truyền lại nhanh
  • Slide 70
  • TCP điều khiển luồng
  • TCP điều khiển luồng caacutech lagravem
  • Slide 73
  • TCP quản lyacute kết nối
  • TCP quản lyacute kết nối (tt)
  • Slide 76
  • Slide 77
  • Slide 78
  • Caacutec nguyecircn lyacute điều khiển tắc nghẽn
  • Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 1
  • Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 2
  • Slide 82
  • Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 3
  • Slide 84
  • Caacutec caacutech tiếp cận đối với điều khiển tắc nghẽn
  • Viacute dụ điều khiển tắc nghẽn ATM ABR
  • Slide 87
  • Slide 88
  • TCP điều khiển tắc nghẽn additive tăng lecircn multiplicative giảm xuống
  • TCP điều khiển tắc nghẽn chi tiết
  • TCP khởi động chậm
  • TCP khởi động chậm (tt)
  • Tinh chế
  • Tinh chế nhận biết mất maacutet
  • Tổng kết TCP điều khiển tắc nghẽn
  • TCP điều khiển tắc nghẽn becircn gửi
  • TCP throughput
  • TCP tương lai
  • TCP tiacutenh cocircng bằng
  • Tại sao phải TCP cocircng bằng
  • TCP tiacutenh cocircng bằng (tt)
  • Mocirc higravenh trễ
  • Cửa sổ tắc nghẽn cố định (1)
  • Cửa sổ tắc nghẽn cố định (2)
  • TCP Mocirc higravenh trễ Khởi động chậm (1)
  • TCP Mocirc higravenh trễ Khởi động chậm (2)
  • TCP Mocirc higravenh trễ(3)
  • TCP Mocirc higravenh trễ (4)
  • HTTP Mocirc higravenh
  • Slide 110
  • Slide 111
  • Chương 3 Tổng kết

Transport Layer 3-79

Caacutec nguyecircn lyacute điều khiển tắc nghẽn

Tắc nghẽn ldquoquaacute nhiều nguồn gửi quaacute nhanh vagrave quaacute nhiều

dữ liệu đến mạngrdquo khaacutec với điều khiển luồng caacutec biểu hiện

caacutec goacutei bị mất (tragraven bộ đệm tại caacutec router) caacutec độ trễ quaacute dagravei (xếp hagraveng trong bộ đệm

của router) lagrave 1 trong 10 vấn đề nan giải nhất

Transport Layer 3-80

Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 1

2 gửi 2 nhận 1 router caacutec bộ

đệm khocircng giới hạn

khocircng coacute truyền lại

caacutec độ trễ lớn hơn khi tắc nghẽn

năng suất coacute thể đạt tối đa

unlimited shared output link buffers

Host Ain original data

Host B

out

Transport Layer 3-81

Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 2

1 router caacutec bộ đệm coacute giới hạn becircn gửi truyền lại caacutec goacutei đatilde mất

chia sẻ vocirc hạncaacutec bộ đệm ouput

Host A in dữ liệu gốc

Host B

out

in dữ liệu gốc cugraveng với dữ liệu truyền lại

Transport Layer 3-82

Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 2 luocircn luocircn

truyền lại ldquohoagraven toagravenrdquo chỉ khi mất maacutet

truyền lại vigrave trễ (khocircng mất) lagravem cho lớn hơn với cugraveng

in

out

=

in

out

gt

in

out

ldquocaacutec chi phiacuterdquo của tắc nghẽn nhiều việc (truyền lại) caacutec truyền lại khocircng cần thiết liecircn kết nhiều bản sao của

goacutei

R2

R2in

ou

t

b

R2

R2in

ou

t

a

R2

R2in

ou

t

c

R4

R3

Transport Layer 3-83

Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 3 4 người gửi caacutec đường qua nhiều hop timeouttruyền lại

in

Hỏi điều gigrave xảy ra nếu vagrave tăng lecircn

in

chia sẻ vocirc hạncaacutec bộ đệm ouput

Host Ain dữ liệu gốc

Host B

out

in dữ liệu gốc cugraveng với dữ liệu truyền lại

Transport Layer 3-84

Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 3

ldquochi phiacuterdquo khaacutec của tắc nghẽn khi caacutec goacutei bị bỏ bất kỳ ldquokhả năng truyền

upstream dugraveng cho goacutei đoacute sẽ bị latildeng phiacuterdquo

Host A

Host B

o

u

t

Transport Layer 3-85

Caacutec caacutech tiếp cận đối với điều khiển tắc nghẽn

điều khiển tắc nghẽn end-end

khocircng coacute phản hồi rotilde ragraveng từ mạng

tắc nghẽn được suy ra từ việc quan saacutet caacutec hệ thống đầu cuối coacute mất maacutet trễ

tiếp cận được quản lyacute bởi TCP

điều khiển tắc nghẽn coacute sự hỗ trợ của mạng

caacutec router cung cấp phản hồi về caacutec hệ thống đầu cuối 1 bit duy nhất chỉ thị

tắc nghẽn (SNA DECbit TCPIP ECN ATM)

tốc độ sẽ gửi được xaacutec định rotilde ragraveng

2 caacutech

Transport Layer 3-86

Viacute dụ điều khiển tắc nghẽn ATM ABR

ABR tốc độ bit sẵn sagraveng

ldquodịch vụ mềm dẻordquo nếu đường gửi ldquochưa

hếtrdquo becircn gửi sẽ dugraveng

băng thocircng sẵn sagraveng nếu đường gửi tắc

nghẽn becircn gửi điều tiết với

tốc độ tối thiểu

RM (resource management)

gửi bởi becircn gửi rải raacutec với caacutec ocirc dữ liệu

caacutec bit trong ocirc thiết lập bởi caacutec switch bit NI khocircng tăng tốc độ

(tắc nghẽn nhẹ) bit CI tắc nghẽn rotilde rệt

Caacutec ocirc RM được trả về becircn gửi từ becircn nhận với nguyecircn vẹn caacutec bit

Transport Layer 3-87

Viacute dụ điều khiển tắc nghẽn ATM ABR

trường 2-byte ER trong ocirc RM switch đatilde tắc nghẽn coacute thể coacute giaacute trị ER thấp hơn trong ocirc tốc độ gửi do đoacute coacute thể được hỗ trợ tối đa trecircn đường

EFCI bit trong caacutec ocirc dữ liệu được cagravei giaacute trị 1 trong switch đatilde tắc nghẽn nếu ocirc dữ liệu đứng trước ocirc RM coacute cagravei EFCI becircn gửi sẽ cagravei

bit CI trong ocirc RM trả về

Transport Layer 3-88

Chương 3 Nội dung trigravenh bagravey

31 Caacutec dịch vụ lớp Transport

32 Multiplexing vagrave demultiplexing

33 Vận chuyển khocircng kết nối UDP

34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy

35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối

36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn

37 Điều khiển tắc nghẽn TCP

Transport Layer 3-89

TCP điều khiển tắc nghẽn additive tăng lecircn multiplicative giảm xuống

8 Kbytes

16 Kbytes

24 Kbytes

time

congestionwindow

Caacutech tiếp cận tăng tốc độ truyền (kiacutech thước cửa sổ) tigravem khả năng băng thocircng coacute thể cho đến khi coacute mất maacutet xảy ra additive tăng lecircn tăng CongWin bởi 1 MSS

mỗi RTT cho đến khi coacute mất maacutet xảy ra multiplicative giảm xuống bỏ CongWin trong

nửa giai đoạn sau khi mất maacutet

timekiacutech

thư

ớc

cửa

sổ

tắc

nghẽ

n

Tigravem kiếm băng thocircng

Transport Layer 3-90

TCP điều khiển tắc nghẽn chi tiết

becircn gửi hạn chế việc truyền LastByteSent-LastByteAcked

CongWin Cocircng thức

CongWin thay đổi chức năng lagrave nhận biết tắc nghẽn trecircn mạng

Lagravem thế nagraveo becircn gửi nhận biết tắc nghẽn

mất maacutet xảy ra = timeout hoặc 3 ack trugraveng lặp

becircn gửi giảm tốc độ (CongWin) sau khi mất maacutet xảy ra

3 cơ chế AIMD khởi động chậm thận trọng sau khi coacute

caacutec sự kiện timeout

tốc độ = CongWin

RTT Bytess

Transport Layer 3-91

TCP khởi động chậm

Khi kết nối bắt đầu CongWin = 1 MSS Viacute dụ MSS = 500 bytes

amp RTT = 200 ms tốc độ khởi tạo = 20

kbps

băng thocircng sẵn sagraveng coacute thể gtgt MSSRTT mong muốn nhanh

choacuteng tăng tốc lecircn tốc độ coacute thể đaacutep ứng

Khi kết nối bắt đầu tăng tốc lecircn rất nhanh cho đến khi sự cố mất maacutet xảy ra đầu tiecircn

Transport Layer 3-92

TCP khởi động chậm (tt)

Khi kết nối bắt đầu tăng tốc lecircn rất nhanh cho đến khi sự cố mất maacutet xảy ra đầu tiecircn nhacircn đocirci CongWin mỗi

RTT hoagraven thagravenh nhờ tăng CongWin ứng với mỗi ACK đatilde nhận

Tổng kết tốc độ khởi đầu lagrave chậm nhưng sau đoacute tăng tốc rất nhanh

Host A

1 đoạn

RTT

Host B

thời gian

2 đoạn

4 đoạn

Transport Layer 3-93

Tinh chếHỏi Khi nagraveo việc tăng

tốc trở thagravenh tuyến tiacutenh

Trả lời Khi CongWin đạt đến 12 giaacute trị của noacute trước khi timeout

Hiện thực Ngưỡng thay đổi Tại thời điểm coacute sự cố

mất maacutet ngưỡng được cagravei giaacute trị bằng frac12 của CongWin ngay trước đoacute

Transport Layer 3-94

Tinh chế nhận biết mất maacutet

Sau 3 ACK trugraveng lặp CongWin sẽ giảm 12 kiacutech thước cửa sổ

tăng tuyến tiacutenh nhưng sau sự cố

timeout CongWin thay giaacute trị

bằng 1 MSS kiacutech thước cửa sổ

tăng cấp lũy thừa khi đến một ngưỡng

thigrave tăng tuyến tiacutenh

3 ACK trugraveng nhau chỉ ra khả năng truyền của mạng timeout chỉ thị ldquonhiều cảnh baacuteordquo về tigravenh huống tắc nghẽn

Nguyecircn lyacute

Transport Layer 3-95

Tổng kết TCP điều khiển tắc nghẽn

Khi CongWin dưới Threshold becircn gửi đang trong giai đoạn khởi động chậm kiacutech thước cửa sổ tăng nhanh theo cấp lũy thừa

Khi CongWin trecircn Threshold becircn gửi đang trong giai đoạn traacutenh tắc nghẽn kiacutech thước cửa sổ tăng nhanh theo cấp tuyến tiacutenh

Khi coacute 3 ACK trugraveng lặp xảy ra Threshold = CongWin2 vagrave CongWin = Threshold

Khi timeout xảy ra Threshold = CongWin2 vagrave CongWin = 1 MSS

Transport Layer 3-96

TCP điều khiển tắc nghẽn becircn gửi

Trạng thaacutei Sự kiện TCP becircn gửi hagravenh động Diễn giải

Slow Start (SS)-Khởi động chậm

ACK baacuteo nhận cho dữ liệu chưa ACK trước đoacute

CongWin = CongWin + MSS If (CongWin gt Threshold) cagravei đặt trạng thaacutei ldquoTraacutenh tắc nghẽnrdquo

Hậu quả lagravem tăng gấp đocirci CongWin mỗi RTT

CongestionAvoidance (CA) ndashTraacutenh tắc nghẽn

ACK baacuteo nhận cho dữ liệu chưa ACK trước đoacute

CongWin = CongWin+MSS (MSSCongWin)

Additive tăng lecircn lagravem tăng CongWin lecircn 1 MSS mỗi RTT

SS hoặc CA Sự cố mất maacutet xảy ra khi thấy coacute 3 ACK trugraveng lặp

Threshold = CongWin2 CongWin = Thresholdcagravei đặt trạng thaacutei ldquoTraacutenh tắc nghẽnrdquo

Khocirci phục nhanh hiện thực giảm xuống multiplicative CongWin sẽ khocircng giảm xuống dưới 1 MSS

SS hoặc CA Timeout Threshold = CongWin2 CongWin = 1 MSScagravei đặt trạng thaacutei ldquoKhởi động chậmrdquo

Vagraveo chế độ ldquoKhởi động chậmrdquo

SS hoặc CA ACK trugraveng lặp

Đếm ACK tăng lecircn cho đoạn vừa được ACK

CongWin vagrave Threshold khocircng thay đổi

Transport Layer 3-97

TCP throughput

Throughout trung bigravenh của TCP biểu diễn qua kiacutech thước của sổ vagrave RTT Bỏ qua trạng thaacutei ldquoKhởi động chậmrdquo

Cho W lagrave kiacutech thước cửa sổ khi coacute mất maacutet xảy ra

Khi kiacutech thước cửa sổ = W lưu lượng = WRTT

Chỉ ngay sau khi mất maacutet cửa sổ giảm xuống = W2 lưu lượng = W2RTT

throughout trung bigravenh 075 WRTT

Transport Layer 3-98

TCP tương lai

Viacute dụ caacutec đoạn dagravei 1500 byte RTT 100ms lưu lượng 10 Gbps

Kiacutech thước cửa sổ yecircu cầu W = 83333 đoạn trecircn đường truyền

Lưu lượng trong caacutec trường hợp mất maacutet

L = 210-10

Phiecircn bản mới của TCP dagravenh cho nhu cầu tốc độ cao

LRTT

MSS221

Transport Layer 3-99

Mục tiecircu nếu K phiecircn lagravem việc TCP chia sẻ kết nối cổ chai của băng thocircng lagrave R mỗi phiecircn coacute tốc độ trung bigravenh lagrave RK

TCP kết nối 1

router cổ chaikhả năng R

TCP kết nối 2

TCP tiacutenh cocircng bằng

Transport Layer 3-100

Tại sao phải TCP cocircng bằng

2 phiecircn lagravem việc cạnh tranh nhau Additive tăng lưu lượng tăng multiplicative giảm lưu lượng tương xứng

R

R

chia sẻ băng thocircng bằng nhau

Connection 1 throughputConnect

ion 2

th

roughput

traacutenh tắc nghẽn additive tăng lecircnmất maacutet giảm cửa sổ bằng 12

traacutenh tắc nghẽn additive tăng lecircnmất maacutet giảm cửa sổ bằng 12

Transport Layer 3-101

TCP tiacutenh cocircng bằng (tt)

Tiacutenh cocircng bằng amp UDP nhiều ứng dụng

thường khocircng dugraveng TCP khocircng muốn tốc độ bị

điều tiết do điều khiển tắc nghẽn

Thay bằng dugraveng UDP truyền audiovideo với

tốc độ ổn định chịu được mất maacutet

Nghiecircn cứu giao thức thacircn thiện với TCP

Tiacutenh cocircng bằng amp caacutec kết nối TCP song song

khocircng coacute gigrave ngăn cản việc ứng dụng mở caacutec kết nối song song giữa 2 host

Trigravenh duyệt Web lagravem giống như thế

Viacute dụ tốc độ R hỗ trợ 9 kết nối ứng dụng mới yecircu cầu 1

TCP coacute tốc độ R10 ứng dụng mới yecircu cầu 11

TCP coacute tốc độ R2

Transport Layer 3-102

Mocirc higravenh trễ

Hỏi Mất bao lacircu để nhận 1 đối tượng từ Web server sau khi gửi yecircu cầu

Bỏ qua tắc nghẽn trễ bị ảnh hưởng bởi

thiết lập kết nối TCP trễ truyền dữ liệu khởi động chậm

Notation caacutec giả định Giả sử một kết nối giữa

client vagrave server coacute tốc độ R

S MSS (bits) O kiacutech thước đối tượng

(bits) khocircng truyền lại (khocircng

mất maacutet khocircng hỏng)

Kiacutech thước cửa sổ Giả định 1 cửa sổ tắc

nghẽn cố định coacute W đoạn Sau đoacute cửa sổ thay đổi

mocirc higravenh khởi động chậm

Transport Layer 3-103

Cửa sổ tắc nghẽn cố định (1)

Trường hợp đầu tiecircnWSR gt RTT + SR cho

đoạn đầu tiecircn trong cửa sổ trả về trước khi cửa sổ dữ liệu gửi ACK

trễ = 2RTT + OR

Transport Layer 3-104

Cửa sổ tắc nghẽn cố định (2)

Trường hợp thứ hai WSR lt RTT + SR sent

chờ cho ACK sau khi gửi dữ liệu

trễ = 2RTT + OR+ (K-1)[SR + RTT - WSR]

Transport Layer 3-105

TCP Mocirc higravenh trễ Khởi động chậm (1)

Bacircy giờ giả sử kiacutech thước cửa sổ tăng lecircn tugravey theo quaacute trigravenh khởi động chậm

Độ trễ của một đối tượng sẽ lagrave

R

S

R

SRTTP

R

ORTTLatency P )12(2

trong đoacute P lagrave số lần TCP rảnh ở tại server

1min KQP

- trong đoacute Q lagrave số lần server rảnh nếu đối tượng đatilde khởi tạo kiacutech thước

- vagrave K lagrave số lượng cửa sổ bao trugravem đối tượng

Transport Layer 3-106

TCP Mocirc higravenh trễ Khởi động chậm (2)

RTT

initia te TCPconnection

requestobject

first w indow= S R

second w indow= 2S R

third w indow= 4S R

fourth w indow= 8S R

com pletetransm issionobject

delivered

tim e atc lient

tim e atserver

Viacute dụbull OS = 15 đoạnbull K = 4 cửa sổbull Q = 2bull P = minK-1Q = 2

Server rảnh P=2 lần

Caacutec thagravenh phần trễbull 2 RTT dagravenh cho thiết lập kết nối vagrave yecircu cầubull OR để truyền đối tượngbullthời gian server rảnh bởi vigrave khởi động chậm

Server rảnh P = minK-1Q lần

Transport Layer 3-107

TCP Mocirc higravenh trễ(3)

R

S

R

SRTTPRTT

R

O

R

SRTT

R

SRTT

R

O

idleTimeRTTR

O

P

kP

k

P

pp

)12(][2

]2[2

2delay

1

1

1

th window after the timeidle 2 1 kR

SRTT

R

S k

ementacknowledg receivesserver until

segment send tostartsserver when from time RTTR

S

window kth the transmit totime2 1

R

Sk

RTT

initia te TCPconnection

requestobject

first w indow= S R

second w indow= 2S R

third w indow= 4S R

fourth w indow= 8S R

com pletetransm issionobject

delivered

tim e atc lient

tim e atserver

Transport Layer 3-108

TCP Mocirc higravenh trễ (4)

)1(log

)1(logmin

12min

222min

222min

2

2

110

110

S

OS

Okk

S

Ok

SOk

OSSSkK

k

k

k

caacutech tiacutenh toaacuten Q tương tự (xem HW)

K = số lượng cửa sổ bao trugravem đối tượngLagravem thế nagraveo tiacutenh được K

Transport Layer 3-109

HTTP Mocirc higravenh Giả sử trang Web chứa

1 trang HTML (kiacutech thước O bits) M higravenh ảnh (mỗi caacutei kiacutech thướcO bits)

HTTP khocircng bền vững M+1 TCP kết nối Thời gian đaacutep ứng = (M+1)OR + (M+1)2RTT + tổng số thời

gian rảnh HTTP bền vững

2 RTT để yecircu cầu vagrave nhận file HTML 1 RTT để yecircu cầu vagrave nhận M higravenh ảnh Thời gian đaacutep ứng = (M+1)OR + 3RTT + tổng số thời gian

rảnh HTTP khocircng bền vững với X kết nối song song

Giả sử MX lagrave số nguyecircn 1 TCP kết nối cho file MX thiết lập caacutec kết nối song song cho caacutec higravenh ảnh Thời gian đaacutep ứng = (M+1)OR + (MX + 1)2RTT + tổng số

thời gian rảnh

Transport Layer 3-110

02468

101214161820

28Kbps

100Kbps

1Mbps

10Mbps

non-persistent

persistent

parallel non-persistent

HTTP thời gian đaacutep ứng (giacircy)RTT = 100 msec O = 5 Kbytes M=10 vagrave X=5

Với băng thocircng thấp thời gian kết nối amp đaacutep ứng trội hơn thời gian truyền

Caacutec kết nối bền vững chỉ cho sự cải thiện khocircng đaacuteng kể trecircn caacutec kết nối song song

Transport Layer 3-111

0

10

20

30

40

50

60

70

28Kbps

100Kbps

1Mbps

10Mbps

non-persistent

persistent

parallel non-persistent

HTTP thời gian đaacutep ứng (giacircy)

RTT =1 sec O = 5 Kbytes M=10 and X=5

Với RTT lớn hơn thời gian đaacutep ứng trội hơn thời gian trễ chờ thiết lập kết nốiTCP amp khởi động chậm Caacutec kết nối bền vững bacircy giờ cho thấy cải thiện rotilde rệt đặc biệtvới caacutec mạng băng thocircng cao

Transport Layer 3-112

Chương 3 Tổng kết caacutec nguyecircn lyacute của caacutec

dịch vụ lớp transport multiplexing

demultiplexing truyền dữ liệu tin cậy điều khiển luồng điều khiển tắc nghẽn

khởi tạo vagrave hiện thực trong Internet UDP TCP

Tiếp theo nghiecircn cứu xong

caacutec vấn đề ldquongoagravei biecircnrdquo (caacutec lớp application transport)

chuẩn bị vagraveo phần ldquolotildeirdquo của mạng

  • Slide 1
  • Chương 3 Lớp Transport
  • Chương 3 Nội dung trigravenh bagravey
  • Caacutec dịch vụ vagrave giao thức Transport
  • Lớp Transport với lớp network
  • Caacutec giao thức lớp transport trecircn Internet
  • Slide 7
  • Multiplexingdemultiplexing
  • Demultiplexing lagravem việc như thế nagraveo
  • Demultiplexing khocircng kết nối
  • Demultiplexing khocircng kết nối (tiếp)
  • Demultiplexing hướng kết nối
  • Demultiplexing hướng kết nối (tiếp)
  • Demultiplexing hướng kết nối Threaded Web Server
  • Slide 15
  • UDP User Datagram Protocol [RFC 768]
  • UDP (tt)
  • UDP checksum
  • Viacute dụ Checksum
  • Slide 20
  • Caacutec nguyecircn lyacute truyền dữ liệu tin cậy
  • Slide 22
  • Slide 23
  • Truyền dữ liệu tin cậy
  • Slide 25
  • Rdt10 truyền dữ liệu tin cậy trecircn 1 kecircnh truyền tin cậy
  • Rdt20 kecircnh với caacutec lỗi
  • rdt20 đặc tả FSM
  • rdt20 hoạt động khi khocircng lỗi
  • rdt20 hoạt động khi coacute lỗi
  • rdt20 coacute lỗ hổng nghiecircm trọng
  • rdt21 người gửi quản lyacute caacutec ACKNAK bị hỏng
  • Slide 33
  • rdt21 thảo luận
  • rdt22 một giao thức khocircng cần NAK
  • rdt22 gửi nhận caacutec mảnh
  • rdt30 caacutec kecircnh với lỗi vagrave mất maacutet
  • rdt30 gửi
  • hagravenh động của rdt30
  • Slide 40
  • Hiệu suất của rdt30
  • rdt30 hoạt động dừng-vagrave-chờ
  • Caacutec giao thức Pipelined
  • Pipelining độ khả dụng tăng
  • Go-Back-N
  • GBN becircn gửi mở rộng FSM
  • GBN becircn nhận mở rộng FSM
  • GBN hoạt động
  • Lặp coacute lựa chọn
  • Lặp coacute lựa chọn caacutec cửa sổ gửi nhận
  • Slide 51
  • Hoạt động của lặp coacute lựa chọn
  • Lặp coacute lựa chọn tigravenh trạng khoacute giải quyết
  • Slide 54
  • TCP Tổng quan RFCs 793 1122 1323 2018 2581
  • TCP cấu truacutec đoạn
  • Caacutec số thứ tự TCP vagrave ACK
  • TCP Round Trip Time vagraveTimeout
  • TCP Round Trip Time vagrave Timeout
  • Viacute dụ đaacutenh giaacute RTT
  • Slide 61
  • TCP truyền dữ liệu tin cậy
  • TCP caacutec sự kiện
  • TCP becircn gửi (đơn giản)
  • TCP caacutec tigravenh huống truyền lại
  • TCP caacutec tigravenh huống truyền lại (tt)
  • TCP sinh ra ACK [RFC 1122 RFC 2581]
  • Truyền lại nhanh
  • Giải thuật truyền lại nhanh
  • Slide 70
  • TCP điều khiển luồng
  • TCP điều khiển luồng caacutech lagravem
  • Slide 73
  • TCP quản lyacute kết nối
  • TCP quản lyacute kết nối (tt)
  • Slide 76
  • Slide 77
  • Slide 78
  • Caacutec nguyecircn lyacute điều khiển tắc nghẽn
  • Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 1
  • Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 2
  • Slide 82
  • Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 3
  • Slide 84
  • Caacutec caacutech tiếp cận đối với điều khiển tắc nghẽn
  • Viacute dụ điều khiển tắc nghẽn ATM ABR
  • Slide 87
  • Slide 88
  • TCP điều khiển tắc nghẽn additive tăng lecircn multiplicative giảm xuống
  • TCP điều khiển tắc nghẽn chi tiết
  • TCP khởi động chậm
  • TCP khởi động chậm (tt)
  • Tinh chế
  • Tinh chế nhận biết mất maacutet
  • Tổng kết TCP điều khiển tắc nghẽn
  • TCP điều khiển tắc nghẽn becircn gửi
  • TCP throughput
  • TCP tương lai
  • TCP tiacutenh cocircng bằng
  • Tại sao phải TCP cocircng bằng
  • TCP tiacutenh cocircng bằng (tt)
  • Mocirc higravenh trễ
  • Cửa sổ tắc nghẽn cố định (1)
  • Cửa sổ tắc nghẽn cố định (2)
  • TCP Mocirc higravenh trễ Khởi động chậm (1)
  • TCP Mocirc higravenh trễ Khởi động chậm (2)
  • TCP Mocirc higravenh trễ(3)
  • TCP Mocirc higravenh trễ (4)
  • HTTP Mocirc higravenh
  • Slide 110
  • Slide 111
  • Chương 3 Tổng kết

Transport Layer 3-80

Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 1

2 gửi 2 nhận 1 router caacutec bộ

đệm khocircng giới hạn

khocircng coacute truyền lại

caacutec độ trễ lớn hơn khi tắc nghẽn

năng suất coacute thể đạt tối đa

unlimited shared output link buffers

Host Ain original data

Host B

out

Transport Layer 3-81

Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 2

1 router caacutec bộ đệm coacute giới hạn becircn gửi truyền lại caacutec goacutei đatilde mất

chia sẻ vocirc hạncaacutec bộ đệm ouput

Host A in dữ liệu gốc

Host B

out

in dữ liệu gốc cugraveng với dữ liệu truyền lại

Transport Layer 3-82

Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 2 luocircn luocircn

truyền lại ldquohoagraven toagravenrdquo chỉ khi mất maacutet

truyền lại vigrave trễ (khocircng mất) lagravem cho lớn hơn với cugraveng

in

out

=

in

out

gt

in

out

ldquocaacutec chi phiacuterdquo của tắc nghẽn nhiều việc (truyền lại) caacutec truyền lại khocircng cần thiết liecircn kết nhiều bản sao của

goacutei

R2

R2in

ou

t

b

R2

R2in

ou

t

a

R2

R2in

ou

t

c

R4

R3

Transport Layer 3-83

Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 3 4 người gửi caacutec đường qua nhiều hop timeouttruyền lại

in

Hỏi điều gigrave xảy ra nếu vagrave tăng lecircn

in

chia sẻ vocirc hạncaacutec bộ đệm ouput

Host Ain dữ liệu gốc

Host B

out

in dữ liệu gốc cugraveng với dữ liệu truyền lại

Transport Layer 3-84

Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 3

ldquochi phiacuterdquo khaacutec của tắc nghẽn khi caacutec goacutei bị bỏ bất kỳ ldquokhả năng truyền

upstream dugraveng cho goacutei đoacute sẽ bị latildeng phiacuterdquo

Host A

Host B

o

u

t

Transport Layer 3-85

Caacutec caacutech tiếp cận đối với điều khiển tắc nghẽn

điều khiển tắc nghẽn end-end

khocircng coacute phản hồi rotilde ragraveng từ mạng

tắc nghẽn được suy ra từ việc quan saacutet caacutec hệ thống đầu cuối coacute mất maacutet trễ

tiếp cận được quản lyacute bởi TCP

điều khiển tắc nghẽn coacute sự hỗ trợ của mạng

caacutec router cung cấp phản hồi về caacutec hệ thống đầu cuối 1 bit duy nhất chỉ thị

tắc nghẽn (SNA DECbit TCPIP ECN ATM)

tốc độ sẽ gửi được xaacutec định rotilde ragraveng

2 caacutech

Transport Layer 3-86

Viacute dụ điều khiển tắc nghẽn ATM ABR

ABR tốc độ bit sẵn sagraveng

ldquodịch vụ mềm dẻordquo nếu đường gửi ldquochưa

hếtrdquo becircn gửi sẽ dugraveng

băng thocircng sẵn sagraveng nếu đường gửi tắc

nghẽn becircn gửi điều tiết với

tốc độ tối thiểu

RM (resource management)

gửi bởi becircn gửi rải raacutec với caacutec ocirc dữ liệu

caacutec bit trong ocirc thiết lập bởi caacutec switch bit NI khocircng tăng tốc độ

(tắc nghẽn nhẹ) bit CI tắc nghẽn rotilde rệt

Caacutec ocirc RM được trả về becircn gửi từ becircn nhận với nguyecircn vẹn caacutec bit

Transport Layer 3-87

Viacute dụ điều khiển tắc nghẽn ATM ABR

trường 2-byte ER trong ocirc RM switch đatilde tắc nghẽn coacute thể coacute giaacute trị ER thấp hơn trong ocirc tốc độ gửi do đoacute coacute thể được hỗ trợ tối đa trecircn đường

EFCI bit trong caacutec ocirc dữ liệu được cagravei giaacute trị 1 trong switch đatilde tắc nghẽn nếu ocirc dữ liệu đứng trước ocirc RM coacute cagravei EFCI becircn gửi sẽ cagravei

bit CI trong ocirc RM trả về

Transport Layer 3-88

Chương 3 Nội dung trigravenh bagravey

31 Caacutec dịch vụ lớp Transport

32 Multiplexing vagrave demultiplexing

33 Vận chuyển khocircng kết nối UDP

34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy

35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối

36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn

37 Điều khiển tắc nghẽn TCP

Transport Layer 3-89

TCP điều khiển tắc nghẽn additive tăng lecircn multiplicative giảm xuống

8 Kbytes

16 Kbytes

24 Kbytes

time

congestionwindow

Caacutech tiếp cận tăng tốc độ truyền (kiacutech thước cửa sổ) tigravem khả năng băng thocircng coacute thể cho đến khi coacute mất maacutet xảy ra additive tăng lecircn tăng CongWin bởi 1 MSS

mỗi RTT cho đến khi coacute mất maacutet xảy ra multiplicative giảm xuống bỏ CongWin trong

nửa giai đoạn sau khi mất maacutet

timekiacutech

thư

ớc

cửa

sổ

tắc

nghẽ

n

Tigravem kiếm băng thocircng

Transport Layer 3-90

TCP điều khiển tắc nghẽn chi tiết

becircn gửi hạn chế việc truyền LastByteSent-LastByteAcked

CongWin Cocircng thức

CongWin thay đổi chức năng lagrave nhận biết tắc nghẽn trecircn mạng

Lagravem thế nagraveo becircn gửi nhận biết tắc nghẽn

mất maacutet xảy ra = timeout hoặc 3 ack trugraveng lặp

becircn gửi giảm tốc độ (CongWin) sau khi mất maacutet xảy ra

3 cơ chế AIMD khởi động chậm thận trọng sau khi coacute

caacutec sự kiện timeout

tốc độ = CongWin

RTT Bytess

Transport Layer 3-91

TCP khởi động chậm

Khi kết nối bắt đầu CongWin = 1 MSS Viacute dụ MSS = 500 bytes

amp RTT = 200 ms tốc độ khởi tạo = 20

kbps

băng thocircng sẵn sagraveng coacute thể gtgt MSSRTT mong muốn nhanh

choacuteng tăng tốc lecircn tốc độ coacute thể đaacutep ứng

Khi kết nối bắt đầu tăng tốc lecircn rất nhanh cho đến khi sự cố mất maacutet xảy ra đầu tiecircn

Transport Layer 3-92

TCP khởi động chậm (tt)

Khi kết nối bắt đầu tăng tốc lecircn rất nhanh cho đến khi sự cố mất maacutet xảy ra đầu tiecircn nhacircn đocirci CongWin mỗi

RTT hoagraven thagravenh nhờ tăng CongWin ứng với mỗi ACK đatilde nhận

Tổng kết tốc độ khởi đầu lagrave chậm nhưng sau đoacute tăng tốc rất nhanh

Host A

1 đoạn

RTT

Host B

thời gian

2 đoạn

4 đoạn

Transport Layer 3-93

Tinh chếHỏi Khi nagraveo việc tăng

tốc trở thagravenh tuyến tiacutenh

Trả lời Khi CongWin đạt đến 12 giaacute trị của noacute trước khi timeout

Hiện thực Ngưỡng thay đổi Tại thời điểm coacute sự cố

mất maacutet ngưỡng được cagravei giaacute trị bằng frac12 của CongWin ngay trước đoacute

Transport Layer 3-94

Tinh chế nhận biết mất maacutet

Sau 3 ACK trugraveng lặp CongWin sẽ giảm 12 kiacutech thước cửa sổ

tăng tuyến tiacutenh nhưng sau sự cố

timeout CongWin thay giaacute trị

bằng 1 MSS kiacutech thước cửa sổ

tăng cấp lũy thừa khi đến một ngưỡng

thigrave tăng tuyến tiacutenh

3 ACK trugraveng nhau chỉ ra khả năng truyền của mạng timeout chỉ thị ldquonhiều cảnh baacuteordquo về tigravenh huống tắc nghẽn

Nguyecircn lyacute

Transport Layer 3-95

Tổng kết TCP điều khiển tắc nghẽn

Khi CongWin dưới Threshold becircn gửi đang trong giai đoạn khởi động chậm kiacutech thước cửa sổ tăng nhanh theo cấp lũy thừa

Khi CongWin trecircn Threshold becircn gửi đang trong giai đoạn traacutenh tắc nghẽn kiacutech thước cửa sổ tăng nhanh theo cấp tuyến tiacutenh

Khi coacute 3 ACK trugraveng lặp xảy ra Threshold = CongWin2 vagrave CongWin = Threshold

Khi timeout xảy ra Threshold = CongWin2 vagrave CongWin = 1 MSS

Transport Layer 3-96

TCP điều khiển tắc nghẽn becircn gửi

Trạng thaacutei Sự kiện TCP becircn gửi hagravenh động Diễn giải

Slow Start (SS)-Khởi động chậm

ACK baacuteo nhận cho dữ liệu chưa ACK trước đoacute

CongWin = CongWin + MSS If (CongWin gt Threshold) cagravei đặt trạng thaacutei ldquoTraacutenh tắc nghẽnrdquo

Hậu quả lagravem tăng gấp đocirci CongWin mỗi RTT

CongestionAvoidance (CA) ndashTraacutenh tắc nghẽn

ACK baacuteo nhận cho dữ liệu chưa ACK trước đoacute

CongWin = CongWin+MSS (MSSCongWin)

Additive tăng lecircn lagravem tăng CongWin lecircn 1 MSS mỗi RTT

SS hoặc CA Sự cố mất maacutet xảy ra khi thấy coacute 3 ACK trugraveng lặp

Threshold = CongWin2 CongWin = Thresholdcagravei đặt trạng thaacutei ldquoTraacutenh tắc nghẽnrdquo

Khocirci phục nhanh hiện thực giảm xuống multiplicative CongWin sẽ khocircng giảm xuống dưới 1 MSS

SS hoặc CA Timeout Threshold = CongWin2 CongWin = 1 MSScagravei đặt trạng thaacutei ldquoKhởi động chậmrdquo

Vagraveo chế độ ldquoKhởi động chậmrdquo

SS hoặc CA ACK trugraveng lặp

Đếm ACK tăng lecircn cho đoạn vừa được ACK

CongWin vagrave Threshold khocircng thay đổi

Transport Layer 3-97

TCP throughput

Throughout trung bigravenh của TCP biểu diễn qua kiacutech thước của sổ vagrave RTT Bỏ qua trạng thaacutei ldquoKhởi động chậmrdquo

Cho W lagrave kiacutech thước cửa sổ khi coacute mất maacutet xảy ra

Khi kiacutech thước cửa sổ = W lưu lượng = WRTT

Chỉ ngay sau khi mất maacutet cửa sổ giảm xuống = W2 lưu lượng = W2RTT

throughout trung bigravenh 075 WRTT

Transport Layer 3-98

TCP tương lai

Viacute dụ caacutec đoạn dagravei 1500 byte RTT 100ms lưu lượng 10 Gbps

Kiacutech thước cửa sổ yecircu cầu W = 83333 đoạn trecircn đường truyền

Lưu lượng trong caacutec trường hợp mất maacutet

L = 210-10

Phiecircn bản mới của TCP dagravenh cho nhu cầu tốc độ cao

LRTT

MSS221

Transport Layer 3-99

Mục tiecircu nếu K phiecircn lagravem việc TCP chia sẻ kết nối cổ chai của băng thocircng lagrave R mỗi phiecircn coacute tốc độ trung bigravenh lagrave RK

TCP kết nối 1

router cổ chaikhả năng R

TCP kết nối 2

TCP tiacutenh cocircng bằng

Transport Layer 3-100

Tại sao phải TCP cocircng bằng

2 phiecircn lagravem việc cạnh tranh nhau Additive tăng lưu lượng tăng multiplicative giảm lưu lượng tương xứng

R

R

chia sẻ băng thocircng bằng nhau

Connection 1 throughputConnect

ion 2

th

roughput

traacutenh tắc nghẽn additive tăng lecircnmất maacutet giảm cửa sổ bằng 12

traacutenh tắc nghẽn additive tăng lecircnmất maacutet giảm cửa sổ bằng 12

Transport Layer 3-101

TCP tiacutenh cocircng bằng (tt)

Tiacutenh cocircng bằng amp UDP nhiều ứng dụng

thường khocircng dugraveng TCP khocircng muốn tốc độ bị

điều tiết do điều khiển tắc nghẽn

Thay bằng dugraveng UDP truyền audiovideo với

tốc độ ổn định chịu được mất maacutet

Nghiecircn cứu giao thức thacircn thiện với TCP

Tiacutenh cocircng bằng amp caacutec kết nối TCP song song

khocircng coacute gigrave ngăn cản việc ứng dụng mở caacutec kết nối song song giữa 2 host

Trigravenh duyệt Web lagravem giống như thế

Viacute dụ tốc độ R hỗ trợ 9 kết nối ứng dụng mới yecircu cầu 1

TCP coacute tốc độ R10 ứng dụng mới yecircu cầu 11

TCP coacute tốc độ R2

Transport Layer 3-102

Mocirc higravenh trễ

Hỏi Mất bao lacircu để nhận 1 đối tượng từ Web server sau khi gửi yecircu cầu

Bỏ qua tắc nghẽn trễ bị ảnh hưởng bởi

thiết lập kết nối TCP trễ truyền dữ liệu khởi động chậm

Notation caacutec giả định Giả sử một kết nối giữa

client vagrave server coacute tốc độ R

S MSS (bits) O kiacutech thước đối tượng

(bits) khocircng truyền lại (khocircng

mất maacutet khocircng hỏng)

Kiacutech thước cửa sổ Giả định 1 cửa sổ tắc

nghẽn cố định coacute W đoạn Sau đoacute cửa sổ thay đổi

mocirc higravenh khởi động chậm

Transport Layer 3-103

Cửa sổ tắc nghẽn cố định (1)

Trường hợp đầu tiecircnWSR gt RTT + SR cho

đoạn đầu tiecircn trong cửa sổ trả về trước khi cửa sổ dữ liệu gửi ACK

trễ = 2RTT + OR

Transport Layer 3-104

Cửa sổ tắc nghẽn cố định (2)

Trường hợp thứ hai WSR lt RTT + SR sent

chờ cho ACK sau khi gửi dữ liệu

trễ = 2RTT + OR+ (K-1)[SR + RTT - WSR]

Transport Layer 3-105

TCP Mocirc higravenh trễ Khởi động chậm (1)

Bacircy giờ giả sử kiacutech thước cửa sổ tăng lecircn tugravey theo quaacute trigravenh khởi động chậm

Độ trễ của một đối tượng sẽ lagrave

R

S

R

SRTTP

R

ORTTLatency P )12(2

trong đoacute P lagrave số lần TCP rảnh ở tại server

1min KQP

- trong đoacute Q lagrave số lần server rảnh nếu đối tượng đatilde khởi tạo kiacutech thước

- vagrave K lagrave số lượng cửa sổ bao trugravem đối tượng

Transport Layer 3-106

TCP Mocirc higravenh trễ Khởi động chậm (2)

RTT

initia te TCPconnection

requestobject

first w indow= S R

second w indow= 2S R

third w indow= 4S R

fourth w indow= 8S R

com pletetransm issionobject

delivered

tim e atc lient

tim e atserver

Viacute dụbull OS = 15 đoạnbull K = 4 cửa sổbull Q = 2bull P = minK-1Q = 2

Server rảnh P=2 lần

Caacutec thagravenh phần trễbull 2 RTT dagravenh cho thiết lập kết nối vagrave yecircu cầubull OR để truyền đối tượngbullthời gian server rảnh bởi vigrave khởi động chậm

Server rảnh P = minK-1Q lần

Transport Layer 3-107

TCP Mocirc higravenh trễ(3)

R

S

R

SRTTPRTT

R

O

R

SRTT

R

SRTT

R

O

idleTimeRTTR

O

P

kP

k

P

pp

)12(][2

]2[2

2delay

1

1

1

th window after the timeidle 2 1 kR

SRTT

R

S k

ementacknowledg receivesserver until

segment send tostartsserver when from time RTTR

S

window kth the transmit totime2 1

R

Sk

RTT

initia te TCPconnection

requestobject

first w indow= S R

second w indow= 2S R

third w indow= 4S R

fourth w indow= 8S R

com pletetransm issionobject

delivered

tim e atc lient

tim e atserver

Transport Layer 3-108

TCP Mocirc higravenh trễ (4)

)1(log

)1(logmin

12min

222min

222min

2

2

110

110

S

OS

Okk

S

Ok

SOk

OSSSkK

k

k

k

caacutech tiacutenh toaacuten Q tương tự (xem HW)

K = số lượng cửa sổ bao trugravem đối tượngLagravem thế nagraveo tiacutenh được K

Transport Layer 3-109

HTTP Mocirc higravenh Giả sử trang Web chứa

1 trang HTML (kiacutech thước O bits) M higravenh ảnh (mỗi caacutei kiacutech thướcO bits)

HTTP khocircng bền vững M+1 TCP kết nối Thời gian đaacutep ứng = (M+1)OR + (M+1)2RTT + tổng số thời

gian rảnh HTTP bền vững

2 RTT để yecircu cầu vagrave nhận file HTML 1 RTT để yecircu cầu vagrave nhận M higravenh ảnh Thời gian đaacutep ứng = (M+1)OR + 3RTT + tổng số thời gian

rảnh HTTP khocircng bền vững với X kết nối song song

Giả sử MX lagrave số nguyecircn 1 TCP kết nối cho file MX thiết lập caacutec kết nối song song cho caacutec higravenh ảnh Thời gian đaacutep ứng = (M+1)OR + (MX + 1)2RTT + tổng số

thời gian rảnh

Transport Layer 3-110

02468

101214161820

28Kbps

100Kbps

1Mbps

10Mbps

non-persistent

persistent

parallel non-persistent

HTTP thời gian đaacutep ứng (giacircy)RTT = 100 msec O = 5 Kbytes M=10 vagrave X=5

Với băng thocircng thấp thời gian kết nối amp đaacutep ứng trội hơn thời gian truyền

Caacutec kết nối bền vững chỉ cho sự cải thiện khocircng đaacuteng kể trecircn caacutec kết nối song song

Transport Layer 3-111

0

10

20

30

40

50

60

70

28Kbps

100Kbps

1Mbps

10Mbps

non-persistent

persistent

parallel non-persistent

HTTP thời gian đaacutep ứng (giacircy)

RTT =1 sec O = 5 Kbytes M=10 and X=5

Với RTT lớn hơn thời gian đaacutep ứng trội hơn thời gian trễ chờ thiết lập kết nốiTCP amp khởi động chậm Caacutec kết nối bền vững bacircy giờ cho thấy cải thiện rotilde rệt đặc biệtvới caacutec mạng băng thocircng cao

Transport Layer 3-112

Chương 3 Tổng kết caacutec nguyecircn lyacute của caacutec

dịch vụ lớp transport multiplexing

demultiplexing truyền dữ liệu tin cậy điều khiển luồng điều khiển tắc nghẽn

khởi tạo vagrave hiện thực trong Internet UDP TCP

Tiếp theo nghiecircn cứu xong

caacutec vấn đề ldquongoagravei biecircnrdquo (caacutec lớp application transport)

chuẩn bị vagraveo phần ldquolotildeirdquo của mạng

  • Slide 1
  • Chương 3 Lớp Transport
  • Chương 3 Nội dung trigravenh bagravey
  • Caacutec dịch vụ vagrave giao thức Transport
  • Lớp Transport với lớp network
  • Caacutec giao thức lớp transport trecircn Internet
  • Slide 7
  • Multiplexingdemultiplexing
  • Demultiplexing lagravem việc như thế nagraveo
  • Demultiplexing khocircng kết nối
  • Demultiplexing khocircng kết nối (tiếp)
  • Demultiplexing hướng kết nối
  • Demultiplexing hướng kết nối (tiếp)
  • Demultiplexing hướng kết nối Threaded Web Server
  • Slide 15
  • UDP User Datagram Protocol [RFC 768]
  • UDP (tt)
  • UDP checksum
  • Viacute dụ Checksum
  • Slide 20
  • Caacutec nguyecircn lyacute truyền dữ liệu tin cậy
  • Slide 22
  • Slide 23
  • Truyền dữ liệu tin cậy
  • Slide 25
  • Rdt10 truyền dữ liệu tin cậy trecircn 1 kecircnh truyền tin cậy
  • Rdt20 kecircnh với caacutec lỗi
  • rdt20 đặc tả FSM
  • rdt20 hoạt động khi khocircng lỗi
  • rdt20 hoạt động khi coacute lỗi
  • rdt20 coacute lỗ hổng nghiecircm trọng
  • rdt21 người gửi quản lyacute caacutec ACKNAK bị hỏng
  • Slide 33
  • rdt21 thảo luận
  • rdt22 một giao thức khocircng cần NAK
  • rdt22 gửi nhận caacutec mảnh
  • rdt30 caacutec kecircnh với lỗi vagrave mất maacutet
  • rdt30 gửi
  • hagravenh động của rdt30
  • Slide 40
  • Hiệu suất của rdt30
  • rdt30 hoạt động dừng-vagrave-chờ
  • Caacutec giao thức Pipelined
  • Pipelining độ khả dụng tăng
  • Go-Back-N
  • GBN becircn gửi mở rộng FSM
  • GBN becircn nhận mở rộng FSM
  • GBN hoạt động
  • Lặp coacute lựa chọn
  • Lặp coacute lựa chọn caacutec cửa sổ gửi nhận
  • Slide 51
  • Hoạt động của lặp coacute lựa chọn
  • Lặp coacute lựa chọn tigravenh trạng khoacute giải quyết
  • Slide 54
  • TCP Tổng quan RFCs 793 1122 1323 2018 2581
  • TCP cấu truacutec đoạn
  • Caacutec số thứ tự TCP vagrave ACK
  • TCP Round Trip Time vagraveTimeout
  • TCP Round Trip Time vagrave Timeout
  • Viacute dụ đaacutenh giaacute RTT
  • Slide 61
  • TCP truyền dữ liệu tin cậy
  • TCP caacutec sự kiện
  • TCP becircn gửi (đơn giản)
  • TCP caacutec tigravenh huống truyền lại
  • TCP caacutec tigravenh huống truyền lại (tt)
  • TCP sinh ra ACK [RFC 1122 RFC 2581]
  • Truyền lại nhanh
  • Giải thuật truyền lại nhanh
  • Slide 70
  • TCP điều khiển luồng
  • TCP điều khiển luồng caacutech lagravem
  • Slide 73
  • TCP quản lyacute kết nối
  • TCP quản lyacute kết nối (tt)
  • Slide 76
  • Slide 77
  • Slide 78
  • Caacutec nguyecircn lyacute điều khiển tắc nghẽn
  • Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 1
  • Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 2
  • Slide 82
  • Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 3
  • Slide 84
  • Caacutec caacutech tiếp cận đối với điều khiển tắc nghẽn
  • Viacute dụ điều khiển tắc nghẽn ATM ABR
  • Slide 87
  • Slide 88
  • TCP điều khiển tắc nghẽn additive tăng lecircn multiplicative giảm xuống
  • TCP điều khiển tắc nghẽn chi tiết
  • TCP khởi động chậm
  • TCP khởi động chậm (tt)
  • Tinh chế
  • Tinh chế nhận biết mất maacutet
  • Tổng kết TCP điều khiển tắc nghẽn
  • TCP điều khiển tắc nghẽn becircn gửi
  • TCP throughput
  • TCP tương lai
  • TCP tiacutenh cocircng bằng
  • Tại sao phải TCP cocircng bằng
  • TCP tiacutenh cocircng bằng (tt)
  • Mocirc higravenh trễ
  • Cửa sổ tắc nghẽn cố định (1)
  • Cửa sổ tắc nghẽn cố định (2)
  • TCP Mocirc higravenh trễ Khởi động chậm (1)
  • TCP Mocirc higravenh trễ Khởi động chậm (2)
  • TCP Mocirc higravenh trễ(3)
  • TCP Mocirc higravenh trễ (4)
  • HTTP Mocirc higravenh
  • Slide 110
  • Slide 111
  • Chương 3 Tổng kết

Transport Layer 3-81

Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 2

1 router caacutec bộ đệm coacute giới hạn becircn gửi truyền lại caacutec goacutei đatilde mất

chia sẻ vocirc hạncaacutec bộ đệm ouput

Host A in dữ liệu gốc

Host B

out

in dữ liệu gốc cugraveng với dữ liệu truyền lại

Transport Layer 3-82

Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 2 luocircn luocircn

truyền lại ldquohoagraven toagravenrdquo chỉ khi mất maacutet

truyền lại vigrave trễ (khocircng mất) lagravem cho lớn hơn với cugraveng

in

out

=

in

out

gt

in

out

ldquocaacutec chi phiacuterdquo của tắc nghẽn nhiều việc (truyền lại) caacutec truyền lại khocircng cần thiết liecircn kết nhiều bản sao của

goacutei

R2

R2in

ou

t

b

R2

R2in

ou

t

a

R2

R2in

ou

t

c

R4

R3

Transport Layer 3-83

Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 3 4 người gửi caacutec đường qua nhiều hop timeouttruyền lại

in

Hỏi điều gigrave xảy ra nếu vagrave tăng lecircn

in

chia sẻ vocirc hạncaacutec bộ đệm ouput

Host Ain dữ liệu gốc

Host B

out

in dữ liệu gốc cugraveng với dữ liệu truyền lại

Transport Layer 3-84

Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 3

ldquochi phiacuterdquo khaacutec của tắc nghẽn khi caacutec goacutei bị bỏ bất kỳ ldquokhả năng truyền

upstream dugraveng cho goacutei đoacute sẽ bị latildeng phiacuterdquo

Host A

Host B

o

u

t

Transport Layer 3-85

Caacutec caacutech tiếp cận đối với điều khiển tắc nghẽn

điều khiển tắc nghẽn end-end

khocircng coacute phản hồi rotilde ragraveng từ mạng

tắc nghẽn được suy ra từ việc quan saacutet caacutec hệ thống đầu cuối coacute mất maacutet trễ

tiếp cận được quản lyacute bởi TCP

điều khiển tắc nghẽn coacute sự hỗ trợ của mạng

caacutec router cung cấp phản hồi về caacutec hệ thống đầu cuối 1 bit duy nhất chỉ thị

tắc nghẽn (SNA DECbit TCPIP ECN ATM)

tốc độ sẽ gửi được xaacutec định rotilde ragraveng

2 caacutech

Transport Layer 3-86

Viacute dụ điều khiển tắc nghẽn ATM ABR

ABR tốc độ bit sẵn sagraveng

ldquodịch vụ mềm dẻordquo nếu đường gửi ldquochưa

hếtrdquo becircn gửi sẽ dugraveng

băng thocircng sẵn sagraveng nếu đường gửi tắc

nghẽn becircn gửi điều tiết với

tốc độ tối thiểu

RM (resource management)

gửi bởi becircn gửi rải raacutec với caacutec ocirc dữ liệu

caacutec bit trong ocirc thiết lập bởi caacutec switch bit NI khocircng tăng tốc độ

(tắc nghẽn nhẹ) bit CI tắc nghẽn rotilde rệt

Caacutec ocirc RM được trả về becircn gửi từ becircn nhận với nguyecircn vẹn caacutec bit

Transport Layer 3-87

Viacute dụ điều khiển tắc nghẽn ATM ABR

trường 2-byte ER trong ocirc RM switch đatilde tắc nghẽn coacute thể coacute giaacute trị ER thấp hơn trong ocirc tốc độ gửi do đoacute coacute thể được hỗ trợ tối đa trecircn đường

EFCI bit trong caacutec ocirc dữ liệu được cagravei giaacute trị 1 trong switch đatilde tắc nghẽn nếu ocirc dữ liệu đứng trước ocirc RM coacute cagravei EFCI becircn gửi sẽ cagravei

bit CI trong ocirc RM trả về

Transport Layer 3-88

Chương 3 Nội dung trigravenh bagravey

31 Caacutec dịch vụ lớp Transport

32 Multiplexing vagrave demultiplexing

33 Vận chuyển khocircng kết nối UDP

34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy

35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối

36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn

37 Điều khiển tắc nghẽn TCP

Transport Layer 3-89

TCP điều khiển tắc nghẽn additive tăng lecircn multiplicative giảm xuống

8 Kbytes

16 Kbytes

24 Kbytes

time

congestionwindow

Caacutech tiếp cận tăng tốc độ truyền (kiacutech thước cửa sổ) tigravem khả năng băng thocircng coacute thể cho đến khi coacute mất maacutet xảy ra additive tăng lecircn tăng CongWin bởi 1 MSS

mỗi RTT cho đến khi coacute mất maacutet xảy ra multiplicative giảm xuống bỏ CongWin trong

nửa giai đoạn sau khi mất maacutet

timekiacutech

thư

ớc

cửa

sổ

tắc

nghẽ

n

Tigravem kiếm băng thocircng

Transport Layer 3-90

TCP điều khiển tắc nghẽn chi tiết

becircn gửi hạn chế việc truyền LastByteSent-LastByteAcked

CongWin Cocircng thức

CongWin thay đổi chức năng lagrave nhận biết tắc nghẽn trecircn mạng

Lagravem thế nagraveo becircn gửi nhận biết tắc nghẽn

mất maacutet xảy ra = timeout hoặc 3 ack trugraveng lặp

becircn gửi giảm tốc độ (CongWin) sau khi mất maacutet xảy ra

3 cơ chế AIMD khởi động chậm thận trọng sau khi coacute

caacutec sự kiện timeout

tốc độ = CongWin

RTT Bytess

Transport Layer 3-91

TCP khởi động chậm

Khi kết nối bắt đầu CongWin = 1 MSS Viacute dụ MSS = 500 bytes

amp RTT = 200 ms tốc độ khởi tạo = 20

kbps

băng thocircng sẵn sagraveng coacute thể gtgt MSSRTT mong muốn nhanh

choacuteng tăng tốc lecircn tốc độ coacute thể đaacutep ứng

Khi kết nối bắt đầu tăng tốc lecircn rất nhanh cho đến khi sự cố mất maacutet xảy ra đầu tiecircn

Transport Layer 3-92

TCP khởi động chậm (tt)

Khi kết nối bắt đầu tăng tốc lecircn rất nhanh cho đến khi sự cố mất maacutet xảy ra đầu tiecircn nhacircn đocirci CongWin mỗi

RTT hoagraven thagravenh nhờ tăng CongWin ứng với mỗi ACK đatilde nhận

Tổng kết tốc độ khởi đầu lagrave chậm nhưng sau đoacute tăng tốc rất nhanh

Host A

1 đoạn

RTT

Host B

thời gian

2 đoạn

4 đoạn

Transport Layer 3-93

Tinh chếHỏi Khi nagraveo việc tăng

tốc trở thagravenh tuyến tiacutenh

Trả lời Khi CongWin đạt đến 12 giaacute trị của noacute trước khi timeout

Hiện thực Ngưỡng thay đổi Tại thời điểm coacute sự cố

mất maacutet ngưỡng được cagravei giaacute trị bằng frac12 của CongWin ngay trước đoacute

Transport Layer 3-94

Tinh chế nhận biết mất maacutet

Sau 3 ACK trugraveng lặp CongWin sẽ giảm 12 kiacutech thước cửa sổ

tăng tuyến tiacutenh nhưng sau sự cố

timeout CongWin thay giaacute trị

bằng 1 MSS kiacutech thước cửa sổ

tăng cấp lũy thừa khi đến một ngưỡng

thigrave tăng tuyến tiacutenh

3 ACK trugraveng nhau chỉ ra khả năng truyền của mạng timeout chỉ thị ldquonhiều cảnh baacuteordquo về tigravenh huống tắc nghẽn

Nguyecircn lyacute

Transport Layer 3-95

Tổng kết TCP điều khiển tắc nghẽn

Khi CongWin dưới Threshold becircn gửi đang trong giai đoạn khởi động chậm kiacutech thước cửa sổ tăng nhanh theo cấp lũy thừa

Khi CongWin trecircn Threshold becircn gửi đang trong giai đoạn traacutenh tắc nghẽn kiacutech thước cửa sổ tăng nhanh theo cấp tuyến tiacutenh

Khi coacute 3 ACK trugraveng lặp xảy ra Threshold = CongWin2 vagrave CongWin = Threshold

Khi timeout xảy ra Threshold = CongWin2 vagrave CongWin = 1 MSS

Transport Layer 3-96

TCP điều khiển tắc nghẽn becircn gửi

Trạng thaacutei Sự kiện TCP becircn gửi hagravenh động Diễn giải

Slow Start (SS)-Khởi động chậm

ACK baacuteo nhận cho dữ liệu chưa ACK trước đoacute

CongWin = CongWin + MSS If (CongWin gt Threshold) cagravei đặt trạng thaacutei ldquoTraacutenh tắc nghẽnrdquo

Hậu quả lagravem tăng gấp đocirci CongWin mỗi RTT

CongestionAvoidance (CA) ndashTraacutenh tắc nghẽn

ACK baacuteo nhận cho dữ liệu chưa ACK trước đoacute

CongWin = CongWin+MSS (MSSCongWin)

Additive tăng lecircn lagravem tăng CongWin lecircn 1 MSS mỗi RTT

SS hoặc CA Sự cố mất maacutet xảy ra khi thấy coacute 3 ACK trugraveng lặp

Threshold = CongWin2 CongWin = Thresholdcagravei đặt trạng thaacutei ldquoTraacutenh tắc nghẽnrdquo

Khocirci phục nhanh hiện thực giảm xuống multiplicative CongWin sẽ khocircng giảm xuống dưới 1 MSS

SS hoặc CA Timeout Threshold = CongWin2 CongWin = 1 MSScagravei đặt trạng thaacutei ldquoKhởi động chậmrdquo

Vagraveo chế độ ldquoKhởi động chậmrdquo

SS hoặc CA ACK trugraveng lặp

Đếm ACK tăng lecircn cho đoạn vừa được ACK

CongWin vagrave Threshold khocircng thay đổi

Transport Layer 3-97

TCP throughput

Throughout trung bigravenh của TCP biểu diễn qua kiacutech thước của sổ vagrave RTT Bỏ qua trạng thaacutei ldquoKhởi động chậmrdquo

Cho W lagrave kiacutech thước cửa sổ khi coacute mất maacutet xảy ra

Khi kiacutech thước cửa sổ = W lưu lượng = WRTT

Chỉ ngay sau khi mất maacutet cửa sổ giảm xuống = W2 lưu lượng = W2RTT

throughout trung bigravenh 075 WRTT

Transport Layer 3-98

TCP tương lai

Viacute dụ caacutec đoạn dagravei 1500 byte RTT 100ms lưu lượng 10 Gbps

Kiacutech thước cửa sổ yecircu cầu W = 83333 đoạn trecircn đường truyền

Lưu lượng trong caacutec trường hợp mất maacutet

L = 210-10

Phiecircn bản mới của TCP dagravenh cho nhu cầu tốc độ cao

LRTT

MSS221

Transport Layer 3-99

Mục tiecircu nếu K phiecircn lagravem việc TCP chia sẻ kết nối cổ chai của băng thocircng lagrave R mỗi phiecircn coacute tốc độ trung bigravenh lagrave RK

TCP kết nối 1

router cổ chaikhả năng R

TCP kết nối 2

TCP tiacutenh cocircng bằng

Transport Layer 3-100

Tại sao phải TCP cocircng bằng

2 phiecircn lagravem việc cạnh tranh nhau Additive tăng lưu lượng tăng multiplicative giảm lưu lượng tương xứng

R

R

chia sẻ băng thocircng bằng nhau

Connection 1 throughputConnect

ion 2

th

roughput

traacutenh tắc nghẽn additive tăng lecircnmất maacutet giảm cửa sổ bằng 12

traacutenh tắc nghẽn additive tăng lecircnmất maacutet giảm cửa sổ bằng 12

Transport Layer 3-101

TCP tiacutenh cocircng bằng (tt)

Tiacutenh cocircng bằng amp UDP nhiều ứng dụng

thường khocircng dugraveng TCP khocircng muốn tốc độ bị

điều tiết do điều khiển tắc nghẽn

Thay bằng dugraveng UDP truyền audiovideo với

tốc độ ổn định chịu được mất maacutet

Nghiecircn cứu giao thức thacircn thiện với TCP

Tiacutenh cocircng bằng amp caacutec kết nối TCP song song

khocircng coacute gigrave ngăn cản việc ứng dụng mở caacutec kết nối song song giữa 2 host

Trigravenh duyệt Web lagravem giống như thế

Viacute dụ tốc độ R hỗ trợ 9 kết nối ứng dụng mới yecircu cầu 1

TCP coacute tốc độ R10 ứng dụng mới yecircu cầu 11

TCP coacute tốc độ R2

Transport Layer 3-102

Mocirc higravenh trễ

Hỏi Mất bao lacircu để nhận 1 đối tượng từ Web server sau khi gửi yecircu cầu

Bỏ qua tắc nghẽn trễ bị ảnh hưởng bởi

thiết lập kết nối TCP trễ truyền dữ liệu khởi động chậm

Notation caacutec giả định Giả sử một kết nối giữa

client vagrave server coacute tốc độ R

S MSS (bits) O kiacutech thước đối tượng

(bits) khocircng truyền lại (khocircng

mất maacutet khocircng hỏng)

Kiacutech thước cửa sổ Giả định 1 cửa sổ tắc

nghẽn cố định coacute W đoạn Sau đoacute cửa sổ thay đổi

mocirc higravenh khởi động chậm

Transport Layer 3-103

Cửa sổ tắc nghẽn cố định (1)

Trường hợp đầu tiecircnWSR gt RTT + SR cho

đoạn đầu tiecircn trong cửa sổ trả về trước khi cửa sổ dữ liệu gửi ACK

trễ = 2RTT + OR

Transport Layer 3-104

Cửa sổ tắc nghẽn cố định (2)

Trường hợp thứ hai WSR lt RTT + SR sent

chờ cho ACK sau khi gửi dữ liệu

trễ = 2RTT + OR+ (K-1)[SR + RTT - WSR]

Transport Layer 3-105

TCP Mocirc higravenh trễ Khởi động chậm (1)

Bacircy giờ giả sử kiacutech thước cửa sổ tăng lecircn tugravey theo quaacute trigravenh khởi động chậm

Độ trễ của một đối tượng sẽ lagrave

R

S

R

SRTTP

R

ORTTLatency P )12(2

trong đoacute P lagrave số lần TCP rảnh ở tại server

1min KQP

- trong đoacute Q lagrave số lần server rảnh nếu đối tượng đatilde khởi tạo kiacutech thước

- vagrave K lagrave số lượng cửa sổ bao trugravem đối tượng

Transport Layer 3-106

TCP Mocirc higravenh trễ Khởi động chậm (2)

RTT

initia te TCPconnection

requestobject

first w indow= S R

second w indow= 2S R

third w indow= 4S R

fourth w indow= 8S R

com pletetransm issionobject

delivered

tim e atc lient

tim e atserver

Viacute dụbull OS = 15 đoạnbull K = 4 cửa sổbull Q = 2bull P = minK-1Q = 2

Server rảnh P=2 lần

Caacutec thagravenh phần trễbull 2 RTT dagravenh cho thiết lập kết nối vagrave yecircu cầubull OR để truyền đối tượngbullthời gian server rảnh bởi vigrave khởi động chậm

Server rảnh P = minK-1Q lần

Transport Layer 3-107

TCP Mocirc higravenh trễ(3)

R

S

R

SRTTPRTT

R

O

R

SRTT

R

SRTT

R

O

idleTimeRTTR

O

P

kP

k

P

pp

)12(][2

]2[2

2delay

1

1

1

th window after the timeidle 2 1 kR

SRTT

R

S k

ementacknowledg receivesserver until

segment send tostartsserver when from time RTTR

S

window kth the transmit totime2 1

R

Sk

RTT

initia te TCPconnection

requestobject

first w indow= S R

second w indow= 2S R

third w indow= 4S R

fourth w indow= 8S R

com pletetransm issionobject

delivered

tim e atc lient

tim e atserver

Transport Layer 3-108

TCP Mocirc higravenh trễ (4)

)1(log

)1(logmin

12min

222min

222min

2

2

110

110

S

OS

Okk

S

Ok

SOk

OSSSkK

k

k

k

caacutech tiacutenh toaacuten Q tương tự (xem HW)

K = số lượng cửa sổ bao trugravem đối tượngLagravem thế nagraveo tiacutenh được K

Transport Layer 3-109

HTTP Mocirc higravenh Giả sử trang Web chứa

1 trang HTML (kiacutech thước O bits) M higravenh ảnh (mỗi caacutei kiacutech thướcO bits)

HTTP khocircng bền vững M+1 TCP kết nối Thời gian đaacutep ứng = (M+1)OR + (M+1)2RTT + tổng số thời

gian rảnh HTTP bền vững

2 RTT để yecircu cầu vagrave nhận file HTML 1 RTT để yecircu cầu vagrave nhận M higravenh ảnh Thời gian đaacutep ứng = (M+1)OR + 3RTT + tổng số thời gian

rảnh HTTP khocircng bền vững với X kết nối song song

Giả sử MX lagrave số nguyecircn 1 TCP kết nối cho file MX thiết lập caacutec kết nối song song cho caacutec higravenh ảnh Thời gian đaacutep ứng = (M+1)OR + (MX + 1)2RTT + tổng số

thời gian rảnh

Transport Layer 3-110

02468

101214161820

28Kbps

100Kbps

1Mbps

10Mbps

non-persistent

persistent

parallel non-persistent

HTTP thời gian đaacutep ứng (giacircy)RTT = 100 msec O = 5 Kbytes M=10 vagrave X=5

Với băng thocircng thấp thời gian kết nối amp đaacutep ứng trội hơn thời gian truyền

Caacutec kết nối bền vững chỉ cho sự cải thiện khocircng đaacuteng kể trecircn caacutec kết nối song song

Transport Layer 3-111

0

10

20

30

40

50

60

70

28Kbps

100Kbps

1Mbps

10Mbps

non-persistent

persistent

parallel non-persistent

HTTP thời gian đaacutep ứng (giacircy)

RTT =1 sec O = 5 Kbytes M=10 and X=5

Với RTT lớn hơn thời gian đaacutep ứng trội hơn thời gian trễ chờ thiết lập kết nốiTCP amp khởi động chậm Caacutec kết nối bền vững bacircy giờ cho thấy cải thiện rotilde rệt đặc biệtvới caacutec mạng băng thocircng cao

Transport Layer 3-112

Chương 3 Tổng kết caacutec nguyecircn lyacute của caacutec

dịch vụ lớp transport multiplexing

demultiplexing truyền dữ liệu tin cậy điều khiển luồng điều khiển tắc nghẽn

khởi tạo vagrave hiện thực trong Internet UDP TCP

Tiếp theo nghiecircn cứu xong

caacutec vấn đề ldquongoagravei biecircnrdquo (caacutec lớp application transport)

chuẩn bị vagraveo phần ldquolotildeirdquo của mạng

  • Slide 1
  • Chương 3 Lớp Transport
  • Chương 3 Nội dung trigravenh bagravey
  • Caacutec dịch vụ vagrave giao thức Transport
  • Lớp Transport với lớp network
  • Caacutec giao thức lớp transport trecircn Internet
  • Slide 7
  • Multiplexingdemultiplexing
  • Demultiplexing lagravem việc như thế nagraveo
  • Demultiplexing khocircng kết nối
  • Demultiplexing khocircng kết nối (tiếp)
  • Demultiplexing hướng kết nối
  • Demultiplexing hướng kết nối (tiếp)
  • Demultiplexing hướng kết nối Threaded Web Server
  • Slide 15
  • UDP User Datagram Protocol [RFC 768]
  • UDP (tt)
  • UDP checksum
  • Viacute dụ Checksum
  • Slide 20
  • Caacutec nguyecircn lyacute truyền dữ liệu tin cậy
  • Slide 22
  • Slide 23
  • Truyền dữ liệu tin cậy
  • Slide 25
  • Rdt10 truyền dữ liệu tin cậy trecircn 1 kecircnh truyền tin cậy
  • Rdt20 kecircnh với caacutec lỗi
  • rdt20 đặc tả FSM
  • rdt20 hoạt động khi khocircng lỗi
  • rdt20 hoạt động khi coacute lỗi
  • rdt20 coacute lỗ hổng nghiecircm trọng
  • rdt21 người gửi quản lyacute caacutec ACKNAK bị hỏng
  • Slide 33
  • rdt21 thảo luận
  • rdt22 một giao thức khocircng cần NAK
  • rdt22 gửi nhận caacutec mảnh
  • rdt30 caacutec kecircnh với lỗi vagrave mất maacutet
  • rdt30 gửi
  • hagravenh động của rdt30
  • Slide 40
  • Hiệu suất của rdt30
  • rdt30 hoạt động dừng-vagrave-chờ
  • Caacutec giao thức Pipelined
  • Pipelining độ khả dụng tăng
  • Go-Back-N
  • GBN becircn gửi mở rộng FSM
  • GBN becircn nhận mở rộng FSM
  • GBN hoạt động
  • Lặp coacute lựa chọn
  • Lặp coacute lựa chọn caacutec cửa sổ gửi nhận
  • Slide 51
  • Hoạt động của lặp coacute lựa chọn
  • Lặp coacute lựa chọn tigravenh trạng khoacute giải quyết
  • Slide 54
  • TCP Tổng quan RFCs 793 1122 1323 2018 2581
  • TCP cấu truacutec đoạn
  • Caacutec số thứ tự TCP vagrave ACK
  • TCP Round Trip Time vagraveTimeout
  • TCP Round Trip Time vagrave Timeout
  • Viacute dụ đaacutenh giaacute RTT
  • Slide 61
  • TCP truyền dữ liệu tin cậy
  • TCP caacutec sự kiện
  • TCP becircn gửi (đơn giản)
  • TCP caacutec tigravenh huống truyền lại
  • TCP caacutec tigravenh huống truyền lại (tt)
  • TCP sinh ra ACK [RFC 1122 RFC 2581]
  • Truyền lại nhanh
  • Giải thuật truyền lại nhanh
  • Slide 70
  • TCP điều khiển luồng
  • TCP điều khiển luồng caacutech lagravem
  • Slide 73
  • TCP quản lyacute kết nối
  • TCP quản lyacute kết nối (tt)
  • Slide 76
  • Slide 77
  • Slide 78
  • Caacutec nguyecircn lyacute điều khiển tắc nghẽn
  • Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 1
  • Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 2
  • Slide 82
  • Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 3
  • Slide 84
  • Caacutec caacutech tiếp cận đối với điều khiển tắc nghẽn
  • Viacute dụ điều khiển tắc nghẽn ATM ABR
  • Slide 87
  • Slide 88
  • TCP điều khiển tắc nghẽn additive tăng lecircn multiplicative giảm xuống
  • TCP điều khiển tắc nghẽn chi tiết
  • TCP khởi động chậm
  • TCP khởi động chậm (tt)
  • Tinh chế
  • Tinh chế nhận biết mất maacutet
  • Tổng kết TCP điều khiển tắc nghẽn
  • TCP điều khiển tắc nghẽn becircn gửi
  • TCP throughput
  • TCP tương lai
  • TCP tiacutenh cocircng bằng
  • Tại sao phải TCP cocircng bằng
  • TCP tiacutenh cocircng bằng (tt)
  • Mocirc higravenh trễ
  • Cửa sổ tắc nghẽn cố định (1)
  • Cửa sổ tắc nghẽn cố định (2)
  • TCP Mocirc higravenh trễ Khởi động chậm (1)
  • TCP Mocirc higravenh trễ Khởi động chậm (2)
  • TCP Mocirc higravenh trễ(3)
  • TCP Mocirc higravenh trễ (4)
  • HTTP Mocirc higravenh
  • Slide 110
  • Slide 111
  • Chương 3 Tổng kết

Transport Layer 3-82

Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 2 luocircn luocircn

truyền lại ldquohoagraven toagravenrdquo chỉ khi mất maacutet

truyền lại vigrave trễ (khocircng mất) lagravem cho lớn hơn với cugraveng

in

out

=

in

out

gt

in

out

ldquocaacutec chi phiacuterdquo của tắc nghẽn nhiều việc (truyền lại) caacutec truyền lại khocircng cần thiết liecircn kết nhiều bản sao của

goacutei

R2

R2in

ou

t

b

R2

R2in

ou

t

a

R2

R2in

ou

t

c

R4

R3

Transport Layer 3-83

Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 3 4 người gửi caacutec đường qua nhiều hop timeouttruyền lại

in

Hỏi điều gigrave xảy ra nếu vagrave tăng lecircn

in

chia sẻ vocirc hạncaacutec bộ đệm ouput

Host Ain dữ liệu gốc

Host B

out

in dữ liệu gốc cugraveng với dữ liệu truyền lại

Transport Layer 3-84

Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 3

ldquochi phiacuterdquo khaacutec của tắc nghẽn khi caacutec goacutei bị bỏ bất kỳ ldquokhả năng truyền

upstream dugraveng cho goacutei đoacute sẽ bị latildeng phiacuterdquo

Host A

Host B

o

u

t

Transport Layer 3-85

Caacutec caacutech tiếp cận đối với điều khiển tắc nghẽn

điều khiển tắc nghẽn end-end

khocircng coacute phản hồi rotilde ragraveng từ mạng

tắc nghẽn được suy ra từ việc quan saacutet caacutec hệ thống đầu cuối coacute mất maacutet trễ

tiếp cận được quản lyacute bởi TCP

điều khiển tắc nghẽn coacute sự hỗ trợ của mạng

caacutec router cung cấp phản hồi về caacutec hệ thống đầu cuối 1 bit duy nhất chỉ thị

tắc nghẽn (SNA DECbit TCPIP ECN ATM)

tốc độ sẽ gửi được xaacutec định rotilde ragraveng

2 caacutech

Transport Layer 3-86

Viacute dụ điều khiển tắc nghẽn ATM ABR

ABR tốc độ bit sẵn sagraveng

ldquodịch vụ mềm dẻordquo nếu đường gửi ldquochưa

hếtrdquo becircn gửi sẽ dugraveng

băng thocircng sẵn sagraveng nếu đường gửi tắc

nghẽn becircn gửi điều tiết với

tốc độ tối thiểu

RM (resource management)

gửi bởi becircn gửi rải raacutec với caacutec ocirc dữ liệu

caacutec bit trong ocirc thiết lập bởi caacutec switch bit NI khocircng tăng tốc độ

(tắc nghẽn nhẹ) bit CI tắc nghẽn rotilde rệt

Caacutec ocirc RM được trả về becircn gửi từ becircn nhận với nguyecircn vẹn caacutec bit

Transport Layer 3-87

Viacute dụ điều khiển tắc nghẽn ATM ABR

trường 2-byte ER trong ocirc RM switch đatilde tắc nghẽn coacute thể coacute giaacute trị ER thấp hơn trong ocirc tốc độ gửi do đoacute coacute thể được hỗ trợ tối đa trecircn đường

EFCI bit trong caacutec ocirc dữ liệu được cagravei giaacute trị 1 trong switch đatilde tắc nghẽn nếu ocirc dữ liệu đứng trước ocirc RM coacute cagravei EFCI becircn gửi sẽ cagravei

bit CI trong ocirc RM trả về

Transport Layer 3-88

Chương 3 Nội dung trigravenh bagravey

31 Caacutec dịch vụ lớp Transport

32 Multiplexing vagrave demultiplexing

33 Vận chuyển khocircng kết nối UDP

34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy

35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối

36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn

37 Điều khiển tắc nghẽn TCP

Transport Layer 3-89

TCP điều khiển tắc nghẽn additive tăng lecircn multiplicative giảm xuống

8 Kbytes

16 Kbytes

24 Kbytes

time

congestionwindow

Caacutech tiếp cận tăng tốc độ truyền (kiacutech thước cửa sổ) tigravem khả năng băng thocircng coacute thể cho đến khi coacute mất maacutet xảy ra additive tăng lecircn tăng CongWin bởi 1 MSS

mỗi RTT cho đến khi coacute mất maacutet xảy ra multiplicative giảm xuống bỏ CongWin trong

nửa giai đoạn sau khi mất maacutet

timekiacutech

thư

ớc

cửa

sổ

tắc

nghẽ

n

Tigravem kiếm băng thocircng

Transport Layer 3-90

TCP điều khiển tắc nghẽn chi tiết

becircn gửi hạn chế việc truyền LastByteSent-LastByteAcked

CongWin Cocircng thức

CongWin thay đổi chức năng lagrave nhận biết tắc nghẽn trecircn mạng

Lagravem thế nagraveo becircn gửi nhận biết tắc nghẽn

mất maacutet xảy ra = timeout hoặc 3 ack trugraveng lặp

becircn gửi giảm tốc độ (CongWin) sau khi mất maacutet xảy ra

3 cơ chế AIMD khởi động chậm thận trọng sau khi coacute

caacutec sự kiện timeout

tốc độ = CongWin

RTT Bytess

Transport Layer 3-91

TCP khởi động chậm

Khi kết nối bắt đầu CongWin = 1 MSS Viacute dụ MSS = 500 bytes

amp RTT = 200 ms tốc độ khởi tạo = 20

kbps

băng thocircng sẵn sagraveng coacute thể gtgt MSSRTT mong muốn nhanh

choacuteng tăng tốc lecircn tốc độ coacute thể đaacutep ứng

Khi kết nối bắt đầu tăng tốc lecircn rất nhanh cho đến khi sự cố mất maacutet xảy ra đầu tiecircn

Transport Layer 3-92

TCP khởi động chậm (tt)

Khi kết nối bắt đầu tăng tốc lecircn rất nhanh cho đến khi sự cố mất maacutet xảy ra đầu tiecircn nhacircn đocirci CongWin mỗi

RTT hoagraven thagravenh nhờ tăng CongWin ứng với mỗi ACK đatilde nhận

Tổng kết tốc độ khởi đầu lagrave chậm nhưng sau đoacute tăng tốc rất nhanh

Host A

1 đoạn

RTT

Host B

thời gian

2 đoạn

4 đoạn

Transport Layer 3-93

Tinh chếHỏi Khi nagraveo việc tăng

tốc trở thagravenh tuyến tiacutenh

Trả lời Khi CongWin đạt đến 12 giaacute trị của noacute trước khi timeout

Hiện thực Ngưỡng thay đổi Tại thời điểm coacute sự cố

mất maacutet ngưỡng được cagravei giaacute trị bằng frac12 của CongWin ngay trước đoacute

Transport Layer 3-94

Tinh chế nhận biết mất maacutet

Sau 3 ACK trugraveng lặp CongWin sẽ giảm 12 kiacutech thước cửa sổ

tăng tuyến tiacutenh nhưng sau sự cố

timeout CongWin thay giaacute trị

bằng 1 MSS kiacutech thước cửa sổ

tăng cấp lũy thừa khi đến một ngưỡng

thigrave tăng tuyến tiacutenh

3 ACK trugraveng nhau chỉ ra khả năng truyền của mạng timeout chỉ thị ldquonhiều cảnh baacuteordquo về tigravenh huống tắc nghẽn

Nguyecircn lyacute

Transport Layer 3-95

Tổng kết TCP điều khiển tắc nghẽn

Khi CongWin dưới Threshold becircn gửi đang trong giai đoạn khởi động chậm kiacutech thước cửa sổ tăng nhanh theo cấp lũy thừa

Khi CongWin trecircn Threshold becircn gửi đang trong giai đoạn traacutenh tắc nghẽn kiacutech thước cửa sổ tăng nhanh theo cấp tuyến tiacutenh

Khi coacute 3 ACK trugraveng lặp xảy ra Threshold = CongWin2 vagrave CongWin = Threshold

Khi timeout xảy ra Threshold = CongWin2 vagrave CongWin = 1 MSS

Transport Layer 3-96

TCP điều khiển tắc nghẽn becircn gửi

Trạng thaacutei Sự kiện TCP becircn gửi hagravenh động Diễn giải

Slow Start (SS)-Khởi động chậm

ACK baacuteo nhận cho dữ liệu chưa ACK trước đoacute

CongWin = CongWin + MSS If (CongWin gt Threshold) cagravei đặt trạng thaacutei ldquoTraacutenh tắc nghẽnrdquo

Hậu quả lagravem tăng gấp đocirci CongWin mỗi RTT

CongestionAvoidance (CA) ndashTraacutenh tắc nghẽn

ACK baacuteo nhận cho dữ liệu chưa ACK trước đoacute

CongWin = CongWin+MSS (MSSCongWin)

Additive tăng lecircn lagravem tăng CongWin lecircn 1 MSS mỗi RTT

SS hoặc CA Sự cố mất maacutet xảy ra khi thấy coacute 3 ACK trugraveng lặp

Threshold = CongWin2 CongWin = Thresholdcagravei đặt trạng thaacutei ldquoTraacutenh tắc nghẽnrdquo

Khocirci phục nhanh hiện thực giảm xuống multiplicative CongWin sẽ khocircng giảm xuống dưới 1 MSS

SS hoặc CA Timeout Threshold = CongWin2 CongWin = 1 MSScagravei đặt trạng thaacutei ldquoKhởi động chậmrdquo

Vagraveo chế độ ldquoKhởi động chậmrdquo

SS hoặc CA ACK trugraveng lặp

Đếm ACK tăng lecircn cho đoạn vừa được ACK

CongWin vagrave Threshold khocircng thay đổi

Transport Layer 3-97

TCP throughput

Throughout trung bigravenh của TCP biểu diễn qua kiacutech thước của sổ vagrave RTT Bỏ qua trạng thaacutei ldquoKhởi động chậmrdquo

Cho W lagrave kiacutech thước cửa sổ khi coacute mất maacutet xảy ra

Khi kiacutech thước cửa sổ = W lưu lượng = WRTT

Chỉ ngay sau khi mất maacutet cửa sổ giảm xuống = W2 lưu lượng = W2RTT

throughout trung bigravenh 075 WRTT

Transport Layer 3-98

TCP tương lai

Viacute dụ caacutec đoạn dagravei 1500 byte RTT 100ms lưu lượng 10 Gbps

Kiacutech thước cửa sổ yecircu cầu W = 83333 đoạn trecircn đường truyền

Lưu lượng trong caacutec trường hợp mất maacutet

L = 210-10

Phiecircn bản mới của TCP dagravenh cho nhu cầu tốc độ cao

LRTT

MSS221

Transport Layer 3-99

Mục tiecircu nếu K phiecircn lagravem việc TCP chia sẻ kết nối cổ chai của băng thocircng lagrave R mỗi phiecircn coacute tốc độ trung bigravenh lagrave RK

TCP kết nối 1

router cổ chaikhả năng R

TCP kết nối 2

TCP tiacutenh cocircng bằng

Transport Layer 3-100

Tại sao phải TCP cocircng bằng

2 phiecircn lagravem việc cạnh tranh nhau Additive tăng lưu lượng tăng multiplicative giảm lưu lượng tương xứng

R

R

chia sẻ băng thocircng bằng nhau

Connection 1 throughputConnect

ion 2

th

roughput

traacutenh tắc nghẽn additive tăng lecircnmất maacutet giảm cửa sổ bằng 12

traacutenh tắc nghẽn additive tăng lecircnmất maacutet giảm cửa sổ bằng 12

Transport Layer 3-101

TCP tiacutenh cocircng bằng (tt)

Tiacutenh cocircng bằng amp UDP nhiều ứng dụng

thường khocircng dugraveng TCP khocircng muốn tốc độ bị

điều tiết do điều khiển tắc nghẽn

Thay bằng dugraveng UDP truyền audiovideo với

tốc độ ổn định chịu được mất maacutet

Nghiecircn cứu giao thức thacircn thiện với TCP

Tiacutenh cocircng bằng amp caacutec kết nối TCP song song

khocircng coacute gigrave ngăn cản việc ứng dụng mở caacutec kết nối song song giữa 2 host

Trigravenh duyệt Web lagravem giống như thế

Viacute dụ tốc độ R hỗ trợ 9 kết nối ứng dụng mới yecircu cầu 1

TCP coacute tốc độ R10 ứng dụng mới yecircu cầu 11

TCP coacute tốc độ R2

Transport Layer 3-102

Mocirc higravenh trễ

Hỏi Mất bao lacircu để nhận 1 đối tượng từ Web server sau khi gửi yecircu cầu

Bỏ qua tắc nghẽn trễ bị ảnh hưởng bởi

thiết lập kết nối TCP trễ truyền dữ liệu khởi động chậm

Notation caacutec giả định Giả sử một kết nối giữa

client vagrave server coacute tốc độ R

S MSS (bits) O kiacutech thước đối tượng

(bits) khocircng truyền lại (khocircng

mất maacutet khocircng hỏng)

Kiacutech thước cửa sổ Giả định 1 cửa sổ tắc

nghẽn cố định coacute W đoạn Sau đoacute cửa sổ thay đổi

mocirc higravenh khởi động chậm

Transport Layer 3-103

Cửa sổ tắc nghẽn cố định (1)

Trường hợp đầu tiecircnWSR gt RTT + SR cho

đoạn đầu tiecircn trong cửa sổ trả về trước khi cửa sổ dữ liệu gửi ACK

trễ = 2RTT + OR

Transport Layer 3-104

Cửa sổ tắc nghẽn cố định (2)

Trường hợp thứ hai WSR lt RTT + SR sent

chờ cho ACK sau khi gửi dữ liệu

trễ = 2RTT + OR+ (K-1)[SR + RTT - WSR]

Transport Layer 3-105

TCP Mocirc higravenh trễ Khởi động chậm (1)

Bacircy giờ giả sử kiacutech thước cửa sổ tăng lecircn tugravey theo quaacute trigravenh khởi động chậm

Độ trễ của một đối tượng sẽ lagrave

R

S

R

SRTTP

R

ORTTLatency P )12(2

trong đoacute P lagrave số lần TCP rảnh ở tại server

1min KQP

- trong đoacute Q lagrave số lần server rảnh nếu đối tượng đatilde khởi tạo kiacutech thước

- vagrave K lagrave số lượng cửa sổ bao trugravem đối tượng

Transport Layer 3-106

TCP Mocirc higravenh trễ Khởi động chậm (2)

RTT

initia te TCPconnection

requestobject

first w indow= S R

second w indow= 2S R

third w indow= 4S R

fourth w indow= 8S R

com pletetransm issionobject

delivered

tim e atc lient

tim e atserver

Viacute dụbull OS = 15 đoạnbull K = 4 cửa sổbull Q = 2bull P = minK-1Q = 2

Server rảnh P=2 lần

Caacutec thagravenh phần trễbull 2 RTT dagravenh cho thiết lập kết nối vagrave yecircu cầubull OR để truyền đối tượngbullthời gian server rảnh bởi vigrave khởi động chậm

Server rảnh P = minK-1Q lần

Transport Layer 3-107

TCP Mocirc higravenh trễ(3)

R

S

R

SRTTPRTT

R

O

R

SRTT

R

SRTT

R

O

idleTimeRTTR

O

P

kP

k

P

pp

)12(][2

]2[2

2delay

1

1

1

th window after the timeidle 2 1 kR

SRTT

R

S k

ementacknowledg receivesserver until

segment send tostartsserver when from time RTTR

S

window kth the transmit totime2 1

R

Sk

RTT

initia te TCPconnection

requestobject

first w indow= S R

second w indow= 2S R

third w indow= 4S R

fourth w indow= 8S R

com pletetransm issionobject

delivered

tim e atc lient

tim e atserver

Transport Layer 3-108

TCP Mocirc higravenh trễ (4)

)1(log

)1(logmin

12min

222min

222min

2

2

110

110

S

OS

Okk

S

Ok

SOk

OSSSkK

k

k

k

caacutech tiacutenh toaacuten Q tương tự (xem HW)

K = số lượng cửa sổ bao trugravem đối tượngLagravem thế nagraveo tiacutenh được K

Transport Layer 3-109

HTTP Mocirc higravenh Giả sử trang Web chứa

1 trang HTML (kiacutech thước O bits) M higravenh ảnh (mỗi caacutei kiacutech thướcO bits)

HTTP khocircng bền vững M+1 TCP kết nối Thời gian đaacutep ứng = (M+1)OR + (M+1)2RTT + tổng số thời

gian rảnh HTTP bền vững

2 RTT để yecircu cầu vagrave nhận file HTML 1 RTT để yecircu cầu vagrave nhận M higravenh ảnh Thời gian đaacutep ứng = (M+1)OR + 3RTT + tổng số thời gian

rảnh HTTP khocircng bền vững với X kết nối song song

Giả sử MX lagrave số nguyecircn 1 TCP kết nối cho file MX thiết lập caacutec kết nối song song cho caacutec higravenh ảnh Thời gian đaacutep ứng = (M+1)OR + (MX + 1)2RTT + tổng số

thời gian rảnh

Transport Layer 3-110

02468

101214161820

28Kbps

100Kbps

1Mbps

10Mbps

non-persistent

persistent

parallel non-persistent

HTTP thời gian đaacutep ứng (giacircy)RTT = 100 msec O = 5 Kbytes M=10 vagrave X=5

Với băng thocircng thấp thời gian kết nối amp đaacutep ứng trội hơn thời gian truyền

Caacutec kết nối bền vững chỉ cho sự cải thiện khocircng đaacuteng kể trecircn caacutec kết nối song song

Transport Layer 3-111

0

10

20

30

40

50

60

70

28Kbps

100Kbps

1Mbps

10Mbps

non-persistent

persistent

parallel non-persistent

HTTP thời gian đaacutep ứng (giacircy)

RTT =1 sec O = 5 Kbytes M=10 and X=5

Với RTT lớn hơn thời gian đaacutep ứng trội hơn thời gian trễ chờ thiết lập kết nốiTCP amp khởi động chậm Caacutec kết nối bền vững bacircy giờ cho thấy cải thiện rotilde rệt đặc biệtvới caacutec mạng băng thocircng cao

Transport Layer 3-112

Chương 3 Tổng kết caacutec nguyecircn lyacute của caacutec

dịch vụ lớp transport multiplexing

demultiplexing truyền dữ liệu tin cậy điều khiển luồng điều khiển tắc nghẽn

khởi tạo vagrave hiện thực trong Internet UDP TCP

Tiếp theo nghiecircn cứu xong

caacutec vấn đề ldquongoagravei biecircnrdquo (caacutec lớp application transport)

chuẩn bị vagraveo phần ldquolotildeirdquo của mạng

  • Slide 1
  • Chương 3 Lớp Transport
  • Chương 3 Nội dung trigravenh bagravey
  • Caacutec dịch vụ vagrave giao thức Transport
  • Lớp Transport với lớp network
  • Caacutec giao thức lớp transport trecircn Internet
  • Slide 7
  • Multiplexingdemultiplexing
  • Demultiplexing lagravem việc như thế nagraveo
  • Demultiplexing khocircng kết nối
  • Demultiplexing khocircng kết nối (tiếp)
  • Demultiplexing hướng kết nối
  • Demultiplexing hướng kết nối (tiếp)
  • Demultiplexing hướng kết nối Threaded Web Server
  • Slide 15
  • UDP User Datagram Protocol [RFC 768]
  • UDP (tt)
  • UDP checksum
  • Viacute dụ Checksum
  • Slide 20
  • Caacutec nguyecircn lyacute truyền dữ liệu tin cậy
  • Slide 22
  • Slide 23
  • Truyền dữ liệu tin cậy
  • Slide 25
  • Rdt10 truyền dữ liệu tin cậy trecircn 1 kecircnh truyền tin cậy
  • Rdt20 kecircnh với caacutec lỗi
  • rdt20 đặc tả FSM
  • rdt20 hoạt động khi khocircng lỗi
  • rdt20 hoạt động khi coacute lỗi
  • rdt20 coacute lỗ hổng nghiecircm trọng
  • rdt21 người gửi quản lyacute caacutec ACKNAK bị hỏng
  • Slide 33
  • rdt21 thảo luận
  • rdt22 một giao thức khocircng cần NAK
  • rdt22 gửi nhận caacutec mảnh
  • rdt30 caacutec kecircnh với lỗi vagrave mất maacutet
  • rdt30 gửi
  • hagravenh động của rdt30
  • Slide 40
  • Hiệu suất của rdt30
  • rdt30 hoạt động dừng-vagrave-chờ
  • Caacutec giao thức Pipelined
  • Pipelining độ khả dụng tăng
  • Go-Back-N
  • GBN becircn gửi mở rộng FSM
  • GBN becircn nhận mở rộng FSM
  • GBN hoạt động
  • Lặp coacute lựa chọn
  • Lặp coacute lựa chọn caacutec cửa sổ gửi nhận
  • Slide 51
  • Hoạt động của lặp coacute lựa chọn
  • Lặp coacute lựa chọn tigravenh trạng khoacute giải quyết
  • Slide 54
  • TCP Tổng quan RFCs 793 1122 1323 2018 2581
  • TCP cấu truacutec đoạn
  • Caacutec số thứ tự TCP vagrave ACK
  • TCP Round Trip Time vagraveTimeout
  • TCP Round Trip Time vagrave Timeout
  • Viacute dụ đaacutenh giaacute RTT
  • Slide 61
  • TCP truyền dữ liệu tin cậy
  • TCP caacutec sự kiện
  • TCP becircn gửi (đơn giản)
  • TCP caacutec tigravenh huống truyền lại
  • TCP caacutec tigravenh huống truyền lại (tt)
  • TCP sinh ra ACK [RFC 1122 RFC 2581]
  • Truyền lại nhanh
  • Giải thuật truyền lại nhanh
  • Slide 70
  • TCP điều khiển luồng
  • TCP điều khiển luồng caacutech lagravem
  • Slide 73
  • TCP quản lyacute kết nối
  • TCP quản lyacute kết nối (tt)
  • Slide 76
  • Slide 77
  • Slide 78
  • Caacutec nguyecircn lyacute điều khiển tắc nghẽn
  • Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 1
  • Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 2
  • Slide 82
  • Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 3
  • Slide 84
  • Caacutec caacutech tiếp cận đối với điều khiển tắc nghẽn
  • Viacute dụ điều khiển tắc nghẽn ATM ABR
  • Slide 87
  • Slide 88
  • TCP điều khiển tắc nghẽn additive tăng lecircn multiplicative giảm xuống
  • TCP điều khiển tắc nghẽn chi tiết
  • TCP khởi động chậm
  • TCP khởi động chậm (tt)
  • Tinh chế
  • Tinh chế nhận biết mất maacutet
  • Tổng kết TCP điều khiển tắc nghẽn
  • TCP điều khiển tắc nghẽn becircn gửi
  • TCP throughput
  • TCP tương lai
  • TCP tiacutenh cocircng bằng
  • Tại sao phải TCP cocircng bằng
  • TCP tiacutenh cocircng bằng (tt)
  • Mocirc higravenh trễ
  • Cửa sổ tắc nghẽn cố định (1)
  • Cửa sổ tắc nghẽn cố định (2)
  • TCP Mocirc higravenh trễ Khởi động chậm (1)
  • TCP Mocirc higravenh trễ Khởi động chậm (2)
  • TCP Mocirc higravenh trễ(3)
  • TCP Mocirc higravenh trễ (4)
  • HTTP Mocirc higravenh
  • Slide 110
  • Slide 111
  • Chương 3 Tổng kết

Transport Layer 3-83

Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 3 4 người gửi caacutec đường qua nhiều hop timeouttruyền lại

in

Hỏi điều gigrave xảy ra nếu vagrave tăng lecircn

in

chia sẻ vocirc hạncaacutec bộ đệm ouput

Host Ain dữ liệu gốc

Host B

out

in dữ liệu gốc cugraveng với dữ liệu truyền lại

Transport Layer 3-84

Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 3

ldquochi phiacuterdquo khaacutec của tắc nghẽn khi caacutec goacutei bị bỏ bất kỳ ldquokhả năng truyền

upstream dugraveng cho goacutei đoacute sẽ bị latildeng phiacuterdquo

Host A

Host B

o

u

t

Transport Layer 3-85

Caacutec caacutech tiếp cận đối với điều khiển tắc nghẽn

điều khiển tắc nghẽn end-end

khocircng coacute phản hồi rotilde ragraveng từ mạng

tắc nghẽn được suy ra từ việc quan saacutet caacutec hệ thống đầu cuối coacute mất maacutet trễ

tiếp cận được quản lyacute bởi TCP

điều khiển tắc nghẽn coacute sự hỗ trợ của mạng

caacutec router cung cấp phản hồi về caacutec hệ thống đầu cuối 1 bit duy nhất chỉ thị

tắc nghẽn (SNA DECbit TCPIP ECN ATM)

tốc độ sẽ gửi được xaacutec định rotilde ragraveng

2 caacutech

Transport Layer 3-86

Viacute dụ điều khiển tắc nghẽn ATM ABR

ABR tốc độ bit sẵn sagraveng

ldquodịch vụ mềm dẻordquo nếu đường gửi ldquochưa

hếtrdquo becircn gửi sẽ dugraveng

băng thocircng sẵn sagraveng nếu đường gửi tắc

nghẽn becircn gửi điều tiết với

tốc độ tối thiểu

RM (resource management)

gửi bởi becircn gửi rải raacutec với caacutec ocirc dữ liệu

caacutec bit trong ocirc thiết lập bởi caacutec switch bit NI khocircng tăng tốc độ

(tắc nghẽn nhẹ) bit CI tắc nghẽn rotilde rệt

Caacutec ocirc RM được trả về becircn gửi từ becircn nhận với nguyecircn vẹn caacutec bit

Transport Layer 3-87

Viacute dụ điều khiển tắc nghẽn ATM ABR

trường 2-byte ER trong ocirc RM switch đatilde tắc nghẽn coacute thể coacute giaacute trị ER thấp hơn trong ocirc tốc độ gửi do đoacute coacute thể được hỗ trợ tối đa trecircn đường

EFCI bit trong caacutec ocirc dữ liệu được cagravei giaacute trị 1 trong switch đatilde tắc nghẽn nếu ocirc dữ liệu đứng trước ocirc RM coacute cagravei EFCI becircn gửi sẽ cagravei

bit CI trong ocirc RM trả về

Transport Layer 3-88

Chương 3 Nội dung trigravenh bagravey

31 Caacutec dịch vụ lớp Transport

32 Multiplexing vagrave demultiplexing

33 Vận chuyển khocircng kết nối UDP

34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy

35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối

36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn

37 Điều khiển tắc nghẽn TCP

Transport Layer 3-89

TCP điều khiển tắc nghẽn additive tăng lecircn multiplicative giảm xuống

8 Kbytes

16 Kbytes

24 Kbytes

time

congestionwindow

Caacutech tiếp cận tăng tốc độ truyền (kiacutech thước cửa sổ) tigravem khả năng băng thocircng coacute thể cho đến khi coacute mất maacutet xảy ra additive tăng lecircn tăng CongWin bởi 1 MSS

mỗi RTT cho đến khi coacute mất maacutet xảy ra multiplicative giảm xuống bỏ CongWin trong

nửa giai đoạn sau khi mất maacutet

timekiacutech

thư

ớc

cửa

sổ

tắc

nghẽ

n

Tigravem kiếm băng thocircng

Transport Layer 3-90

TCP điều khiển tắc nghẽn chi tiết

becircn gửi hạn chế việc truyền LastByteSent-LastByteAcked

CongWin Cocircng thức

CongWin thay đổi chức năng lagrave nhận biết tắc nghẽn trecircn mạng

Lagravem thế nagraveo becircn gửi nhận biết tắc nghẽn

mất maacutet xảy ra = timeout hoặc 3 ack trugraveng lặp

becircn gửi giảm tốc độ (CongWin) sau khi mất maacutet xảy ra

3 cơ chế AIMD khởi động chậm thận trọng sau khi coacute

caacutec sự kiện timeout

tốc độ = CongWin

RTT Bytess

Transport Layer 3-91

TCP khởi động chậm

Khi kết nối bắt đầu CongWin = 1 MSS Viacute dụ MSS = 500 bytes

amp RTT = 200 ms tốc độ khởi tạo = 20

kbps

băng thocircng sẵn sagraveng coacute thể gtgt MSSRTT mong muốn nhanh

choacuteng tăng tốc lecircn tốc độ coacute thể đaacutep ứng

Khi kết nối bắt đầu tăng tốc lecircn rất nhanh cho đến khi sự cố mất maacutet xảy ra đầu tiecircn

Transport Layer 3-92

TCP khởi động chậm (tt)

Khi kết nối bắt đầu tăng tốc lecircn rất nhanh cho đến khi sự cố mất maacutet xảy ra đầu tiecircn nhacircn đocirci CongWin mỗi

RTT hoagraven thagravenh nhờ tăng CongWin ứng với mỗi ACK đatilde nhận

Tổng kết tốc độ khởi đầu lagrave chậm nhưng sau đoacute tăng tốc rất nhanh

Host A

1 đoạn

RTT

Host B

thời gian

2 đoạn

4 đoạn

Transport Layer 3-93

Tinh chếHỏi Khi nagraveo việc tăng

tốc trở thagravenh tuyến tiacutenh

Trả lời Khi CongWin đạt đến 12 giaacute trị của noacute trước khi timeout

Hiện thực Ngưỡng thay đổi Tại thời điểm coacute sự cố

mất maacutet ngưỡng được cagravei giaacute trị bằng frac12 của CongWin ngay trước đoacute

Transport Layer 3-94

Tinh chế nhận biết mất maacutet

Sau 3 ACK trugraveng lặp CongWin sẽ giảm 12 kiacutech thước cửa sổ

tăng tuyến tiacutenh nhưng sau sự cố

timeout CongWin thay giaacute trị

bằng 1 MSS kiacutech thước cửa sổ

tăng cấp lũy thừa khi đến một ngưỡng

thigrave tăng tuyến tiacutenh

3 ACK trugraveng nhau chỉ ra khả năng truyền của mạng timeout chỉ thị ldquonhiều cảnh baacuteordquo về tigravenh huống tắc nghẽn

Nguyecircn lyacute

Transport Layer 3-95

Tổng kết TCP điều khiển tắc nghẽn

Khi CongWin dưới Threshold becircn gửi đang trong giai đoạn khởi động chậm kiacutech thước cửa sổ tăng nhanh theo cấp lũy thừa

Khi CongWin trecircn Threshold becircn gửi đang trong giai đoạn traacutenh tắc nghẽn kiacutech thước cửa sổ tăng nhanh theo cấp tuyến tiacutenh

Khi coacute 3 ACK trugraveng lặp xảy ra Threshold = CongWin2 vagrave CongWin = Threshold

Khi timeout xảy ra Threshold = CongWin2 vagrave CongWin = 1 MSS

Transport Layer 3-96

TCP điều khiển tắc nghẽn becircn gửi

Trạng thaacutei Sự kiện TCP becircn gửi hagravenh động Diễn giải

Slow Start (SS)-Khởi động chậm

ACK baacuteo nhận cho dữ liệu chưa ACK trước đoacute

CongWin = CongWin + MSS If (CongWin gt Threshold) cagravei đặt trạng thaacutei ldquoTraacutenh tắc nghẽnrdquo

Hậu quả lagravem tăng gấp đocirci CongWin mỗi RTT

CongestionAvoidance (CA) ndashTraacutenh tắc nghẽn

ACK baacuteo nhận cho dữ liệu chưa ACK trước đoacute

CongWin = CongWin+MSS (MSSCongWin)

Additive tăng lecircn lagravem tăng CongWin lecircn 1 MSS mỗi RTT

SS hoặc CA Sự cố mất maacutet xảy ra khi thấy coacute 3 ACK trugraveng lặp

Threshold = CongWin2 CongWin = Thresholdcagravei đặt trạng thaacutei ldquoTraacutenh tắc nghẽnrdquo

Khocirci phục nhanh hiện thực giảm xuống multiplicative CongWin sẽ khocircng giảm xuống dưới 1 MSS

SS hoặc CA Timeout Threshold = CongWin2 CongWin = 1 MSScagravei đặt trạng thaacutei ldquoKhởi động chậmrdquo

Vagraveo chế độ ldquoKhởi động chậmrdquo

SS hoặc CA ACK trugraveng lặp

Đếm ACK tăng lecircn cho đoạn vừa được ACK

CongWin vagrave Threshold khocircng thay đổi

Transport Layer 3-97

TCP throughput

Throughout trung bigravenh của TCP biểu diễn qua kiacutech thước của sổ vagrave RTT Bỏ qua trạng thaacutei ldquoKhởi động chậmrdquo

Cho W lagrave kiacutech thước cửa sổ khi coacute mất maacutet xảy ra

Khi kiacutech thước cửa sổ = W lưu lượng = WRTT

Chỉ ngay sau khi mất maacutet cửa sổ giảm xuống = W2 lưu lượng = W2RTT

throughout trung bigravenh 075 WRTT

Transport Layer 3-98

TCP tương lai

Viacute dụ caacutec đoạn dagravei 1500 byte RTT 100ms lưu lượng 10 Gbps

Kiacutech thước cửa sổ yecircu cầu W = 83333 đoạn trecircn đường truyền

Lưu lượng trong caacutec trường hợp mất maacutet

L = 210-10

Phiecircn bản mới của TCP dagravenh cho nhu cầu tốc độ cao

LRTT

MSS221

Transport Layer 3-99

Mục tiecircu nếu K phiecircn lagravem việc TCP chia sẻ kết nối cổ chai của băng thocircng lagrave R mỗi phiecircn coacute tốc độ trung bigravenh lagrave RK

TCP kết nối 1

router cổ chaikhả năng R

TCP kết nối 2

TCP tiacutenh cocircng bằng

Transport Layer 3-100

Tại sao phải TCP cocircng bằng

2 phiecircn lagravem việc cạnh tranh nhau Additive tăng lưu lượng tăng multiplicative giảm lưu lượng tương xứng

R

R

chia sẻ băng thocircng bằng nhau

Connection 1 throughputConnect

ion 2

th

roughput

traacutenh tắc nghẽn additive tăng lecircnmất maacutet giảm cửa sổ bằng 12

traacutenh tắc nghẽn additive tăng lecircnmất maacutet giảm cửa sổ bằng 12

Transport Layer 3-101

TCP tiacutenh cocircng bằng (tt)

Tiacutenh cocircng bằng amp UDP nhiều ứng dụng

thường khocircng dugraveng TCP khocircng muốn tốc độ bị

điều tiết do điều khiển tắc nghẽn

Thay bằng dugraveng UDP truyền audiovideo với

tốc độ ổn định chịu được mất maacutet

Nghiecircn cứu giao thức thacircn thiện với TCP

Tiacutenh cocircng bằng amp caacutec kết nối TCP song song

khocircng coacute gigrave ngăn cản việc ứng dụng mở caacutec kết nối song song giữa 2 host

Trigravenh duyệt Web lagravem giống như thế

Viacute dụ tốc độ R hỗ trợ 9 kết nối ứng dụng mới yecircu cầu 1

TCP coacute tốc độ R10 ứng dụng mới yecircu cầu 11

TCP coacute tốc độ R2

Transport Layer 3-102

Mocirc higravenh trễ

Hỏi Mất bao lacircu để nhận 1 đối tượng từ Web server sau khi gửi yecircu cầu

Bỏ qua tắc nghẽn trễ bị ảnh hưởng bởi

thiết lập kết nối TCP trễ truyền dữ liệu khởi động chậm

Notation caacutec giả định Giả sử một kết nối giữa

client vagrave server coacute tốc độ R

S MSS (bits) O kiacutech thước đối tượng

(bits) khocircng truyền lại (khocircng

mất maacutet khocircng hỏng)

Kiacutech thước cửa sổ Giả định 1 cửa sổ tắc

nghẽn cố định coacute W đoạn Sau đoacute cửa sổ thay đổi

mocirc higravenh khởi động chậm

Transport Layer 3-103

Cửa sổ tắc nghẽn cố định (1)

Trường hợp đầu tiecircnWSR gt RTT + SR cho

đoạn đầu tiecircn trong cửa sổ trả về trước khi cửa sổ dữ liệu gửi ACK

trễ = 2RTT + OR

Transport Layer 3-104

Cửa sổ tắc nghẽn cố định (2)

Trường hợp thứ hai WSR lt RTT + SR sent

chờ cho ACK sau khi gửi dữ liệu

trễ = 2RTT + OR+ (K-1)[SR + RTT - WSR]

Transport Layer 3-105

TCP Mocirc higravenh trễ Khởi động chậm (1)

Bacircy giờ giả sử kiacutech thước cửa sổ tăng lecircn tugravey theo quaacute trigravenh khởi động chậm

Độ trễ của một đối tượng sẽ lagrave

R

S

R

SRTTP

R

ORTTLatency P )12(2

trong đoacute P lagrave số lần TCP rảnh ở tại server

1min KQP

- trong đoacute Q lagrave số lần server rảnh nếu đối tượng đatilde khởi tạo kiacutech thước

- vagrave K lagrave số lượng cửa sổ bao trugravem đối tượng

Transport Layer 3-106

TCP Mocirc higravenh trễ Khởi động chậm (2)

RTT

initia te TCPconnection

requestobject

first w indow= S R

second w indow= 2S R

third w indow= 4S R

fourth w indow= 8S R

com pletetransm issionobject

delivered

tim e atc lient

tim e atserver

Viacute dụbull OS = 15 đoạnbull K = 4 cửa sổbull Q = 2bull P = minK-1Q = 2

Server rảnh P=2 lần

Caacutec thagravenh phần trễbull 2 RTT dagravenh cho thiết lập kết nối vagrave yecircu cầubull OR để truyền đối tượngbullthời gian server rảnh bởi vigrave khởi động chậm

Server rảnh P = minK-1Q lần

Transport Layer 3-107

TCP Mocirc higravenh trễ(3)

R

S

R

SRTTPRTT

R

O

R

SRTT

R

SRTT

R

O

idleTimeRTTR

O

P

kP

k

P

pp

)12(][2

]2[2

2delay

1

1

1

th window after the timeidle 2 1 kR

SRTT

R

S k

ementacknowledg receivesserver until

segment send tostartsserver when from time RTTR

S

window kth the transmit totime2 1

R

Sk

RTT

initia te TCPconnection

requestobject

first w indow= S R

second w indow= 2S R

third w indow= 4S R

fourth w indow= 8S R

com pletetransm issionobject

delivered

tim e atc lient

tim e atserver

Transport Layer 3-108

TCP Mocirc higravenh trễ (4)

)1(log

)1(logmin

12min

222min

222min

2

2

110

110

S

OS

Okk

S

Ok

SOk

OSSSkK

k

k

k

caacutech tiacutenh toaacuten Q tương tự (xem HW)

K = số lượng cửa sổ bao trugravem đối tượngLagravem thế nagraveo tiacutenh được K

Transport Layer 3-109

HTTP Mocirc higravenh Giả sử trang Web chứa

1 trang HTML (kiacutech thước O bits) M higravenh ảnh (mỗi caacutei kiacutech thướcO bits)

HTTP khocircng bền vững M+1 TCP kết nối Thời gian đaacutep ứng = (M+1)OR + (M+1)2RTT + tổng số thời

gian rảnh HTTP bền vững

2 RTT để yecircu cầu vagrave nhận file HTML 1 RTT để yecircu cầu vagrave nhận M higravenh ảnh Thời gian đaacutep ứng = (M+1)OR + 3RTT + tổng số thời gian

rảnh HTTP khocircng bền vững với X kết nối song song

Giả sử MX lagrave số nguyecircn 1 TCP kết nối cho file MX thiết lập caacutec kết nối song song cho caacutec higravenh ảnh Thời gian đaacutep ứng = (M+1)OR + (MX + 1)2RTT + tổng số

thời gian rảnh

Transport Layer 3-110

02468

101214161820

28Kbps

100Kbps

1Mbps

10Mbps

non-persistent

persistent

parallel non-persistent

HTTP thời gian đaacutep ứng (giacircy)RTT = 100 msec O = 5 Kbytes M=10 vagrave X=5

Với băng thocircng thấp thời gian kết nối amp đaacutep ứng trội hơn thời gian truyền

Caacutec kết nối bền vững chỉ cho sự cải thiện khocircng đaacuteng kể trecircn caacutec kết nối song song

Transport Layer 3-111

0

10

20

30

40

50

60

70

28Kbps

100Kbps

1Mbps

10Mbps

non-persistent

persistent

parallel non-persistent

HTTP thời gian đaacutep ứng (giacircy)

RTT =1 sec O = 5 Kbytes M=10 and X=5

Với RTT lớn hơn thời gian đaacutep ứng trội hơn thời gian trễ chờ thiết lập kết nốiTCP amp khởi động chậm Caacutec kết nối bền vững bacircy giờ cho thấy cải thiện rotilde rệt đặc biệtvới caacutec mạng băng thocircng cao

Transport Layer 3-112

Chương 3 Tổng kết caacutec nguyecircn lyacute của caacutec

dịch vụ lớp transport multiplexing

demultiplexing truyền dữ liệu tin cậy điều khiển luồng điều khiển tắc nghẽn

khởi tạo vagrave hiện thực trong Internet UDP TCP

Tiếp theo nghiecircn cứu xong

caacutec vấn đề ldquongoagravei biecircnrdquo (caacutec lớp application transport)

chuẩn bị vagraveo phần ldquolotildeirdquo của mạng

  • Slide 1
  • Chương 3 Lớp Transport
  • Chương 3 Nội dung trigravenh bagravey
  • Caacutec dịch vụ vagrave giao thức Transport
  • Lớp Transport với lớp network
  • Caacutec giao thức lớp transport trecircn Internet
  • Slide 7
  • Multiplexingdemultiplexing
  • Demultiplexing lagravem việc như thế nagraveo
  • Demultiplexing khocircng kết nối
  • Demultiplexing khocircng kết nối (tiếp)
  • Demultiplexing hướng kết nối
  • Demultiplexing hướng kết nối (tiếp)
  • Demultiplexing hướng kết nối Threaded Web Server
  • Slide 15
  • UDP User Datagram Protocol [RFC 768]
  • UDP (tt)
  • UDP checksum
  • Viacute dụ Checksum
  • Slide 20
  • Caacutec nguyecircn lyacute truyền dữ liệu tin cậy
  • Slide 22
  • Slide 23
  • Truyền dữ liệu tin cậy
  • Slide 25
  • Rdt10 truyền dữ liệu tin cậy trecircn 1 kecircnh truyền tin cậy
  • Rdt20 kecircnh với caacutec lỗi
  • rdt20 đặc tả FSM
  • rdt20 hoạt động khi khocircng lỗi
  • rdt20 hoạt động khi coacute lỗi
  • rdt20 coacute lỗ hổng nghiecircm trọng
  • rdt21 người gửi quản lyacute caacutec ACKNAK bị hỏng
  • Slide 33
  • rdt21 thảo luận
  • rdt22 một giao thức khocircng cần NAK
  • rdt22 gửi nhận caacutec mảnh
  • rdt30 caacutec kecircnh với lỗi vagrave mất maacutet
  • rdt30 gửi
  • hagravenh động của rdt30
  • Slide 40
  • Hiệu suất của rdt30
  • rdt30 hoạt động dừng-vagrave-chờ
  • Caacutec giao thức Pipelined
  • Pipelining độ khả dụng tăng
  • Go-Back-N
  • GBN becircn gửi mở rộng FSM
  • GBN becircn nhận mở rộng FSM
  • GBN hoạt động
  • Lặp coacute lựa chọn
  • Lặp coacute lựa chọn caacutec cửa sổ gửi nhận
  • Slide 51
  • Hoạt động của lặp coacute lựa chọn
  • Lặp coacute lựa chọn tigravenh trạng khoacute giải quyết
  • Slide 54
  • TCP Tổng quan RFCs 793 1122 1323 2018 2581
  • TCP cấu truacutec đoạn
  • Caacutec số thứ tự TCP vagrave ACK
  • TCP Round Trip Time vagraveTimeout
  • TCP Round Trip Time vagrave Timeout
  • Viacute dụ đaacutenh giaacute RTT
  • Slide 61
  • TCP truyền dữ liệu tin cậy
  • TCP caacutec sự kiện
  • TCP becircn gửi (đơn giản)
  • TCP caacutec tigravenh huống truyền lại
  • TCP caacutec tigravenh huống truyền lại (tt)
  • TCP sinh ra ACK [RFC 1122 RFC 2581]
  • Truyền lại nhanh
  • Giải thuật truyền lại nhanh
  • Slide 70
  • TCP điều khiển luồng
  • TCP điều khiển luồng caacutech lagravem
  • Slide 73
  • TCP quản lyacute kết nối
  • TCP quản lyacute kết nối (tt)
  • Slide 76
  • Slide 77
  • Slide 78
  • Caacutec nguyecircn lyacute điều khiển tắc nghẽn
  • Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 1
  • Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 2
  • Slide 82
  • Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 3
  • Slide 84
  • Caacutec caacutech tiếp cận đối với điều khiển tắc nghẽn
  • Viacute dụ điều khiển tắc nghẽn ATM ABR
  • Slide 87
  • Slide 88
  • TCP điều khiển tắc nghẽn additive tăng lecircn multiplicative giảm xuống
  • TCP điều khiển tắc nghẽn chi tiết
  • TCP khởi động chậm
  • TCP khởi động chậm (tt)
  • Tinh chế
  • Tinh chế nhận biết mất maacutet
  • Tổng kết TCP điều khiển tắc nghẽn
  • TCP điều khiển tắc nghẽn becircn gửi
  • TCP throughput
  • TCP tương lai
  • TCP tiacutenh cocircng bằng
  • Tại sao phải TCP cocircng bằng
  • TCP tiacutenh cocircng bằng (tt)
  • Mocirc higravenh trễ
  • Cửa sổ tắc nghẽn cố định (1)
  • Cửa sổ tắc nghẽn cố định (2)
  • TCP Mocirc higravenh trễ Khởi động chậm (1)
  • TCP Mocirc higravenh trễ Khởi động chậm (2)
  • TCP Mocirc higravenh trễ(3)
  • TCP Mocirc higravenh trễ (4)
  • HTTP Mocirc higravenh
  • Slide 110
  • Slide 111
  • Chương 3 Tổng kết

Transport Layer 3-84

Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 3

ldquochi phiacuterdquo khaacutec của tắc nghẽn khi caacutec goacutei bị bỏ bất kỳ ldquokhả năng truyền

upstream dugraveng cho goacutei đoacute sẽ bị latildeng phiacuterdquo

Host A

Host B

o

u

t

Transport Layer 3-85

Caacutec caacutech tiếp cận đối với điều khiển tắc nghẽn

điều khiển tắc nghẽn end-end

khocircng coacute phản hồi rotilde ragraveng từ mạng

tắc nghẽn được suy ra từ việc quan saacutet caacutec hệ thống đầu cuối coacute mất maacutet trễ

tiếp cận được quản lyacute bởi TCP

điều khiển tắc nghẽn coacute sự hỗ trợ của mạng

caacutec router cung cấp phản hồi về caacutec hệ thống đầu cuối 1 bit duy nhất chỉ thị

tắc nghẽn (SNA DECbit TCPIP ECN ATM)

tốc độ sẽ gửi được xaacutec định rotilde ragraveng

2 caacutech

Transport Layer 3-86

Viacute dụ điều khiển tắc nghẽn ATM ABR

ABR tốc độ bit sẵn sagraveng

ldquodịch vụ mềm dẻordquo nếu đường gửi ldquochưa

hếtrdquo becircn gửi sẽ dugraveng

băng thocircng sẵn sagraveng nếu đường gửi tắc

nghẽn becircn gửi điều tiết với

tốc độ tối thiểu

RM (resource management)

gửi bởi becircn gửi rải raacutec với caacutec ocirc dữ liệu

caacutec bit trong ocirc thiết lập bởi caacutec switch bit NI khocircng tăng tốc độ

(tắc nghẽn nhẹ) bit CI tắc nghẽn rotilde rệt

Caacutec ocirc RM được trả về becircn gửi từ becircn nhận với nguyecircn vẹn caacutec bit

Transport Layer 3-87

Viacute dụ điều khiển tắc nghẽn ATM ABR

trường 2-byte ER trong ocirc RM switch đatilde tắc nghẽn coacute thể coacute giaacute trị ER thấp hơn trong ocirc tốc độ gửi do đoacute coacute thể được hỗ trợ tối đa trecircn đường

EFCI bit trong caacutec ocirc dữ liệu được cagravei giaacute trị 1 trong switch đatilde tắc nghẽn nếu ocirc dữ liệu đứng trước ocirc RM coacute cagravei EFCI becircn gửi sẽ cagravei

bit CI trong ocirc RM trả về

Transport Layer 3-88

Chương 3 Nội dung trigravenh bagravey

31 Caacutec dịch vụ lớp Transport

32 Multiplexing vagrave demultiplexing

33 Vận chuyển khocircng kết nối UDP

34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy

35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối

36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn

37 Điều khiển tắc nghẽn TCP

Transport Layer 3-89

TCP điều khiển tắc nghẽn additive tăng lecircn multiplicative giảm xuống

8 Kbytes

16 Kbytes

24 Kbytes

time

congestionwindow

Caacutech tiếp cận tăng tốc độ truyền (kiacutech thước cửa sổ) tigravem khả năng băng thocircng coacute thể cho đến khi coacute mất maacutet xảy ra additive tăng lecircn tăng CongWin bởi 1 MSS

mỗi RTT cho đến khi coacute mất maacutet xảy ra multiplicative giảm xuống bỏ CongWin trong

nửa giai đoạn sau khi mất maacutet

timekiacutech

thư

ớc

cửa

sổ

tắc

nghẽ

n

Tigravem kiếm băng thocircng

Transport Layer 3-90

TCP điều khiển tắc nghẽn chi tiết

becircn gửi hạn chế việc truyền LastByteSent-LastByteAcked

CongWin Cocircng thức

CongWin thay đổi chức năng lagrave nhận biết tắc nghẽn trecircn mạng

Lagravem thế nagraveo becircn gửi nhận biết tắc nghẽn

mất maacutet xảy ra = timeout hoặc 3 ack trugraveng lặp

becircn gửi giảm tốc độ (CongWin) sau khi mất maacutet xảy ra

3 cơ chế AIMD khởi động chậm thận trọng sau khi coacute

caacutec sự kiện timeout

tốc độ = CongWin

RTT Bytess

Transport Layer 3-91

TCP khởi động chậm

Khi kết nối bắt đầu CongWin = 1 MSS Viacute dụ MSS = 500 bytes

amp RTT = 200 ms tốc độ khởi tạo = 20

kbps

băng thocircng sẵn sagraveng coacute thể gtgt MSSRTT mong muốn nhanh

choacuteng tăng tốc lecircn tốc độ coacute thể đaacutep ứng

Khi kết nối bắt đầu tăng tốc lecircn rất nhanh cho đến khi sự cố mất maacutet xảy ra đầu tiecircn

Transport Layer 3-92

TCP khởi động chậm (tt)

Khi kết nối bắt đầu tăng tốc lecircn rất nhanh cho đến khi sự cố mất maacutet xảy ra đầu tiecircn nhacircn đocirci CongWin mỗi

RTT hoagraven thagravenh nhờ tăng CongWin ứng với mỗi ACK đatilde nhận

Tổng kết tốc độ khởi đầu lagrave chậm nhưng sau đoacute tăng tốc rất nhanh

Host A

1 đoạn

RTT

Host B

thời gian

2 đoạn

4 đoạn

Transport Layer 3-93

Tinh chếHỏi Khi nagraveo việc tăng

tốc trở thagravenh tuyến tiacutenh

Trả lời Khi CongWin đạt đến 12 giaacute trị của noacute trước khi timeout

Hiện thực Ngưỡng thay đổi Tại thời điểm coacute sự cố

mất maacutet ngưỡng được cagravei giaacute trị bằng frac12 của CongWin ngay trước đoacute

Transport Layer 3-94

Tinh chế nhận biết mất maacutet

Sau 3 ACK trugraveng lặp CongWin sẽ giảm 12 kiacutech thước cửa sổ

tăng tuyến tiacutenh nhưng sau sự cố

timeout CongWin thay giaacute trị

bằng 1 MSS kiacutech thước cửa sổ

tăng cấp lũy thừa khi đến một ngưỡng

thigrave tăng tuyến tiacutenh

3 ACK trugraveng nhau chỉ ra khả năng truyền của mạng timeout chỉ thị ldquonhiều cảnh baacuteordquo về tigravenh huống tắc nghẽn

Nguyecircn lyacute

Transport Layer 3-95

Tổng kết TCP điều khiển tắc nghẽn

Khi CongWin dưới Threshold becircn gửi đang trong giai đoạn khởi động chậm kiacutech thước cửa sổ tăng nhanh theo cấp lũy thừa

Khi CongWin trecircn Threshold becircn gửi đang trong giai đoạn traacutenh tắc nghẽn kiacutech thước cửa sổ tăng nhanh theo cấp tuyến tiacutenh

Khi coacute 3 ACK trugraveng lặp xảy ra Threshold = CongWin2 vagrave CongWin = Threshold

Khi timeout xảy ra Threshold = CongWin2 vagrave CongWin = 1 MSS

Transport Layer 3-96

TCP điều khiển tắc nghẽn becircn gửi

Trạng thaacutei Sự kiện TCP becircn gửi hagravenh động Diễn giải

Slow Start (SS)-Khởi động chậm

ACK baacuteo nhận cho dữ liệu chưa ACK trước đoacute

CongWin = CongWin + MSS If (CongWin gt Threshold) cagravei đặt trạng thaacutei ldquoTraacutenh tắc nghẽnrdquo

Hậu quả lagravem tăng gấp đocirci CongWin mỗi RTT

CongestionAvoidance (CA) ndashTraacutenh tắc nghẽn

ACK baacuteo nhận cho dữ liệu chưa ACK trước đoacute

CongWin = CongWin+MSS (MSSCongWin)

Additive tăng lecircn lagravem tăng CongWin lecircn 1 MSS mỗi RTT

SS hoặc CA Sự cố mất maacutet xảy ra khi thấy coacute 3 ACK trugraveng lặp

Threshold = CongWin2 CongWin = Thresholdcagravei đặt trạng thaacutei ldquoTraacutenh tắc nghẽnrdquo

Khocirci phục nhanh hiện thực giảm xuống multiplicative CongWin sẽ khocircng giảm xuống dưới 1 MSS

SS hoặc CA Timeout Threshold = CongWin2 CongWin = 1 MSScagravei đặt trạng thaacutei ldquoKhởi động chậmrdquo

Vagraveo chế độ ldquoKhởi động chậmrdquo

SS hoặc CA ACK trugraveng lặp

Đếm ACK tăng lecircn cho đoạn vừa được ACK

CongWin vagrave Threshold khocircng thay đổi

Transport Layer 3-97

TCP throughput

Throughout trung bigravenh của TCP biểu diễn qua kiacutech thước của sổ vagrave RTT Bỏ qua trạng thaacutei ldquoKhởi động chậmrdquo

Cho W lagrave kiacutech thước cửa sổ khi coacute mất maacutet xảy ra

Khi kiacutech thước cửa sổ = W lưu lượng = WRTT

Chỉ ngay sau khi mất maacutet cửa sổ giảm xuống = W2 lưu lượng = W2RTT

throughout trung bigravenh 075 WRTT

Transport Layer 3-98

TCP tương lai

Viacute dụ caacutec đoạn dagravei 1500 byte RTT 100ms lưu lượng 10 Gbps

Kiacutech thước cửa sổ yecircu cầu W = 83333 đoạn trecircn đường truyền

Lưu lượng trong caacutec trường hợp mất maacutet

L = 210-10

Phiecircn bản mới của TCP dagravenh cho nhu cầu tốc độ cao

LRTT

MSS221

Transport Layer 3-99

Mục tiecircu nếu K phiecircn lagravem việc TCP chia sẻ kết nối cổ chai của băng thocircng lagrave R mỗi phiecircn coacute tốc độ trung bigravenh lagrave RK

TCP kết nối 1

router cổ chaikhả năng R

TCP kết nối 2

TCP tiacutenh cocircng bằng

Transport Layer 3-100

Tại sao phải TCP cocircng bằng

2 phiecircn lagravem việc cạnh tranh nhau Additive tăng lưu lượng tăng multiplicative giảm lưu lượng tương xứng

R

R

chia sẻ băng thocircng bằng nhau

Connection 1 throughputConnect

ion 2

th

roughput

traacutenh tắc nghẽn additive tăng lecircnmất maacutet giảm cửa sổ bằng 12

traacutenh tắc nghẽn additive tăng lecircnmất maacutet giảm cửa sổ bằng 12

Transport Layer 3-101

TCP tiacutenh cocircng bằng (tt)

Tiacutenh cocircng bằng amp UDP nhiều ứng dụng

thường khocircng dugraveng TCP khocircng muốn tốc độ bị

điều tiết do điều khiển tắc nghẽn

Thay bằng dugraveng UDP truyền audiovideo với

tốc độ ổn định chịu được mất maacutet

Nghiecircn cứu giao thức thacircn thiện với TCP

Tiacutenh cocircng bằng amp caacutec kết nối TCP song song

khocircng coacute gigrave ngăn cản việc ứng dụng mở caacutec kết nối song song giữa 2 host

Trigravenh duyệt Web lagravem giống như thế

Viacute dụ tốc độ R hỗ trợ 9 kết nối ứng dụng mới yecircu cầu 1

TCP coacute tốc độ R10 ứng dụng mới yecircu cầu 11

TCP coacute tốc độ R2

Transport Layer 3-102

Mocirc higravenh trễ

Hỏi Mất bao lacircu để nhận 1 đối tượng từ Web server sau khi gửi yecircu cầu

Bỏ qua tắc nghẽn trễ bị ảnh hưởng bởi

thiết lập kết nối TCP trễ truyền dữ liệu khởi động chậm

Notation caacutec giả định Giả sử một kết nối giữa

client vagrave server coacute tốc độ R

S MSS (bits) O kiacutech thước đối tượng

(bits) khocircng truyền lại (khocircng

mất maacutet khocircng hỏng)

Kiacutech thước cửa sổ Giả định 1 cửa sổ tắc

nghẽn cố định coacute W đoạn Sau đoacute cửa sổ thay đổi

mocirc higravenh khởi động chậm

Transport Layer 3-103

Cửa sổ tắc nghẽn cố định (1)

Trường hợp đầu tiecircnWSR gt RTT + SR cho

đoạn đầu tiecircn trong cửa sổ trả về trước khi cửa sổ dữ liệu gửi ACK

trễ = 2RTT + OR

Transport Layer 3-104

Cửa sổ tắc nghẽn cố định (2)

Trường hợp thứ hai WSR lt RTT + SR sent

chờ cho ACK sau khi gửi dữ liệu

trễ = 2RTT + OR+ (K-1)[SR + RTT - WSR]

Transport Layer 3-105

TCP Mocirc higravenh trễ Khởi động chậm (1)

Bacircy giờ giả sử kiacutech thước cửa sổ tăng lecircn tugravey theo quaacute trigravenh khởi động chậm

Độ trễ của một đối tượng sẽ lagrave

R

S

R

SRTTP

R

ORTTLatency P )12(2

trong đoacute P lagrave số lần TCP rảnh ở tại server

1min KQP

- trong đoacute Q lagrave số lần server rảnh nếu đối tượng đatilde khởi tạo kiacutech thước

- vagrave K lagrave số lượng cửa sổ bao trugravem đối tượng

Transport Layer 3-106

TCP Mocirc higravenh trễ Khởi động chậm (2)

RTT

initia te TCPconnection

requestobject

first w indow= S R

second w indow= 2S R

third w indow= 4S R

fourth w indow= 8S R

com pletetransm issionobject

delivered

tim e atc lient

tim e atserver

Viacute dụbull OS = 15 đoạnbull K = 4 cửa sổbull Q = 2bull P = minK-1Q = 2

Server rảnh P=2 lần

Caacutec thagravenh phần trễbull 2 RTT dagravenh cho thiết lập kết nối vagrave yecircu cầubull OR để truyền đối tượngbullthời gian server rảnh bởi vigrave khởi động chậm

Server rảnh P = minK-1Q lần

Transport Layer 3-107

TCP Mocirc higravenh trễ(3)

R

S

R

SRTTPRTT

R

O

R

SRTT

R

SRTT

R

O

idleTimeRTTR

O

P

kP

k

P

pp

)12(][2

]2[2

2delay

1

1

1

th window after the timeidle 2 1 kR

SRTT

R

S k

ementacknowledg receivesserver until

segment send tostartsserver when from time RTTR

S

window kth the transmit totime2 1

R

Sk

RTT

initia te TCPconnection

requestobject

first w indow= S R

second w indow= 2S R

third w indow= 4S R

fourth w indow= 8S R

com pletetransm issionobject

delivered

tim e atc lient

tim e atserver

Transport Layer 3-108

TCP Mocirc higravenh trễ (4)

)1(log

)1(logmin

12min

222min

222min

2

2

110

110

S

OS

Okk

S

Ok

SOk

OSSSkK

k

k

k

caacutech tiacutenh toaacuten Q tương tự (xem HW)

K = số lượng cửa sổ bao trugravem đối tượngLagravem thế nagraveo tiacutenh được K

Transport Layer 3-109

HTTP Mocirc higravenh Giả sử trang Web chứa

1 trang HTML (kiacutech thước O bits) M higravenh ảnh (mỗi caacutei kiacutech thướcO bits)

HTTP khocircng bền vững M+1 TCP kết nối Thời gian đaacutep ứng = (M+1)OR + (M+1)2RTT + tổng số thời

gian rảnh HTTP bền vững

2 RTT để yecircu cầu vagrave nhận file HTML 1 RTT để yecircu cầu vagrave nhận M higravenh ảnh Thời gian đaacutep ứng = (M+1)OR + 3RTT + tổng số thời gian

rảnh HTTP khocircng bền vững với X kết nối song song

Giả sử MX lagrave số nguyecircn 1 TCP kết nối cho file MX thiết lập caacutec kết nối song song cho caacutec higravenh ảnh Thời gian đaacutep ứng = (M+1)OR + (MX + 1)2RTT + tổng số

thời gian rảnh

Transport Layer 3-110

02468

101214161820

28Kbps

100Kbps

1Mbps

10Mbps

non-persistent

persistent

parallel non-persistent

HTTP thời gian đaacutep ứng (giacircy)RTT = 100 msec O = 5 Kbytes M=10 vagrave X=5

Với băng thocircng thấp thời gian kết nối amp đaacutep ứng trội hơn thời gian truyền

Caacutec kết nối bền vững chỉ cho sự cải thiện khocircng đaacuteng kể trecircn caacutec kết nối song song

Transport Layer 3-111

0

10

20

30

40

50

60

70

28Kbps

100Kbps

1Mbps

10Mbps

non-persistent

persistent

parallel non-persistent

HTTP thời gian đaacutep ứng (giacircy)

RTT =1 sec O = 5 Kbytes M=10 and X=5

Với RTT lớn hơn thời gian đaacutep ứng trội hơn thời gian trễ chờ thiết lập kết nốiTCP amp khởi động chậm Caacutec kết nối bền vững bacircy giờ cho thấy cải thiện rotilde rệt đặc biệtvới caacutec mạng băng thocircng cao

Transport Layer 3-112

Chương 3 Tổng kết caacutec nguyecircn lyacute của caacutec

dịch vụ lớp transport multiplexing

demultiplexing truyền dữ liệu tin cậy điều khiển luồng điều khiển tắc nghẽn

khởi tạo vagrave hiện thực trong Internet UDP TCP

Tiếp theo nghiecircn cứu xong

caacutec vấn đề ldquongoagravei biecircnrdquo (caacutec lớp application transport)

chuẩn bị vagraveo phần ldquolotildeirdquo của mạng

  • Slide 1
  • Chương 3 Lớp Transport
  • Chương 3 Nội dung trigravenh bagravey
  • Caacutec dịch vụ vagrave giao thức Transport
  • Lớp Transport với lớp network
  • Caacutec giao thức lớp transport trecircn Internet
  • Slide 7
  • Multiplexingdemultiplexing
  • Demultiplexing lagravem việc như thế nagraveo
  • Demultiplexing khocircng kết nối
  • Demultiplexing khocircng kết nối (tiếp)
  • Demultiplexing hướng kết nối
  • Demultiplexing hướng kết nối (tiếp)
  • Demultiplexing hướng kết nối Threaded Web Server
  • Slide 15
  • UDP User Datagram Protocol [RFC 768]
  • UDP (tt)
  • UDP checksum
  • Viacute dụ Checksum
  • Slide 20
  • Caacutec nguyecircn lyacute truyền dữ liệu tin cậy
  • Slide 22
  • Slide 23
  • Truyền dữ liệu tin cậy
  • Slide 25
  • Rdt10 truyền dữ liệu tin cậy trecircn 1 kecircnh truyền tin cậy
  • Rdt20 kecircnh với caacutec lỗi
  • rdt20 đặc tả FSM
  • rdt20 hoạt động khi khocircng lỗi
  • rdt20 hoạt động khi coacute lỗi
  • rdt20 coacute lỗ hổng nghiecircm trọng
  • rdt21 người gửi quản lyacute caacutec ACKNAK bị hỏng
  • Slide 33
  • rdt21 thảo luận
  • rdt22 một giao thức khocircng cần NAK
  • rdt22 gửi nhận caacutec mảnh
  • rdt30 caacutec kecircnh với lỗi vagrave mất maacutet
  • rdt30 gửi
  • hagravenh động của rdt30
  • Slide 40
  • Hiệu suất của rdt30
  • rdt30 hoạt động dừng-vagrave-chờ
  • Caacutec giao thức Pipelined
  • Pipelining độ khả dụng tăng
  • Go-Back-N
  • GBN becircn gửi mở rộng FSM
  • GBN becircn nhận mở rộng FSM
  • GBN hoạt động
  • Lặp coacute lựa chọn
  • Lặp coacute lựa chọn caacutec cửa sổ gửi nhận
  • Slide 51
  • Hoạt động của lặp coacute lựa chọn
  • Lặp coacute lựa chọn tigravenh trạng khoacute giải quyết
  • Slide 54
  • TCP Tổng quan RFCs 793 1122 1323 2018 2581
  • TCP cấu truacutec đoạn
  • Caacutec số thứ tự TCP vagrave ACK
  • TCP Round Trip Time vagraveTimeout
  • TCP Round Trip Time vagrave Timeout
  • Viacute dụ đaacutenh giaacute RTT
  • Slide 61
  • TCP truyền dữ liệu tin cậy
  • TCP caacutec sự kiện
  • TCP becircn gửi (đơn giản)
  • TCP caacutec tigravenh huống truyền lại
  • TCP caacutec tigravenh huống truyền lại (tt)
  • TCP sinh ra ACK [RFC 1122 RFC 2581]
  • Truyền lại nhanh
  • Giải thuật truyền lại nhanh
  • Slide 70
  • TCP điều khiển luồng
  • TCP điều khiển luồng caacutech lagravem
  • Slide 73
  • TCP quản lyacute kết nối
  • TCP quản lyacute kết nối (tt)
  • Slide 76
  • Slide 77
  • Slide 78
  • Caacutec nguyecircn lyacute điều khiển tắc nghẽn
  • Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 1
  • Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 2
  • Slide 82
  • Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 3
  • Slide 84
  • Caacutec caacutech tiếp cận đối với điều khiển tắc nghẽn
  • Viacute dụ điều khiển tắc nghẽn ATM ABR
  • Slide 87
  • Slide 88
  • TCP điều khiển tắc nghẽn additive tăng lecircn multiplicative giảm xuống
  • TCP điều khiển tắc nghẽn chi tiết
  • TCP khởi động chậm
  • TCP khởi động chậm (tt)
  • Tinh chế
  • Tinh chế nhận biết mất maacutet
  • Tổng kết TCP điều khiển tắc nghẽn
  • TCP điều khiển tắc nghẽn becircn gửi
  • TCP throughput
  • TCP tương lai
  • TCP tiacutenh cocircng bằng
  • Tại sao phải TCP cocircng bằng
  • TCP tiacutenh cocircng bằng (tt)
  • Mocirc higravenh trễ
  • Cửa sổ tắc nghẽn cố định (1)
  • Cửa sổ tắc nghẽn cố định (2)
  • TCP Mocirc higravenh trễ Khởi động chậm (1)
  • TCP Mocirc higravenh trễ Khởi động chậm (2)
  • TCP Mocirc higravenh trễ(3)
  • TCP Mocirc higravenh trễ (4)
  • HTTP Mocirc higravenh
  • Slide 110
  • Slide 111
  • Chương 3 Tổng kết

Transport Layer 3-85

Caacutec caacutech tiếp cận đối với điều khiển tắc nghẽn

điều khiển tắc nghẽn end-end

khocircng coacute phản hồi rotilde ragraveng từ mạng

tắc nghẽn được suy ra từ việc quan saacutet caacutec hệ thống đầu cuối coacute mất maacutet trễ

tiếp cận được quản lyacute bởi TCP

điều khiển tắc nghẽn coacute sự hỗ trợ của mạng

caacutec router cung cấp phản hồi về caacutec hệ thống đầu cuối 1 bit duy nhất chỉ thị

tắc nghẽn (SNA DECbit TCPIP ECN ATM)

tốc độ sẽ gửi được xaacutec định rotilde ragraveng

2 caacutech

Transport Layer 3-86

Viacute dụ điều khiển tắc nghẽn ATM ABR

ABR tốc độ bit sẵn sagraveng

ldquodịch vụ mềm dẻordquo nếu đường gửi ldquochưa

hếtrdquo becircn gửi sẽ dugraveng

băng thocircng sẵn sagraveng nếu đường gửi tắc

nghẽn becircn gửi điều tiết với

tốc độ tối thiểu

RM (resource management)

gửi bởi becircn gửi rải raacutec với caacutec ocirc dữ liệu

caacutec bit trong ocirc thiết lập bởi caacutec switch bit NI khocircng tăng tốc độ

(tắc nghẽn nhẹ) bit CI tắc nghẽn rotilde rệt

Caacutec ocirc RM được trả về becircn gửi từ becircn nhận với nguyecircn vẹn caacutec bit

Transport Layer 3-87

Viacute dụ điều khiển tắc nghẽn ATM ABR

trường 2-byte ER trong ocirc RM switch đatilde tắc nghẽn coacute thể coacute giaacute trị ER thấp hơn trong ocirc tốc độ gửi do đoacute coacute thể được hỗ trợ tối đa trecircn đường

EFCI bit trong caacutec ocirc dữ liệu được cagravei giaacute trị 1 trong switch đatilde tắc nghẽn nếu ocirc dữ liệu đứng trước ocirc RM coacute cagravei EFCI becircn gửi sẽ cagravei

bit CI trong ocirc RM trả về

Transport Layer 3-88

Chương 3 Nội dung trigravenh bagravey

31 Caacutec dịch vụ lớp Transport

32 Multiplexing vagrave demultiplexing

33 Vận chuyển khocircng kết nối UDP

34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy

35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối

36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn

37 Điều khiển tắc nghẽn TCP

Transport Layer 3-89

TCP điều khiển tắc nghẽn additive tăng lecircn multiplicative giảm xuống

8 Kbytes

16 Kbytes

24 Kbytes

time

congestionwindow

Caacutech tiếp cận tăng tốc độ truyền (kiacutech thước cửa sổ) tigravem khả năng băng thocircng coacute thể cho đến khi coacute mất maacutet xảy ra additive tăng lecircn tăng CongWin bởi 1 MSS

mỗi RTT cho đến khi coacute mất maacutet xảy ra multiplicative giảm xuống bỏ CongWin trong

nửa giai đoạn sau khi mất maacutet

timekiacutech

thư

ớc

cửa

sổ

tắc

nghẽ

n

Tigravem kiếm băng thocircng

Transport Layer 3-90

TCP điều khiển tắc nghẽn chi tiết

becircn gửi hạn chế việc truyền LastByteSent-LastByteAcked

CongWin Cocircng thức

CongWin thay đổi chức năng lagrave nhận biết tắc nghẽn trecircn mạng

Lagravem thế nagraveo becircn gửi nhận biết tắc nghẽn

mất maacutet xảy ra = timeout hoặc 3 ack trugraveng lặp

becircn gửi giảm tốc độ (CongWin) sau khi mất maacutet xảy ra

3 cơ chế AIMD khởi động chậm thận trọng sau khi coacute

caacutec sự kiện timeout

tốc độ = CongWin

RTT Bytess

Transport Layer 3-91

TCP khởi động chậm

Khi kết nối bắt đầu CongWin = 1 MSS Viacute dụ MSS = 500 bytes

amp RTT = 200 ms tốc độ khởi tạo = 20

kbps

băng thocircng sẵn sagraveng coacute thể gtgt MSSRTT mong muốn nhanh

choacuteng tăng tốc lecircn tốc độ coacute thể đaacutep ứng

Khi kết nối bắt đầu tăng tốc lecircn rất nhanh cho đến khi sự cố mất maacutet xảy ra đầu tiecircn

Transport Layer 3-92

TCP khởi động chậm (tt)

Khi kết nối bắt đầu tăng tốc lecircn rất nhanh cho đến khi sự cố mất maacutet xảy ra đầu tiecircn nhacircn đocirci CongWin mỗi

RTT hoagraven thagravenh nhờ tăng CongWin ứng với mỗi ACK đatilde nhận

Tổng kết tốc độ khởi đầu lagrave chậm nhưng sau đoacute tăng tốc rất nhanh

Host A

1 đoạn

RTT

Host B

thời gian

2 đoạn

4 đoạn

Transport Layer 3-93

Tinh chếHỏi Khi nagraveo việc tăng

tốc trở thagravenh tuyến tiacutenh

Trả lời Khi CongWin đạt đến 12 giaacute trị của noacute trước khi timeout

Hiện thực Ngưỡng thay đổi Tại thời điểm coacute sự cố

mất maacutet ngưỡng được cagravei giaacute trị bằng frac12 của CongWin ngay trước đoacute

Transport Layer 3-94

Tinh chế nhận biết mất maacutet

Sau 3 ACK trugraveng lặp CongWin sẽ giảm 12 kiacutech thước cửa sổ

tăng tuyến tiacutenh nhưng sau sự cố

timeout CongWin thay giaacute trị

bằng 1 MSS kiacutech thước cửa sổ

tăng cấp lũy thừa khi đến một ngưỡng

thigrave tăng tuyến tiacutenh

3 ACK trugraveng nhau chỉ ra khả năng truyền của mạng timeout chỉ thị ldquonhiều cảnh baacuteordquo về tigravenh huống tắc nghẽn

Nguyecircn lyacute

Transport Layer 3-95

Tổng kết TCP điều khiển tắc nghẽn

Khi CongWin dưới Threshold becircn gửi đang trong giai đoạn khởi động chậm kiacutech thước cửa sổ tăng nhanh theo cấp lũy thừa

Khi CongWin trecircn Threshold becircn gửi đang trong giai đoạn traacutenh tắc nghẽn kiacutech thước cửa sổ tăng nhanh theo cấp tuyến tiacutenh

Khi coacute 3 ACK trugraveng lặp xảy ra Threshold = CongWin2 vagrave CongWin = Threshold

Khi timeout xảy ra Threshold = CongWin2 vagrave CongWin = 1 MSS

Transport Layer 3-96

TCP điều khiển tắc nghẽn becircn gửi

Trạng thaacutei Sự kiện TCP becircn gửi hagravenh động Diễn giải

Slow Start (SS)-Khởi động chậm

ACK baacuteo nhận cho dữ liệu chưa ACK trước đoacute

CongWin = CongWin + MSS If (CongWin gt Threshold) cagravei đặt trạng thaacutei ldquoTraacutenh tắc nghẽnrdquo

Hậu quả lagravem tăng gấp đocirci CongWin mỗi RTT

CongestionAvoidance (CA) ndashTraacutenh tắc nghẽn

ACK baacuteo nhận cho dữ liệu chưa ACK trước đoacute

CongWin = CongWin+MSS (MSSCongWin)

Additive tăng lecircn lagravem tăng CongWin lecircn 1 MSS mỗi RTT

SS hoặc CA Sự cố mất maacutet xảy ra khi thấy coacute 3 ACK trugraveng lặp

Threshold = CongWin2 CongWin = Thresholdcagravei đặt trạng thaacutei ldquoTraacutenh tắc nghẽnrdquo

Khocirci phục nhanh hiện thực giảm xuống multiplicative CongWin sẽ khocircng giảm xuống dưới 1 MSS

SS hoặc CA Timeout Threshold = CongWin2 CongWin = 1 MSScagravei đặt trạng thaacutei ldquoKhởi động chậmrdquo

Vagraveo chế độ ldquoKhởi động chậmrdquo

SS hoặc CA ACK trugraveng lặp

Đếm ACK tăng lecircn cho đoạn vừa được ACK

CongWin vagrave Threshold khocircng thay đổi

Transport Layer 3-97

TCP throughput

Throughout trung bigravenh của TCP biểu diễn qua kiacutech thước của sổ vagrave RTT Bỏ qua trạng thaacutei ldquoKhởi động chậmrdquo

Cho W lagrave kiacutech thước cửa sổ khi coacute mất maacutet xảy ra

Khi kiacutech thước cửa sổ = W lưu lượng = WRTT

Chỉ ngay sau khi mất maacutet cửa sổ giảm xuống = W2 lưu lượng = W2RTT

throughout trung bigravenh 075 WRTT

Transport Layer 3-98

TCP tương lai

Viacute dụ caacutec đoạn dagravei 1500 byte RTT 100ms lưu lượng 10 Gbps

Kiacutech thước cửa sổ yecircu cầu W = 83333 đoạn trecircn đường truyền

Lưu lượng trong caacutec trường hợp mất maacutet

L = 210-10

Phiecircn bản mới của TCP dagravenh cho nhu cầu tốc độ cao

LRTT

MSS221

Transport Layer 3-99

Mục tiecircu nếu K phiecircn lagravem việc TCP chia sẻ kết nối cổ chai của băng thocircng lagrave R mỗi phiecircn coacute tốc độ trung bigravenh lagrave RK

TCP kết nối 1

router cổ chaikhả năng R

TCP kết nối 2

TCP tiacutenh cocircng bằng

Transport Layer 3-100

Tại sao phải TCP cocircng bằng

2 phiecircn lagravem việc cạnh tranh nhau Additive tăng lưu lượng tăng multiplicative giảm lưu lượng tương xứng

R

R

chia sẻ băng thocircng bằng nhau

Connection 1 throughputConnect

ion 2

th

roughput

traacutenh tắc nghẽn additive tăng lecircnmất maacutet giảm cửa sổ bằng 12

traacutenh tắc nghẽn additive tăng lecircnmất maacutet giảm cửa sổ bằng 12

Transport Layer 3-101

TCP tiacutenh cocircng bằng (tt)

Tiacutenh cocircng bằng amp UDP nhiều ứng dụng

thường khocircng dugraveng TCP khocircng muốn tốc độ bị

điều tiết do điều khiển tắc nghẽn

Thay bằng dugraveng UDP truyền audiovideo với

tốc độ ổn định chịu được mất maacutet

Nghiecircn cứu giao thức thacircn thiện với TCP

Tiacutenh cocircng bằng amp caacutec kết nối TCP song song

khocircng coacute gigrave ngăn cản việc ứng dụng mở caacutec kết nối song song giữa 2 host

Trigravenh duyệt Web lagravem giống như thế

Viacute dụ tốc độ R hỗ trợ 9 kết nối ứng dụng mới yecircu cầu 1

TCP coacute tốc độ R10 ứng dụng mới yecircu cầu 11

TCP coacute tốc độ R2

Transport Layer 3-102

Mocirc higravenh trễ

Hỏi Mất bao lacircu để nhận 1 đối tượng từ Web server sau khi gửi yecircu cầu

Bỏ qua tắc nghẽn trễ bị ảnh hưởng bởi

thiết lập kết nối TCP trễ truyền dữ liệu khởi động chậm

Notation caacutec giả định Giả sử một kết nối giữa

client vagrave server coacute tốc độ R

S MSS (bits) O kiacutech thước đối tượng

(bits) khocircng truyền lại (khocircng

mất maacutet khocircng hỏng)

Kiacutech thước cửa sổ Giả định 1 cửa sổ tắc

nghẽn cố định coacute W đoạn Sau đoacute cửa sổ thay đổi

mocirc higravenh khởi động chậm

Transport Layer 3-103

Cửa sổ tắc nghẽn cố định (1)

Trường hợp đầu tiecircnWSR gt RTT + SR cho

đoạn đầu tiecircn trong cửa sổ trả về trước khi cửa sổ dữ liệu gửi ACK

trễ = 2RTT + OR

Transport Layer 3-104

Cửa sổ tắc nghẽn cố định (2)

Trường hợp thứ hai WSR lt RTT + SR sent

chờ cho ACK sau khi gửi dữ liệu

trễ = 2RTT + OR+ (K-1)[SR + RTT - WSR]

Transport Layer 3-105

TCP Mocirc higravenh trễ Khởi động chậm (1)

Bacircy giờ giả sử kiacutech thước cửa sổ tăng lecircn tugravey theo quaacute trigravenh khởi động chậm

Độ trễ của một đối tượng sẽ lagrave

R

S

R

SRTTP

R

ORTTLatency P )12(2

trong đoacute P lagrave số lần TCP rảnh ở tại server

1min KQP

- trong đoacute Q lagrave số lần server rảnh nếu đối tượng đatilde khởi tạo kiacutech thước

- vagrave K lagrave số lượng cửa sổ bao trugravem đối tượng

Transport Layer 3-106

TCP Mocirc higravenh trễ Khởi động chậm (2)

RTT

initia te TCPconnection

requestobject

first w indow= S R

second w indow= 2S R

third w indow= 4S R

fourth w indow= 8S R

com pletetransm issionobject

delivered

tim e atc lient

tim e atserver

Viacute dụbull OS = 15 đoạnbull K = 4 cửa sổbull Q = 2bull P = minK-1Q = 2

Server rảnh P=2 lần

Caacutec thagravenh phần trễbull 2 RTT dagravenh cho thiết lập kết nối vagrave yecircu cầubull OR để truyền đối tượngbullthời gian server rảnh bởi vigrave khởi động chậm

Server rảnh P = minK-1Q lần

Transport Layer 3-107

TCP Mocirc higravenh trễ(3)

R

S

R

SRTTPRTT

R

O

R

SRTT

R

SRTT

R

O

idleTimeRTTR

O

P

kP

k

P

pp

)12(][2

]2[2

2delay

1

1

1

th window after the timeidle 2 1 kR

SRTT

R

S k

ementacknowledg receivesserver until

segment send tostartsserver when from time RTTR

S

window kth the transmit totime2 1

R

Sk

RTT

initia te TCPconnection

requestobject

first w indow= S R

second w indow= 2S R

third w indow= 4S R

fourth w indow= 8S R

com pletetransm issionobject

delivered

tim e atc lient

tim e atserver

Transport Layer 3-108

TCP Mocirc higravenh trễ (4)

)1(log

)1(logmin

12min

222min

222min

2

2

110

110

S

OS

Okk

S

Ok

SOk

OSSSkK

k

k

k

caacutech tiacutenh toaacuten Q tương tự (xem HW)

K = số lượng cửa sổ bao trugravem đối tượngLagravem thế nagraveo tiacutenh được K

Transport Layer 3-109

HTTP Mocirc higravenh Giả sử trang Web chứa

1 trang HTML (kiacutech thước O bits) M higravenh ảnh (mỗi caacutei kiacutech thướcO bits)

HTTP khocircng bền vững M+1 TCP kết nối Thời gian đaacutep ứng = (M+1)OR + (M+1)2RTT + tổng số thời

gian rảnh HTTP bền vững

2 RTT để yecircu cầu vagrave nhận file HTML 1 RTT để yecircu cầu vagrave nhận M higravenh ảnh Thời gian đaacutep ứng = (M+1)OR + 3RTT + tổng số thời gian

rảnh HTTP khocircng bền vững với X kết nối song song

Giả sử MX lagrave số nguyecircn 1 TCP kết nối cho file MX thiết lập caacutec kết nối song song cho caacutec higravenh ảnh Thời gian đaacutep ứng = (M+1)OR + (MX + 1)2RTT + tổng số

thời gian rảnh

Transport Layer 3-110

02468

101214161820

28Kbps

100Kbps

1Mbps

10Mbps

non-persistent

persistent

parallel non-persistent

HTTP thời gian đaacutep ứng (giacircy)RTT = 100 msec O = 5 Kbytes M=10 vagrave X=5

Với băng thocircng thấp thời gian kết nối amp đaacutep ứng trội hơn thời gian truyền

Caacutec kết nối bền vững chỉ cho sự cải thiện khocircng đaacuteng kể trecircn caacutec kết nối song song

Transport Layer 3-111

0

10

20

30

40

50

60

70

28Kbps

100Kbps

1Mbps

10Mbps

non-persistent

persistent

parallel non-persistent

HTTP thời gian đaacutep ứng (giacircy)

RTT =1 sec O = 5 Kbytes M=10 and X=5

Với RTT lớn hơn thời gian đaacutep ứng trội hơn thời gian trễ chờ thiết lập kết nốiTCP amp khởi động chậm Caacutec kết nối bền vững bacircy giờ cho thấy cải thiện rotilde rệt đặc biệtvới caacutec mạng băng thocircng cao

Transport Layer 3-112

Chương 3 Tổng kết caacutec nguyecircn lyacute của caacutec

dịch vụ lớp transport multiplexing

demultiplexing truyền dữ liệu tin cậy điều khiển luồng điều khiển tắc nghẽn

khởi tạo vagrave hiện thực trong Internet UDP TCP

Tiếp theo nghiecircn cứu xong

caacutec vấn đề ldquongoagravei biecircnrdquo (caacutec lớp application transport)

chuẩn bị vagraveo phần ldquolotildeirdquo của mạng

  • Slide 1
  • Chương 3 Lớp Transport
  • Chương 3 Nội dung trigravenh bagravey
  • Caacutec dịch vụ vagrave giao thức Transport
  • Lớp Transport với lớp network
  • Caacutec giao thức lớp transport trecircn Internet
  • Slide 7
  • Multiplexingdemultiplexing
  • Demultiplexing lagravem việc như thế nagraveo
  • Demultiplexing khocircng kết nối
  • Demultiplexing khocircng kết nối (tiếp)
  • Demultiplexing hướng kết nối
  • Demultiplexing hướng kết nối (tiếp)
  • Demultiplexing hướng kết nối Threaded Web Server
  • Slide 15
  • UDP User Datagram Protocol [RFC 768]
  • UDP (tt)
  • UDP checksum
  • Viacute dụ Checksum
  • Slide 20
  • Caacutec nguyecircn lyacute truyền dữ liệu tin cậy
  • Slide 22
  • Slide 23
  • Truyền dữ liệu tin cậy
  • Slide 25
  • Rdt10 truyền dữ liệu tin cậy trecircn 1 kecircnh truyền tin cậy
  • Rdt20 kecircnh với caacutec lỗi
  • rdt20 đặc tả FSM
  • rdt20 hoạt động khi khocircng lỗi
  • rdt20 hoạt động khi coacute lỗi
  • rdt20 coacute lỗ hổng nghiecircm trọng
  • rdt21 người gửi quản lyacute caacutec ACKNAK bị hỏng
  • Slide 33
  • rdt21 thảo luận
  • rdt22 một giao thức khocircng cần NAK
  • rdt22 gửi nhận caacutec mảnh
  • rdt30 caacutec kecircnh với lỗi vagrave mất maacutet
  • rdt30 gửi
  • hagravenh động của rdt30
  • Slide 40
  • Hiệu suất của rdt30
  • rdt30 hoạt động dừng-vagrave-chờ
  • Caacutec giao thức Pipelined
  • Pipelining độ khả dụng tăng
  • Go-Back-N
  • GBN becircn gửi mở rộng FSM
  • GBN becircn nhận mở rộng FSM
  • GBN hoạt động
  • Lặp coacute lựa chọn
  • Lặp coacute lựa chọn caacutec cửa sổ gửi nhận
  • Slide 51
  • Hoạt động của lặp coacute lựa chọn
  • Lặp coacute lựa chọn tigravenh trạng khoacute giải quyết
  • Slide 54
  • TCP Tổng quan RFCs 793 1122 1323 2018 2581
  • TCP cấu truacutec đoạn
  • Caacutec số thứ tự TCP vagrave ACK
  • TCP Round Trip Time vagraveTimeout
  • TCP Round Trip Time vagrave Timeout
  • Viacute dụ đaacutenh giaacute RTT
  • Slide 61
  • TCP truyền dữ liệu tin cậy
  • TCP caacutec sự kiện
  • TCP becircn gửi (đơn giản)
  • TCP caacutec tigravenh huống truyền lại
  • TCP caacutec tigravenh huống truyền lại (tt)
  • TCP sinh ra ACK [RFC 1122 RFC 2581]
  • Truyền lại nhanh
  • Giải thuật truyền lại nhanh
  • Slide 70
  • TCP điều khiển luồng
  • TCP điều khiển luồng caacutech lagravem
  • Slide 73
  • TCP quản lyacute kết nối
  • TCP quản lyacute kết nối (tt)
  • Slide 76
  • Slide 77
  • Slide 78
  • Caacutec nguyecircn lyacute điều khiển tắc nghẽn
  • Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 1
  • Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 2
  • Slide 82
  • Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 3
  • Slide 84
  • Caacutec caacutech tiếp cận đối với điều khiển tắc nghẽn
  • Viacute dụ điều khiển tắc nghẽn ATM ABR
  • Slide 87
  • Slide 88
  • TCP điều khiển tắc nghẽn additive tăng lecircn multiplicative giảm xuống
  • TCP điều khiển tắc nghẽn chi tiết
  • TCP khởi động chậm
  • TCP khởi động chậm (tt)
  • Tinh chế
  • Tinh chế nhận biết mất maacutet
  • Tổng kết TCP điều khiển tắc nghẽn
  • TCP điều khiển tắc nghẽn becircn gửi
  • TCP throughput
  • TCP tương lai
  • TCP tiacutenh cocircng bằng
  • Tại sao phải TCP cocircng bằng
  • TCP tiacutenh cocircng bằng (tt)
  • Mocirc higravenh trễ
  • Cửa sổ tắc nghẽn cố định (1)
  • Cửa sổ tắc nghẽn cố định (2)
  • TCP Mocirc higravenh trễ Khởi động chậm (1)
  • TCP Mocirc higravenh trễ Khởi động chậm (2)
  • TCP Mocirc higravenh trễ(3)
  • TCP Mocirc higravenh trễ (4)
  • HTTP Mocirc higravenh
  • Slide 110
  • Slide 111
  • Chương 3 Tổng kết

Transport Layer 3-86

Viacute dụ điều khiển tắc nghẽn ATM ABR

ABR tốc độ bit sẵn sagraveng

ldquodịch vụ mềm dẻordquo nếu đường gửi ldquochưa

hếtrdquo becircn gửi sẽ dugraveng

băng thocircng sẵn sagraveng nếu đường gửi tắc

nghẽn becircn gửi điều tiết với

tốc độ tối thiểu

RM (resource management)

gửi bởi becircn gửi rải raacutec với caacutec ocirc dữ liệu

caacutec bit trong ocirc thiết lập bởi caacutec switch bit NI khocircng tăng tốc độ

(tắc nghẽn nhẹ) bit CI tắc nghẽn rotilde rệt

Caacutec ocirc RM được trả về becircn gửi từ becircn nhận với nguyecircn vẹn caacutec bit

Transport Layer 3-87

Viacute dụ điều khiển tắc nghẽn ATM ABR

trường 2-byte ER trong ocirc RM switch đatilde tắc nghẽn coacute thể coacute giaacute trị ER thấp hơn trong ocirc tốc độ gửi do đoacute coacute thể được hỗ trợ tối đa trecircn đường

EFCI bit trong caacutec ocirc dữ liệu được cagravei giaacute trị 1 trong switch đatilde tắc nghẽn nếu ocirc dữ liệu đứng trước ocirc RM coacute cagravei EFCI becircn gửi sẽ cagravei

bit CI trong ocirc RM trả về

Transport Layer 3-88

Chương 3 Nội dung trigravenh bagravey

31 Caacutec dịch vụ lớp Transport

32 Multiplexing vagrave demultiplexing

33 Vận chuyển khocircng kết nối UDP

34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy

35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối

36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn

37 Điều khiển tắc nghẽn TCP

Transport Layer 3-89

TCP điều khiển tắc nghẽn additive tăng lecircn multiplicative giảm xuống

8 Kbytes

16 Kbytes

24 Kbytes

time

congestionwindow

Caacutech tiếp cận tăng tốc độ truyền (kiacutech thước cửa sổ) tigravem khả năng băng thocircng coacute thể cho đến khi coacute mất maacutet xảy ra additive tăng lecircn tăng CongWin bởi 1 MSS

mỗi RTT cho đến khi coacute mất maacutet xảy ra multiplicative giảm xuống bỏ CongWin trong

nửa giai đoạn sau khi mất maacutet

timekiacutech

thư

ớc

cửa

sổ

tắc

nghẽ

n

Tigravem kiếm băng thocircng

Transport Layer 3-90

TCP điều khiển tắc nghẽn chi tiết

becircn gửi hạn chế việc truyền LastByteSent-LastByteAcked

CongWin Cocircng thức

CongWin thay đổi chức năng lagrave nhận biết tắc nghẽn trecircn mạng

Lagravem thế nagraveo becircn gửi nhận biết tắc nghẽn

mất maacutet xảy ra = timeout hoặc 3 ack trugraveng lặp

becircn gửi giảm tốc độ (CongWin) sau khi mất maacutet xảy ra

3 cơ chế AIMD khởi động chậm thận trọng sau khi coacute

caacutec sự kiện timeout

tốc độ = CongWin

RTT Bytess

Transport Layer 3-91

TCP khởi động chậm

Khi kết nối bắt đầu CongWin = 1 MSS Viacute dụ MSS = 500 bytes

amp RTT = 200 ms tốc độ khởi tạo = 20

kbps

băng thocircng sẵn sagraveng coacute thể gtgt MSSRTT mong muốn nhanh

choacuteng tăng tốc lecircn tốc độ coacute thể đaacutep ứng

Khi kết nối bắt đầu tăng tốc lecircn rất nhanh cho đến khi sự cố mất maacutet xảy ra đầu tiecircn

Transport Layer 3-92

TCP khởi động chậm (tt)

Khi kết nối bắt đầu tăng tốc lecircn rất nhanh cho đến khi sự cố mất maacutet xảy ra đầu tiecircn nhacircn đocirci CongWin mỗi

RTT hoagraven thagravenh nhờ tăng CongWin ứng với mỗi ACK đatilde nhận

Tổng kết tốc độ khởi đầu lagrave chậm nhưng sau đoacute tăng tốc rất nhanh

Host A

1 đoạn

RTT

Host B

thời gian

2 đoạn

4 đoạn

Transport Layer 3-93

Tinh chếHỏi Khi nagraveo việc tăng

tốc trở thagravenh tuyến tiacutenh

Trả lời Khi CongWin đạt đến 12 giaacute trị của noacute trước khi timeout

Hiện thực Ngưỡng thay đổi Tại thời điểm coacute sự cố

mất maacutet ngưỡng được cagravei giaacute trị bằng frac12 của CongWin ngay trước đoacute

Transport Layer 3-94

Tinh chế nhận biết mất maacutet

Sau 3 ACK trugraveng lặp CongWin sẽ giảm 12 kiacutech thước cửa sổ

tăng tuyến tiacutenh nhưng sau sự cố

timeout CongWin thay giaacute trị

bằng 1 MSS kiacutech thước cửa sổ

tăng cấp lũy thừa khi đến một ngưỡng

thigrave tăng tuyến tiacutenh

3 ACK trugraveng nhau chỉ ra khả năng truyền của mạng timeout chỉ thị ldquonhiều cảnh baacuteordquo về tigravenh huống tắc nghẽn

Nguyecircn lyacute

Transport Layer 3-95

Tổng kết TCP điều khiển tắc nghẽn

Khi CongWin dưới Threshold becircn gửi đang trong giai đoạn khởi động chậm kiacutech thước cửa sổ tăng nhanh theo cấp lũy thừa

Khi CongWin trecircn Threshold becircn gửi đang trong giai đoạn traacutenh tắc nghẽn kiacutech thước cửa sổ tăng nhanh theo cấp tuyến tiacutenh

Khi coacute 3 ACK trugraveng lặp xảy ra Threshold = CongWin2 vagrave CongWin = Threshold

Khi timeout xảy ra Threshold = CongWin2 vagrave CongWin = 1 MSS

Transport Layer 3-96

TCP điều khiển tắc nghẽn becircn gửi

Trạng thaacutei Sự kiện TCP becircn gửi hagravenh động Diễn giải

Slow Start (SS)-Khởi động chậm

ACK baacuteo nhận cho dữ liệu chưa ACK trước đoacute

CongWin = CongWin + MSS If (CongWin gt Threshold) cagravei đặt trạng thaacutei ldquoTraacutenh tắc nghẽnrdquo

Hậu quả lagravem tăng gấp đocirci CongWin mỗi RTT

CongestionAvoidance (CA) ndashTraacutenh tắc nghẽn

ACK baacuteo nhận cho dữ liệu chưa ACK trước đoacute

CongWin = CongWin+MSS (MSSCongWin)

Additive tăng lecircn lagravem tăng CongWin lecircn 1 MSS mỗi RTT

SS hoặc CA Sự cố mất maacutet xảy ra khi thấy coacute 3 ACK trugraveng lặp

Threshold = CongWin2 CongWin = Thresholdcagravei đặt trạng thaacutei ldquoTraacutenh tắc nghẽnrdquo

Khocirci phục nhanh hiện thực giảm xuống multiplicative CongWin sẽ khocircng giảm xuống dưới 1 MSS

SS hoặc CA Timeout Threshold = CongWin2 CongWin = 1 MSScagravei đặt trạng thaacutei ldquoKhởi động chậmrdquo

Vagraveo chế độ ldquoKhởi động chậmrdquo

SS hoặc CA ACK trugraveng lặp

Đếm ACK tăng lecircn cho đoạn vừa được ACK

CongWin vagrave Threshold khocircng thay đổi

Transport Layer 3-97

TCP throughput

Throughout trung bigravenh của TCP biểu diễn qua kiacutech thước của sổ vagrave RTT Bỏ qua trạng thaacutei ldquoKhởi động chậmrdquo

Cho W lagrave kiacutech thước cửa sổ khi coacute mất maacutet xảy ra

Khi kiacutech thước cửa sổ = W lưu lượng = WRTT

Chỉ ngay sau khi mất maacutet cửa sổ giảm xuống = W2 lưu lượng = W2RTT

throughout trung bigravenh 075 WRTT

Transport Layer 3-98

TCP tương lai

Viacute dụ caacutec đoạn dagravei 1500 byte RTT 100ms lưu lượng 10 Gbps

Kiacutech thước cửa sổ yecircu cầu W = 83333 đoạn trecircn đường truyền

Lưu lượng trong caacutec trường hợp mất maacutet

L = 210-10

Phiecircn bản mới của TCP dagravenh cho nhu cầu tốc độ cao

LRTT

MSS221

Transport Layer 3-99

Mục tiecircu nếu K phiecircn lagravem việc TCP chia sẻ kết nối cổ chai của băng thocircng lagrave R mỗi phiecircn coacute tốc độ trung bigravenh lagrave RK

TCP kết nối 1

router cổ chaikhả năng R

TCP kết nối 2

TCP tiacutenh cocircng bằng

Transport Layer 3-100

Tại sao phải TCP cocircng bằng

2 phiecircn lagravem việc cạnh tranh nhau Additive tăng lưu lượng tăng multiplicative giảm lưu lượng tương xứng

R

R

chia sẻ băng thocircng bằng nhau

Connection 1 throughputConnect

ion 2

th

roughput

traacutenh tắc nghẽn additive tăng lecircnmất maacutet giảm cửa sổ bằng 12

traacutenh tắc nghẽn additive tăng lecircnmất maacutet giảm cửa sổ bằng 12

Transport Layer 3-101

TCP tiacutenh cocircng bằng (tt)

Tiacutenh cocircng bằng amp UDP nhiều ứng dụng

thường khocircng dugraveng TCP khocircng muốn tốc độ bị

điều tiết do điều khiển tắc nghẽn

Thay bằng dugraveng UDP truyền audiovideo với

tốc độ ổn định chịu được mất maacutet

Nghiecircn cứu giao thức thacircn thiện với TCP

Tiacutenh cocircng bằng amp caacutec kết nối TCP song song

khocircng coacute gigrave ngăn cản việc ứng dụng mở caacutec kết nối song song giữa 2 host

Trigravenh duyệt Web lagravem giống như thế

Viacute dụ tốc độ R hỗ trợ 9 kết nối ứng dụng mới yecircu cầu 1

TCP coacute tốc độ R10 ứng dụng mới yecircu cầu 11

TCP coacute tốc độ R2

Transport Layer 3-102

Mocirc higravenh trễ

Hỏi Mất bao lacircu để nhận 1 đối tượng từ Web server sau khi gửi yecircu cầu

Bỏ qua tắc nghẽn trễ bị ảnh hưởng bởi

thiết lập kết nối TCP trễ truyền dữ liệu khởi động chậm

Notation caacutec giả định Giả sử một kết nối giữa

client vagrave server coacute tốc độ R

S MSS (bits) O kiacutech thước đối tượng

(bits) khocircng truyền lại (khocircng

mất maacutet khocircng hỏng)

Kiacutech thước cửa sổ Giả định 1 cửa sổ tắc

nghẽn cố định coacute W đoạn Sau đoacute cửa sổ thay đổi

mocirc higravenh khởi động chậm

Transport Layer 3-103

Cửa sổ tắc nghẽn cố định (1)

Trường hợp đầu tiecircnWSR gt RTT + SR cho

đoạn đầu tiecircn trong cửa sổ trả về trước khi cửa sổ dữ liệu gửi ACK

trễ = 2RTT + OR

Transport Layer 3-104

Cửa sổ tắc nghẽn cố định (2)

Trường hợp thứ hai WSR lt RTT + SR sent

chờ cho ACK sau khi gửi dữ liệu

trễ = 2RTT + OR+ (K-1)[SR + RTT - WSR]

Transport Layer 3-105

TCP Mocirc higravenh trễ Khởi động chậm (1)

Bacircy giờ giả sử kiacutech thước cửa sổ tăng lecircn tugravey theo quaacute trigravenh khởi động chậm

Độ trễ của một đối tượng sẽ lagrave

R

S

R

SRTTP

R

ORTTLatency P )12(2

trong đoacute P lagrave số lần TCP rảnh ở tại server

1min KQP

- trong đoacute Q lagrave số lần server rảnh nếu đối tượng đatilde khởi tạo kiacutech thước

- vagrave K lagrave số lượng cửa sổ bao trugravem đối tượng

Transport Layer 3-106

TCP Mocirc higravenh trễ Khởi động chậm (2)

RTT

initia te TCPconnection

requestobject

first w indow= S R

second w indow= 2S R

third w indow= 4S R

fourth w indow= 8S R

com pletetransm issionobject

delivered

tim e atc lient

tim e atserver

Viacute dụbull OS = 15 đoạnbull K = 4 cửa sổbull Q = 2bull P = minK-1Q = 2

Server rảnh P=2 lần

Caacutec thagravenh phần trễbull 2 RTT dagravenh cho thiết lập kết nối vagrave yecircu cầubull OR để truyền đối tượngbullthời gian server rảnh bởi vigrave khởi động chậm

Server rảnh P = minK-1Q lần

Transport Layer 3-107

TCP Mocirc higravenh trễ(3)

R

S

R

SRTTPRTT

R

O

R

SRTT

R

SRTT

R

O

idleTimeRTTR

O

P

kP

k

P

pp

)12(][2

]2[2

2delay

1

1

1

th window after the timeidle 2 1 kR

SRTT

R

S k

ementacknowledg receivesserver until

segment send tostartsserver when from time RTTR

S

window kth the transmit totime2 1

R

Sk

RTT

initia te TCPconnection

requestobject

first w indow= S R

second w indow= 2S R

third w indow= 4S R

fourth w indow= 8S R

com pletetransm issionobject

delivered

tim e atc lient

tim e atserver

Transport Layer 3-108

TCP Mocirc higravenh trễ (4)

)1(log

)1(logmin

12min

222min

222min

2

2

110

110

S

OS

Okk

S

Ok

SOk

OSSSkK

k

k

k

caacutech tiacutenh toaacuten Q tương tự (xem HW)

K = số lượng cửa sổ bao trugravem đối tượngLagravem thế nagraveo tiacutenh được K

Transport Layer 3-109

HTTP Mocirc higravenh Giả sử trang Web chứa

1 trang HTML (kiacutech thước O bits) M higravenh ảnh (mỗi caacutei kiacutech thướcO bits)

HTTP khocircng bền vững M+1 TCP kết nối Thời gian đaacutep ứng = (M+1)OR + (M+1)2RTT + tổng số thời

gian rảnh HTTP bền vững

2 RTT để yecircu cầu vagrave nhận file HTML 1 RTT để yecircu cầu vagrave nhận M higravenh ảnh Thời gian đaacutep ứng = (M+1)OR + 3RTT + tổng số thời gian

rảnh HTTP khocircng bền vững với X kết nối song song

Giả sử MX lagrave số nguyecircn 1 TCP kết nối cho file MX thiết lập caacutec kết nối song song cho caacutec higravenh ảnh Thời gian đaacutep ứng = (M+1)OR + (MX + 1)2RTT + tổng số

thời gian rảnh

Transport Layer 3-110

02468

101214161820

28Kbps

100Kbps

1Mbps

10Mbps

non-persistent

persistent

parallel non-persistent

HTTP thời gian đaacutep ứng (giacircy)RTT = 100 msec O = 5 Kbytes M=10 vagrave X=5

Với băng thocircng thấp thời gian kết nối amp đaacutep ứng trội hơn thời gian truyền

Caacutec kết nối bền vững chỉ cho sự cải thiện khocircng đaacuteng kể trecircn caacutec kết nối song song

Transport Layer 3-111

0

10

20

30

40

50

60

70

28Kbps

100Kbps

1Mbps

10Mbps

non-persistent

persistent

parallel non-persistent

HTTP thời gian đaacutep ứng (giacircy)

RTT =1 sec O = 5 Kbytes M=10 and X=5

Với RTT lớn hơn thời gian đaacutep ứng trội hơn thời gian trễ chờ thiết lập kết nốiTCP amp khởi động chậm Caacutec kết nối bền vững bacircy giờ cho thấy cải thiện rotilde rệt đặc biệtvới caacutec mạng băng thocircng cao

Transport Layer 3-112

Chương 3 Tổng kết caacutec nguyecircn lyacute của caacutec

dịch vụ lớp transport multiplexing

demultiplexing truyền dữ liệu tin cậy điều khiển luồng điều khiển tắc nghẽn

khởi tạo vagrave hiện thực trong Internet UDP TCP

Tiếp theo nghiecircn cứu xong

caacutec vấn đề ldquongoagravei biecircnrdquo (caacutec lớp application transport)

chuẩn bị vagraveo phần ldquolotildeirdquo của mạng

  • Slide 1
  • Chương 3 Lớp Transport
  • Chương 3 Nội dung trigravenh bagravey
  • Caacutec dịch vụ vagrave giao thức Transport
  • Lớp Transport với lớp network
  • Caacutec giao thức lớp transport trecircn Internet
  • Slide 7
  • Multiplexingdemultiplexing
  • Demultiplexing lagravem việc như thế nagraveo
  • Demultiplexing khocircng kết nối
  • Demultiplexing khocircng kết nối (tiếp)
  • Demultiplexing hướng kết nối
  • Demultiplexing hướng kết nối (tiếp)
  • Demultiplexing hướng kết nối Threaded Web Server
  • Slide 15
  • UDP User Datagram Protocol [RFC 768]
  • UDP (tt)
  • UDP checksum
  • Viacute dụ Checksum
  • Slide 20
  • Caacutec nguyecircn lyacute truyền dữ liệu tin cậy
  • Slide 22
  • Slide 23
  • Truyền dữ liệu tin cậy
  • Slide 25
  • Rdt10 truyền dữ liệu tin cậy trecircn 1 kecircnh truyền tin cậy
  • Rdt20 kecircnh với caacutec lỗi
  • rdt20 đặc tả FSM
  • rdt20 hoạt động khi khocircng lỗi
  • rdt20 hoạt động khi coacute lỗi
  • rdt20 coacute lỗ hổng nghiecircm trọng
  • rdt21 người gửi quản lyacute caacutec ACKNAK bị hỏng
  • Slide 33
  • rdt21 thảo luận
  • rdt22 một giao thức khocircng cần NAK
  • rdt22 gửi nhận caacutec mảnh
  • rdt30 caacutec kecircnh với lỗi vagrave mất maacutet
  • rdt30 gửi
  • hagravenh động của rdt30
  • Slide 40
  • Hiệu suất của rdt30
  • rdt30 hoạt động dừng-vagrave-chờ
  • Caacutec giao thức Pipelined
  • Pipelining độ khả dụng tăng
  • Go-Back-N
  • GBN becircn gửi mở rộng FSM
  • GBN becircn nhận mở rộng FSM
  • GBN hoạt động
  • Lặp coacute lựa chọn
  • Lặp coacute lựa chọn caacutec cửa sổ gửi nhận
  • Slide 51
  • Hoạt động của lặp coacute lựa chọn
  • Lặp coacute lựa chọn tigravenh trạng khoacute giải quyết
  • Slide 54
  • TCP Tổng quan RFCs 793 1122 1323 2018 2581
  • TCP cấu truacutec đoạn
  • Caacutec số thứ tự TCP vagrave ACK
  • TCP Round Trip Time vagraveTimeout
  • TCP Round Trip Time vagrave Timeout
  • Viacute dụ đaacutenh giaacute RTT
  • Slide 61
  • TCP truyền dữ liệu tin cậy
  • TCP caacutec sự kiện
  • TCP becircn gửi (đơn giản)
  • TCP caacutec tigravenh huống truyền lại
  • TCP caacutec tigravenh huống truyền lại (tt)
  • TCP sinh ra ACK [RFC 1122 RFC 2581]
  • Truyền lại nhanh
  • Giải thuật truyền lại nhanh
  • Slide 70
  • TCP điều khiển luồng
  • TCP điều khiển luồng caacutech lagravem
  • Slide 73
  • TCP quản lyacute kết nối
  • TCP quản lyacute kết nối (tt)
  • Slide 76
  • Slide 77
  • Slide 78
  • Caacutec nguyecircn lyacute điều khiển tắc nghẽn
  • Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 1
  • Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 2
  • Slide 82
  • Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 3
  • Slide 84
  • Caacutec caacutech tiếp cận đối với điều khiển tắc nghẽn
  • Viacute dụ điều khiển tắc nghẽn ATM ABR
  • Slide 87
  • Slide 88
  • TCP điều khiển tắc nghẽn additive tăng lecircn multiplicative giảm xuống
  • TCP điều khiển tắc nghẽn chi tiết
  • TCP khởi động chậm
  • TCP khởi động chậm (tt)
  • Tinh chế
  • Tinh chế nhận biết mất maacutet
  • Tổng kết TCP điều khiển tắc nghẽn
  • TCP điều khiển tắc nghẽn becircn gửi
  • TCP throughput
  • TCP tương lai
  • TCP tiacutenh cocircng bằng
  • Tại sao phải TCP cocircng bằng
  • TCP tiacutenh cocircng bằng (tt)
  • Mocirc higravenh trễ
  • Cửa sổ tắc nghẽn cố định (1)
  • Cửa sổ tắc nghẽn cố định (2)
  • TCP Mocirc higravenh trễ Khởi động chậm (1)
  • TCP Mocirc higravenh trễ Khởi động chậm (2)
  • TCP Mocirc higravenh trễ(3)
  • TCP Mocirc higravenh trễ (4)
  • HTTP Mocirc higravenh
  • Slide 110
  • Slide 111
  • Chương 3 Tổng kết

Transport Layer 3-87

Viacute dụ điều khiển tắc nghẽn ATM ABR

trường 2-byte ER trong ocirc RM switch đatilde tắc nghẽn coacute thể coacute giaacute trị ER thấp hơn trong ocirc tốc độ gửi do đoacute coacute thể được hỗ trợ tối đa trecircn đường

EFCI bit trong caacutec ocirc dữ liệu được cagravei giaacute trị 1 trong switch đatilde tắc nghẽn nếu ocirc dữ liệu đứng trước ocirc RM coacute cagravei EFCI becircn gửi sẽ cagravei

bit CI trong ocirc RM trả về

Transport Layer 3-88

Chương 3 Nội dung trigravenh bagravey

31 Caacutec dịch vụ lớp Transport

32 Multiplexing vagrave demultiplexing

33 Vận chuyển khocircng kết nối UDP

34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy

35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối

36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn

37 Điều khiển tắc nghẽn TCP

Transport Layer 3-89

TCP điều khiển tắc nghẽn additive tăng lecircn multiplicative giảm xuống

8 Kbytes

16 Kbytes

24 Kbytes

time

congestionwindow

Caacutech tiếp cận tăng tốc độ truyền (kiacutech thước cửa sổ) tigravem khả năng băng thocircng coacute thể cho đến khi coacute mất maacutet xảy ra additive tăng lecircn tăng CongWin bởi 1 MSS

mỗi RTT cho đến khi coacute mất maacutet xảy ra multiplicative giảm xuống bỏ CongWin trong

nửa giai đoạn sau khi mất maacutet

timekiacutech

thư

ớc

cửa

sổ

tắc

nghẽ

n

Tigravem kiếm băng thocircng

Transport Layer 3-90

TCP điều khiển tắc nghẽn chi tiết

becircn gửi hạn chế việc truyền LastByteSent-LastByteAcked

CongWin Cocircng thức

CongWin thay đổi chức năng lagrave nhận biết tắc nghẽn trecircn mạng

Lagravem thế nagraveo becircn gửi nhận biết tắc nghẽn

mất maacutet xảy ra = timeout hoặc 3 ack trugraveng lặp

becircn gửi giảm tốc độ (CongWin) sau khi mất maacutet xảy ra

3 cơ chế AIMD khởi động chậm thận trọng sau khi coacute

caacutec sự kiện timeout

tốc độ = CongWin

RTT Bytess

Transport Layer 3-91

TCP khởi động chậm

Khi kết nối bắt đầu CongWin = 1 MSS Viacute dụ MSS = 500 bytes

amp RTT = 200 ms tốc độ khởi tạo = 20

kbps

băng thocircng sẵn sagraveng coacute thể gtgt MSSRTT mong muốn nhanh

choacuteng tăng tốc lecircn tốc độ coacute thể đaacutep ứng

Khi kết nối bắt đầu tăng tốc lecircn rất nhanh cho đến khi sự cố mất maacutet xảy ra đầu tiecircn

Transport Layer 3-92

TCP khởi động chậm (tt)

Khi kết nối bắt đầu tăng tốc lecircn rất nhanh cho đến khi sự cố mất maacutet xảy ra đầu tiecircn nhacircn đocirci CongWin mỗi

RTT hoagraven thagravenh nhờ tăng CongWin ứng với mỗi ACK đatilde nhận

Tổng kết tốc độ khởi đầu lagrave chậm nhưng sau đoacute tăng tốc rất nhanh

Host A

1 đoạn

RTT

Host B

thời gian

2 đoạn

4 đoạn

Transport Layer 3-93

Tinh chếHỏi Khi nagraveo việc tăng

tốc trở thagravenh tuyến tiacutenh

Trả lời Khi CongWin đạt đến 12 giaacute trị của noacute trước khi timeout

Hiện thực Ngưỡng thay đổi Tại thời điểm coacute sự cố

mất maacutet ngưỡng được cagravei giaacute trị bằng frac12 của CongWin ngay trước đoacute

Transport Layer 3-94

Tinh chế nhận biết mất maacutet

Sau 3 ACK trugraveng lặp CongWin sẽ giảm 12 kiacutech thước cửa sổ

tăng tuyến tiacutenh nhưng sau sự cố

timeout CongWin thay giaacute trị

bằng 1 MSS kiacutech thước cửa sổ

tăng cấp lũy thừa khi đến một ngưỡng

thigrave tăng tuyến tiacutenh

3 ACK trugraveng nhau chỉ ra khả năng truyền của mạng timeout chỉ thị ldquonhiều cảnh baacuteordquo về tigravenh huống tắc nghẽn

Nguyecircn lyacute

Transport Layer 3-95

Tổng kết TCP điều khiển tắc nghẽn

Khi CongWin dưới Threshold becircn gửi đang trong giai đoạn khởi động chậm kiacutech thước cửa sổ tăng nhanh theo cấp lũy thừa

Khi CongWin trecircn Threshold becircn gửi đang trong giai đoạn traacutenh tắc nghẽn kiacutech thước cửa sổ tăng nhanh theo cấp tuyến tiacutenh

Khi coacute 3 ACK trugraveng lặp xảy ra Threshold = CongWin2 vagrave CongWin = Threshold

Khi timeout xảy ra Threshold = CongWin2 vagrave CongWin = 1 MSS

Transport Layer 3-96

TCP điều khiển tắc nghẽn becircn gửi

Trạng thaacutei Sự kiện TCP becircn gửi hagravenh động Diễn giải

Slow Start (SS)-Khởi động chậm

ACK baacuteo nhận cho dữ liệu chưa ACK trước đoacute

CongWin = CongWin + MSS If (CongWin gt Threshold) cagravei đặt trạng thaacutei ldquoTraacutenh tắc nghẽnrdquo

Hậu quả lagravem tăng gấp đocirci CongWin mỗi RTT

CongestionAvoidance (CA) ndashTraacutenh tắc nghẽn

ACK baacuteo nhận cho dữ liệu chưa ACK trước đoacute

CongWin = CongWin+MSS (MSSCongWin)

Additive tăng lecircn lagravem tăng CongWin lecircn 1 MSS mỗi RTT

SS hoặc CA Sự cố mất maacutet xảy ra khi thấy coacute 3 ACK trugraveng lặp

Threshold = CongWin2 CongWin = Thresholdcagravei đặt trạng thaacutei ldquoTraacutenh tắc nghẽnrdquo

Khocirci phục nhanh hiện thực giảm xuống multiplicative CongWin sẽ khocircng giảm xuống dưới 1 MSS

SS hoặc CA Timeout Threshold = CongWin2 CongWin = 1 MSScagravei đặt trạng thaacutei ldquoKhởi động chậmrdquo

Vagraveo chế độ ldquoKhởi động chậmrdquo

SS hoặc CA ACK trugraveng lặp

Đếm ACK tăng lecircn cho đoạn vừa được ACK

CongWin vagrave Threshold khocircng thay đổi

Transport Layer 3-97

TCP throughput

Throughout trung bigravenh của TCP biểu diễn qua kiacutech thước của sổ vagrave RTT Bỏ qua trạng thaacutei ldquoKhởi động chậmrdquo

Cho W lagrave kiacutech thước cửa sổ khi coacute mất maacutet xảy ra

Khi kiacutech thước cửa sổ = W lưu lượng = WRTT

Chỉ ngay sau khi mất maacutet cửa sổ giảm xuống = W2 lưu lượng = W2RTT

throughout trung bigravenh 075 WRTT

Transport Layer 3-98

TCP tương lai

Viacute dụ caacutec đoạn dagravei 1500 byte RTT 100ms lưu lượng 10 Gbps

Kiacutech thước cửa sổ yecircu cầu W = 83333 đoạn trecircn đường truyền

Lưu lượng trong caacutec trường hợp mất maacutet

L = 210-10

Phiecircn bản mới của TCP dagravenh cho nhu cầu tốc độ cao

LRTT

MSS221

Transport Layer 3-99

Mục tiecircu nếu K phiecircn lagravem việc TCP chia sẻ kết nối cổ chai của băng thocircng lagrave R mỗi phiecircn coacute tốc độ trung bigravenh lagrave RK

TCP kết nối 1

router cổ chaikhả năng R

TCP kết nối 2

TCP tiacutenh cocircng bằng

Transport Layer 3-100

Tại sao phải TCP cocircng bằng

2 phiecircn lagravem việc cạnh tranh nhau Additive tăng lưu lượng tăng multiplicative giảm lưu lượng tương xứng

R

R

chia sẻ băng thocircng bằng nhau

Connection 1 throughputConnect

ion 2

th

roughput

traacutenh tắc nghẽn additive tăng lecircnmất maacutet giảm cửa sổ bằng 12

traacutenh tắc nghẽn additive tăng lecircnmất maacutet giảm cửa sổ bằng 12

Transport Layer 3-101

TCP tiacutenh cocircng bằng (tt)

Tiacutenh cocircng bằng amp UDP nhiều ứng dụng

thường khocircng dugraveng TCP khocircng muốn tốc độ bị

điều tiết do điều khiển tắc nghẽn

Thay bằng dugraveng UDP truyền audiovideo với

tốc độ ổn định chịu được mất maacutet

Nghiecircn cứu giao thức thacircn thiện với TCP

Tiacutenh cocircng bằng amp caacutec kết nối TCP song song

khocircng coacute gigrave ngăn cản việc ứng dụng mở caacutec kết nối song song giữa 2 host

Trigravenh duyệt Web lagravem giống như thế

Viacute dụ tốc độ R hỗ trợ 9 kết nối ứng dụng mới yecircu cầu 1

TCP coacute tốc độ R10 ứng dụng mới yecircu cầu 11

TCP coacute tốc độ R2

Transport Layer 3-102

Mocirc higravenh trễ

Hỏi Mất bao lacircu để nhận 1 đối tượng từ Web server sau khi gửi yecircu cầu

Bỏ qua tắc nghẽn trễ bị ảnh hưởng bởi

thiết lập kết nối TCP trễ truyền dữ liệu khởi động chậm

Notation caacutec giả định Giả sử một kết nối giữa

client vagrave server coacute tốc độ R

S MSS (bits) O kiacutech thước đối tượng

(bits) khocircng truyền lại (khocircng

mất maacutet khocircng hỏng)

Kiacutech thước cửa sổ Giả định 1 cửa sổ tắc

nghẽn cố định coacute W đoạn Sau đoacute cửa sổ thay đổi

mocirc higravenh khởi động chậm

Transport Layer 3-103

Cửa sổ tắc nghẽn cố định (1)

Trường hợp đầu tiecircnWSR gt RTT + SR cho

đoạn đầu tiecircn trong cửa sổ trả về trước khi cửa sổ dữ liệu gửi ACK

trễ = 2RTT + OR

Transport Layer 3-104

Cửa sổ tắc nghẽn cố định (2)

Trường hợp thứ hai WSR lt RTT + SR sent

chờ cho ACK sau khi gửi dữ liệu

trễ = 2RTT + OR+ (K-1)[SR + RTT - WSR]

Transport Layer 3-105

TCP Mocirc higravenh trễ Khởi động chậm (1)

Bacircy giờ giả sử kiacutech thước cửa sổ tăng lecircn tugravey theo quaacute trigravenh khởi động chậm

Độ trễ của một đối tượng sẽ lagrave

R

S

R

SRTTP

R

ORTTLatency P )12(2

trong đoacute P lagrave số lần TCP rảnh ở tại server

1min KQP

- trong đoacute Q lagrave số lần server rảnh nếu đối tượng đatilde khởi tạo kiacutech thước

- vagrave K lagrave số lượng cửa sổ bao trugravem đối tượng

Transport Layer 3-106

TCP Mocirc higravenh trễ Khởi động chậm (2)

RTT

initia te TCPconnection

requestobject

first w indow= S R

second w indow= 2S R

third w indow= 4S R

fourth w indow= 8S R

com pletetransm issionobject

delivered

tim e atc lient

tim e atserver

Viacute dụbull OS = 15 đoạnbull K = 4 cửa sổbull Q = 2bull P = minK-1Q = 2

Server rảnh P=2 lần

Caacutec thagravenh phần trễbull 2 RTT dagravenh cho thiết lập kết nối vagrave yecircu cầubull OR để truyền đối tượngbullthời gian server rảnh bởi vigrave khởi động chậm

Server rảnh P = minK-1Q lần

Transport Layer 3-107

TCP Mocirc higravenh trễ(3)

R

S

R

SRTTPRTT

R

O

R

SRTT

R

SRTT

R

O

idleTimeRTTR

O

P

kP

k

P

pp

)12(][2

]2[2

2delay

1

1

1

th window after the timeidle 2 1 kR

SRTT

R

S k

ementacknowledg receivesserver until

segment send tostartsserver when from time RTTR

S

window kth the transmit totime2 1

R

Sk

RTT

initia te TCPconnection

requestobject

first w indow= S R

second w indow= 2S R

third w indow= 4S R

fourth w indow= 8S R

com pletetransm issionobject

delivered

tim e atc lient

tim e atserver

Transport Layer 3-108

TCP Mocirc higravenh trễ (4)

)1(log

)1(logmin

12min

222min

222min

2

2

110

110

S

OS

Okk

S

Ok

SOk

OSSSkK

k

k

k

caacutech tiacutenh toaacuten Q tương tự (xem HW)

K = số lượng cửa sổ bao trugravem đối tượngLagravem thế nagraveo tiacutenh được K

Transport Layer 3-109

HTTP Mocirc higravenh Giả sử trang Web chứa

1 trang HTML (kiacutech thước O bits) M higravenh ảnh (mỗi caacutei kiacutech thướcO bits)

HTTP khocircng bền vững M+1 TCP kết nối Thời gian đaacutep ứng = (M+1)OR + (M+1)2RTT + tổng số thời

gian rảnh HTTP bền vững

2 RTT để yecircu cầu vagrave nhận file HTML 1 RTT để yecircu cầu vagrave nhận M higravenh ảnh Thời gian đaacutep ứng = (M+1)OR + 3RTT + tổng số thời gian

rảnh HTTP khocircng bền vững với X kết nối song song

Giả sử MX lagrave số nguyecircn 1 TCP kết nối cho file MX thiết lập caacutec kết nối song song cho caacutec higravenh ảnh Thời gian đaacutep ứng = (M+1)OR + (MX + 1)2RTT + tổng số

thời gian rảnh

Transport Layer 3-110

02468

101214161820

28Kbps

100Kbps

1Mbps

10Mbps

non-persistent

persistent

parallel non-persistent

HTTP thời gian đaacutep ứng (giacircy)RTT = 100 msec O = 5 Kbytes M=10 vagrave X=5

Với băng thocircng thấp thời gian kết nối amp đaacutep ứng trội hơn thời gian truyền

Caacutec kết nối bền vững chỉ cho sự cải thiện khocircng đaacuteng kể trecircn caacutec kết nối song song

Transport Layer 3-111

0

10

20

30

40

50

60

70

28Kbps

100Kbps

1Mbps

10Mbps

non-persistent

persistent

parallel non-persistent

HTTP thời gian đaacutep ứng (giacircy)

RTT =1 sec O = 5 Kbytes M=10 and X=5

Với RTT lớn hơn thời gian đaacutep ứng trội hơn thời gian trễ chờ thiết lập kết nốiTCP amp khởi động chậm Caacutec kết nối bền vững bacircy giờ cho thấy cải thiện rotilde rệt đặc biệtvới caacutec mạng băng thocircng cao

Transport Layer 3-112

Chương 3 Tổng kết caacutec nguyecircn lyacute của caacutec

dịch vụ lớp transport multiplexing

demultiplexing truyền dữ liệu tin cậy điều khiển luồng điều khiển tắc nghẽn

khởi tạo vagrave hiện thực trong Internet UDP TCP

Tiếp theo nghiecircn cứu xong

caacutec vấn đề ldquongoagravei biecircnrdquo (caacutec lớp application transport)

chuẩn bị vagraveo phần ldquolotildeirdquo của mạng

  • Slide 1
  • Chương 3 Lớp Transport
  • Chương 3 Nội dung trigravenh bagravey
  • Caacutec dịch vụ vagrave giao thức Transport
  • Lớp Transport với lớp network
  • Caacutec giao thức lớp transport trecircn Internet
  • Slide 7
  • Multiplexingdemultiplexing
  • Demultiplexing lagravem việc như thế nagraveo
  • Demultiplexing khocircng kết nối
  • Demultiplexing khocircng kết nối (tiếp)
  • Demultiplexing hướng kết nối
  • Demultiplexing hướng kết nối (tiếp)
  • Demultiplexing hướng kết nối Threaded Web Server
  • Slide 15
  • UDP User Datagram Protocol [RFC 768]
  • UDP (tt)
  • UDP checksum
  • Viacute dụ Checksum
  • Slide 20
  • Caacutec nguyecircn lyacute truyền dữ liệu tin cậy
  • Slide 22
  • Slide 23
  • Truyền dữ liệu tin cậy
  • Slide 25
  • Rdt10 truyền dữ liệu tin cậy trecircn 1 kecircnh truyền tin cậy
  • Rdt20 kecircnh với caacutec lỗi
  • rdt20 đặc tả FSM
  • rdt20 hoạt động khi khocircng lỗi
  • rdt20 hoạt động khi coacute lỗi
  • rdt20 coacute lỗ hổng nghiecircm trọng
  • rdt21 người gửi quản lyacute caacutec ACKNAK bị hỏng
  • Slide 33
  • rdt21 thảo luận
  • rdt22 một giao thức khocircng cần NAK
  • rdt22 gửi nhận caacutec mảnh
  • rdt30 caacutec kecircnh với lỗi vagrave mất maacutet
  • rdt30 gửi
  • hagravenh động của rdt30
  • Slide 40
  • Hiệu suất của rdt30
  • rdt30 hoạt động dừng-vagrave-chờ
  • Caacutec giao thức Pipelined
  • Pipelining độ khả dụng tăng
  • Go-Back-N
  • GBN becircn gửi mở rộng FSM
  • GBN becircn nhận mở rộng FSM
  • GBN hoạt động
  • Lặp coacute lựa chọn
  • Lặp coacute lựa chọn caacutec cửa sổ gửi nhận
  • Slide 51
  • Hoạt động của lặp coacute lựa chọn
  • Lặp coacute lựa chọn tigravenh trạng khoacute giải quyết
  • Slide 54
  • TCP Tổng quan RFCs 793 1122 1323 2018 2581
  • TCP cấu truacutec đoạn
  • Caacutec số thứ tự TCP vagrave ACK
  • TCP Round Trip Time vagraveTimeout
  • TCP Round Trip Time vagrave Timeout
  • Viacute dụ đaacutenh giaacute RTT
  • Slide 61
  • TCP truyền dữ liệu tin cậy
  • TCP caacutec sự kiện
  • TCP becircn gửi (đơn giản)
  • TCP caacutec tigravenh huống truyền lại
  • TCP caacutec tigravenh huống truyền lại (tt)
  • TCP sinh ra ACK [RFC 1122 RFC 2581]
  • Truyền lại nhanh
  • Giải thuật truyền lại nhanh
  • Slide 70
  • TCP điều khiển luồng
  • TCP điều khiển luồng caacutech lagravem
  • Slide 73
  • TCP quản lyacute kết nối
  • TCP quản lyacute kết nối (tt)
  • Slide 76
  • Slide 77
  • Slide 78
  • Caacutec nguyecircn lyacute điều khiển tắc nghẽn
  • Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 1
  • Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 2
  • Slide 82
  • Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 3
  • Slide 84
  • Caacutec caacutech tiếp cận đối với điều khiển tắc nghẽn
  • Viacute dụ điều khiển tắc nghẽn ATM ABR
  • Slide 87
  • Slide 88
  • TCP điều khiển tắc nghẽn additive tăng lecircn multiplicative giảm xuống
  • TCP điều khiển tắc nghẽn chi tiết
  • TCP khởi động chậm
  • TCP khởi động chậm (tt)
  • Tinh chế
  • Tinh chế nhận biết mất maacutet
  • Tổng kết TCP điều khiển tắc nghẽn
  • TCP điều khiển tắc nghẽn becircn gửi
  • TCP throughput
  • TCP tương lai
  • TCP tiacutenh cocircng bằng
  • Tại sao phải TCP cocircng bằng
  • TCP tiacutenh cocircng bằng (tt)
  • Mocirc higravenh trễ
  • Cửa sổ tắc nghẽn cố định (1)
  • Cửa sổ tắc nghẽn cố định (2)
  • TCP Mocirc higravenh trễ Khởi động chậm (1)
  • TCP Mocirc higravenh trễ Khởi động chậm (2)
  • TCP Mocirc higravenh trễ(3)
  • TCP Mocirc higravenh trễ (4)
  • HTTP Mocirc higravenh
  • Slide 110
  • Slide 111
  • Chương 3 Tổng kết

Transport Layer 3-88

Chương 3 Nội dung trigravenh bagravey

31 Caacutec dịch vụ lớp Transport

32 Multiplexing vagrave demultiplexing

33 Vận chuyển khocircng kết nối UDP

34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy

35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối

36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn

37 Điều khiển tắc nghẽn TCP

Transport Layer 3-89

TCP điều khiển tắc nghẽn additive tăng lecircn multiplicative giảm xuống

8 Kbytes

16 Kbytes

24 Kbytes

time

congestionwindow

Caacutech tiếp cận tăng tốc độ truyền (kiacutech thước cửa sổ) tigravem khả năng băng thocircng coacute thể cho đến khi coacute mất maacutet xảy ra additive tăng lecircn tăng CongWin bởi 1 MSS

mỗi RTT cho đến khi coacute mất maacutet xảy ra multiplicative giảm xuống bỏ CongWin trong

nửa giai đoạn sau khi mất maacutet

timekiacutech

thư

ớc

cửa

sổ

tắc

nghẽ

n

Tigravem kiếm băng thocircng

Transport Layer 3-90

TCP điều khiển tắc nghẽn chi tiết

becircn gửi hạn chế việc truyền LastByteSent-LastByteAcked

CongWin Cocircng thức

CongWin thay đổi chức năng lagrave nhận biết tắc nghẽn trecircn mạng

Lagravem thế nagraveo becircn gửi nhận biết tắc nghẽn

mất maacutet xảy ra = timeout hoặc 3 ack trugraveng lặp

becircn gửi giảm tốc độ (CongWin) sau khi mất maacutet xảy ra

3 cơ chế AIMD khởi động chậm thận trọng sau khi coacute

caacutec sự kiện timeout

tốc độ = CongWin

RTT Bytess

Transport Layer 3-91

TCP khởi động chậm

Khi kết nối bắt đầu CongWin = 1 MSS Viacute dụ MSS = 500 bytes

amp RTT = 200 ms tốc độ khởi tạo = 20

kbps

băng thocircng sẵn sagraveng coacute thể gtgt MSSRTT mong muốn nhanh

choacuteng tăng tốc lecircn tốc độ coacute thể đaacutep ứng

Khi kết nối bắt đầu tăng tốc lecircn rất nhanh cho đến khi sự cố mất maacutet xảy ra đầu tiecircn

Transport Layer 3-92

TCP khởi động chậm (tt)

Khi kết nối bắt đầu tăng tốc lecircn rất nhanh cho đến khi sự cố mất maacutet xảy ra đầu tiecircn nhacircn đocirci CongWin mỗi

RTT hoagraven thagravenh nhờ tăng CongWin ứng với mỗi ACK đatilde nhận

Tổng kết tốc độ khởi đầu lagrave chậm nhưng sau đoacute tăng tốc rất nhanh

Host A

1 đoạn

RTT

Host B

thời gian

2 đoạn

4 đoạn

Transport Layer 3-93

Tinh chếHỏi Khi nagraveo việc tăng

tốc trở thagravenh tuyến tiacutenh

Trả lời Khi CongWin đạt đến 12 giaacute trị của noacute trước khi timeout

Hiện thực Ngưỡng thay đổi Tại thời điểm coacute sự cố

mất maacutet ngưỡng được cagravei giaacute trị bằng frac12 của CongWin ngay trước đoacute

Transport Layer 3-94

Tinh chế nhận biết mất maacutet

Sau 3 ACK trugraveng lặp CongWin sẽ giảm 12 kiacutech thước cửa sổ

tăng tuyến tiacutenh nhưng sau sự cố

timeout CongWin thay giaacute trị

bằng 1 MSS kiacutech thước cửa sổ

tăng cấp lũy thừa khi đến một ngưỡng

thigrave tăng tuyến tiacutenh

3 ACK trugraveng nhau chỉ ra khả năng truyền của mạng timeout chỉ thị ldquonhiều cảnh baacuteordquo về tigravenh huống tắc nghẽn

Nguyecircn lyacute

Transport Layer 3-95

Tổng kết TCP điều khiển tắc nghẽn

Khi CongWin dưới Threshold becircn gửi đang trong giai đoạn khởi động chậm kiacutech thước cửa sổ tăng nhanh theo cấp lũy thừa

Khi CongWin trecircn Threshold becircn gửi đang trong giai đoạn traacutenh tắc nghẽn kiacutech thước cửa sổ tăng nhanh theo cấp tuyến tiacutenh

Khi coacute 3 ACK trugraveng lặp xảy ra Threshold = CongWin2 vagrave CongWin = Threshold

Khi timeout xảy ra Threshold = CongWin2 vagrave CongWin = 1 MSS

Transport Layer 3-96

TCP điều khiển tắc nghẽn becircn gửi

Trạng thaacutei Sự kiện TCP becircn gửi hagravenh động Diễn giải

Slow Start (SS)-Khởi động chậm

ACK baacuteo nhận cho dữ liệu chưa ACK trước đoacute

CongWin = CongWin + MSS If (CongWin gt Threshold) cagravei đặt trạng thaacutei ldquoTraacutenh tắc nghẽnrdquo

Hậu quả lagravem tăng gấp đocirci CongWin mỗi RTT

CongestionAvoidance (CA) ndashTraacutenh tắc nghẽn

ACK baacuteo nhận cho dữ liệu chưa ACK trước đoacute

CongWin = CongWin+MSS (MSSCongWin)

Additive tăng lecircn lagravem tăng CongWin lecircn 1 MSS mỗi RTT

SS hoặc CA Sự cố mất maacutet xảy ra khi thấy coacute 3 ACK trugraveng lặp

Threshold = CongWin2 CongWin = Thresholdcagravei đặt trạng thaacutei ldquoTraacutenh tắc nghẽnrdquo

Khocirci phục nhanh hiện thực giảm xuống multiplicative CongWin sẽ khocircng giảm xuống dưới 1 MSS

SS hoặc CA Timeout Threshold = CongWin2 CongWin = 1 MSScagravei đặt trạng thaacutei ldquoKhởi động chậmrdquo

Vagraveo chế độ ldquoKhởi động chậmrdquo

SS hoặc CA ACK trugraveng lặp

Đếm ACK tăng lecircn cho đoạn vừa được ACK

CongWin vagrave Threshold khocircng thay đổi

Transport Layer 3-97

TCP throughput

Throughout trung bigravenh của TCP biểu diễn qua kiacutech thước của sổ vagrave RTT Bỏ qua trạng thaacutei ldquoKhởi động chậmrdquo

Cho W lagrave kiacutech thước cửa sổ khi coacute mất maacutet xảy ra

Khi kiacutech thước cửa sổ = W lưu lượng = WRTT

Chỉ ngay sau khi mất maacutet cửa sổ giảm xuống = W2 lưu lượng = W2RTT

throughout trung bigravenh 075 WRTT

Transport Layer 3-98

TCP tương lai

Viacute dụ caacutec đoạn dagravei 1500 byte RTT 100ms lưu lượng 10 Gbps

Kiacutech thước cửa sổ yecircu cầu W = 83333 đoạn trecircn đường truyền

Lưu lượng trong caacutec trường hợp mất maacutet

L = 210-10

Phiecircn bản mới của TCP dagravenh cho nhu cầu tốc độ cao

LRTT

MSS221

Transport Layer 3-99

Mục tiecircu nếu K phiecircn lagravem việc TCP chia sẻ kết nối cổ chai của băng thocircng lagrave R mỗi phiecircn coacute tốc độ trung bigravenh lagrave RK

TCP kết nối 1

router cổ chaikhả năng R

TCP kết nối 2

TCP tiacutenh cocircng bằng

Transport Layer 3-100

Tại sao phải TCP cocircng bằng

2 phiecircn lagravem việc cạnh tranh nhau Additive tăng lưu lượng tăng multiplicative giảm lưu lượng tương xứng

R

R

chia sẻ băng thocircng bằng nhau

Connection 1 throughputConnect

ion 2

th

roughput

traacutenh tắc nghẽn additive tăng lecircnmất maacutet giảm cửa sổ bằng 12

traacutenh tắc nghẽn additive tăng lecircnmất maacutet giảm cửa sổ bằng 12

Transport Layer 3-101

TCP tiacutenh cocircng bằng (tt)

Tiacutenh cocircng bằng amp UDP nhiều ứng dụng

thường khocircng dugraveng TCP khocircng muốn tốc độ bị

điều tiết do điều khiển tắc nghẽn

Thay bằng dugraveng UDP truyền audiovideo với

tốc độ ổn định chịu được mất maacutet

Nghiecircn cứu giao thức thacircn thiện với TCP

Tiacutenh cocircng bằng amp caacutec kết nối TCP song song

khocircng coacute gigrave ngăn cản việc ứng dụng mở caacutec kết nối song song giữa 2 host

Trigravenh duyệt Web lagravem giống như thế

Viacute dụ tốc độ R hỗ trợ 9 kết nối ứng dụng mới yecircu cầu 1

TCP coacute tốc độ R10 ứng dụng mới yecircu cầu 11

TCP coacute tốc độ R2

Transport Layer 3-102

Mocirc higravenh trễ

Hỏi Mất bao lacircu để nhận 1 đối tượng từ Web server sau khi gửi yecircu cầu

Bỏ qua tắc nghẽn trễ bị ảnh hưởng bởi

thiết lập kết nối TCP trễ truyền dữ liệu khởi động chậm

Notation caacutec giả định Giả sử một kết nối giữa

client vagrave server coacute tốc độ R

S MSS (bits) O kiacutech thước đối tượng

(bits) khocircng truyền lại (khocircng

mất maacutet khocircng hỏng)

Kiacutech thước cửa sổ Giả định 1 cửa sổ tắc

nghẽn cố định coacute W đoạn Sau đoacute cửa sổ thay đổi

mocirc higravenh khởi động chậm

Transport Layer 3-103

Cửa sổ tắc nghẽn cố định (1)

Trường hợp đầu tiecircnWSR gt RTT + SR cho

đoạn đầu tiecircn trong cửa sổ trả về trước khi cửa sổ dữ liệu gửi ACK

trễ = 2RTT + OR

Transport Layer 3-104

Cửa sổ tắc nghẽn cố định (2)

Trường hợp thứ hai WSR lt RTT + SR sent

chờ cho ACK sau khi gửi dữ liệu

trễ = 2RTT + OR+ (K-1)[SR + RTT - WSR]

Transport Layer 3-105

TCP Mocirc higravenh trễ Khởi động chậm (1)

Bacircy giờ giả sử kiacutech thước cửa sổ tăng lecircn tugravey theo quaacute trigravenh khởi động chậm

Độ trễ của một đối tượng sẽ lagrave

R

S

R

SRTTP

R

ORTTLatency P )12(2

trong đoacute P lagrave số lần TCP rảnh ở tại server

1min KQP

- trong đoacute Q lagrave số lần server rảnh nếu đối tượng đatilde khởi tạo kiacutech thước

- vagrave K lagrave số lượng cửa sổ bao trugravem đối tượng

Transport Layer 3-106

TCP Mocirc higravenh trễ Khởi động chậm (2)

RTT

initia te TCPconnection

requestobject

first w indow= S R

second w indow= 2S R

third w indow= 4S R

fourth w indow= 8S R

com pletetransm issionobject

delivered

tim e atc lient

tim e atserver

Viacute dụbull OS = 15 đoạnbull K = 4 cửa sổbull Q = 2bull P = minK-1Q = 2

Server rảnh P=2 lần

Caacutec thagravenh phần trễbull 2 RTT dagravenh cho thiết lập kết nối vagrave yecircu cầubull OR để truyền đối tượngbullthời gian server rảnh bởi vigrave khởi động chậm

Server rảnh P = minK-1Q lần

Transport Layer 3-107

TCP Mocirc higravenh trễ(3)

R

S

R

SRTTPRTT

R

O

R

SRTT

R

SRTT

R

O

idleTimeRTTR

O

P

kP

k

P

pp

)12(][2

]2[2

2delay

1

1

1

th window after the timeidle 2 1 kR

SRTT

R

S k

ementacknowledg receivesserver until

segment send tostartsserver when from time RTTR

S

window kth the transmit totime2 1

R

Sk

RTT

initia te TCPconnection

requestobject

first w indow= S R

second w indow= 2S R

third w indow= 4S R

fourth w indow= 8S R

com pletetransm issionobject

delivered

tim e atc lient

tim e atserver

Transport Layer 3-108

TCP Mocirc higravenh trễ (4)

)1(log

)1(logmin

12min

222min

222min

2

2

110

110

S

OS

Okk

S

Ok

SOk

OSSSkK

k

k

k

caacutech tiacutenh toaacuten Q tương tự (xem HW)

K = số lượng cửa sổ bao trugravem đối tượngLagravem thế nagraveo tiacutenh được K

Transport Layer 3-109

HTTP Mocirc higravenh Giả sử trang Web chứa

1 trang HTML (kiacutech thước O bits) M higravenh ảnh (mỗi caacutei kiacutech thướcO bits)

HTTP khocircng bền vững M+1 TCP kết nối Thời gian đaacutep ứng = (M+1)OR + (M+1)2RTT + tổng số thời

gian rảnh HTTP bền vững

2 RTT để yecircu cầu vagrave nhận file HTML 1 RTT để yecircu cầu vagrave nhận M higravenh ảnh Thời gian đaacutep ứng = (M+1)OR + 3RTT + tổng số thời gian

rảnh HTTP khocircng bền vững với X kết nối song song

Giả sử MX lagrave số nguyecircn 1 TCP kết nối cho file MX thiết lập caacutec kết nối song song cho caacutec higravenh ảnh Thời gian đaacutep ứng = (M+1)OR + (MX + 1)2RTT + tổng số

thời gian rảnh

Transport Layer 3-110

02468

101214161820

28Kbps

100Kbps

1Mbps

10Mbps

non-persistent

persistent

parallel non-persistent

HTTP thời gian đaacutep ứng (giacircy)RTT = 100 msec O = 5 Kbytes M=10 vagrave X=5

Với băng thocircng thấp thời gian kết nối amp đaacutep ứng trội hơn thời gian truyền

Caacutec kết nối bền vững chỉ cho sự cải thiện khocircng đaacuteng kể trecircn caacutec kết nối song song

Transport Layer 3-111

0

10

20

30

40

50

60

70

28Kbps

100Kbps

1Mbps

10Mbps

non-persistent

persistent

parallel non-persistent

HTTP thời gian đaacutep ứng (giacircy)

RTT =1 sec O = 5 Kbytes M=10 and X=5

Với RTT lớn hơn thời gian đaacutep ứng trội hơn thời gian trễ chờ thiết lập kết nốiTCP amp khởi động chậm Caacutec kết nối bền vững bacircy giờ cho thấy cải thiện rotilde rệt đặc biệtvới caacutec mạng băng thocircng cao

Transport Layer 3-112

Chương 3 Tổng kết caacutec nguyecircn lyacute của caacutec

dịch vụ lớp transport multiplexing

demultiplexing truyền dữ liệu tin cậy điều khiển luồng điều khiển tắc nghẽn

khởi tạo vagrave hiện thực trong Internet UDP TCP

Tiếp theo nghiecircn cứu xong

caacutec vấn đề ldquongoagravei biecircnrdquo (caacutec lớp application transport)

chuẩn bị vagraveo phần ldquolotildeirdquo của mạng

  • Slide 1
  • Chương 3 Lớp Transport
  • Chương 3 Nội dung trigravenh bagravey
  • Caacutec dịch vụ vagrave giao thức Transport
  • Lớp Transport với lớp network
  • Caacutec giao thức lớp transport trecircn Internet
  • Slide 7
  • Multiplexingdemultiplexing
  • Demultiplexing lagravem việc như thế nagraveo
  • Demultiplexing khocircng kết nối
  • Demultiplexing khocircng kết nối (tiếp)
  • Demultiplexing hướng kết nối
  • Demultiplexing hướng kết nối (tiếp)
  • Demultiplexing hướng kết nối Threaded Web Server
  • Slide 15
  • UDP User Datagram Protocol [RFC 768]
  • UDP (tt)
  • UDP checksum
  • Viacute dụ Checksum
  • Slide 20
  • Caacutec nguyecircn lyacute truyền dữ liệu tin cậy
  • Slide 22
  • Slide 23
  • Truyền dữ liệu tin cậy
  • Slide 25
  • Rdt10 truyền dữ liệu tin cậy trecircn 1 kecircnh truyền tin cậy
  • Rdt20 kecircnh với caacutec lỗi
  • rdt20 đặc tả FSM
  • rdt20 hoạt động khi khocircng lỗi
  • rdt20 hoạt động khi coacute lỗi
  • rdt20 coacute lỗ hổng nghiecircm trọng
  • rdt21 người gửi quản lyacute caacutec ACKNAK bị hỏng
  • Slide 33
  • rdt21 thảo luận
  • rdt22 một giao thức khocircng cần NAK
  • rdt22 gửi nhận caacutec mảnh
  • rdt30 caacutec kecircnh với lỗi vagrave mất maacutet
  • rdt30 gửi
  • hagravenh động của rdt30
  • Slide 40
  • Hiệu suất của rdt30
  • rdt30 hoạt động dừng-vagrave-chờ
  • Caacutec giao thức Pipelined
  • Pipelining độ khả dụng tăng
  • Go-Back-N
  • GBN becircn gửi mở rộng FSM
  • GBN becircn nhận mở rộng FSM
  • GBN hoạt động
  • Lặp coacute lựa chọn
  • Lặp coacute lựa chọn caacutec cửa sổ gửi nhận
  • Slide 51
  • Hoạt động của lặp coacute lựa chọn
  • Lặp coacute lựa chọn tigravenh trạng khoacute giải quyết
  • Slide 54
  • TCP Tổng quan RFCs 793 1122 1323 2018 2581
  • TCP cấu truacutec đoạn
  • Caacutec số thứ tự TCP vagrave ACK
  • TCP Round Trip Time vagraveTimeout
  • TCP Round Trip Time vagrave Timeout
  • Viacute dụ đaacutenh giaacute RTT
  • Slide 61
  • TCP truyền dữ liệu tin cậy
  • TCP caacutec sự kiện
  • TCP becircn gửi (đơn giản)
  • TCP caacutec tigravenh huống truyền lại
  • TCP caacutec tigravenh huống truyền lại (tt)
  • TCP sinh ra ACK [RFC 1122 RFC 2581]
  • Truyền lại nhanh
  • Giải thuật truyền lại nhanh
  • Slide 70
  • TCP điều khiển luồng
  • TCP điều khiển luồng caacutech lagravem
  • Slide 73
  • TCP quản lyacute kết nối
  • TCP quản lyacute kết nối (tt)
  • Slide 76
  • Slide 77
  • Slide 78
  • Caacutec nguyecircn lyacute điều khiển tắc nghẽn
  • Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 1
  • Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 2
  • Slide 82
  • Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 3
  • Slide 84
  • Caacutec caacutech tiếp cận đối với điều khiển tắc nghẽn
  • Viacute dụ điều khiển tắc nghẽn ATM ABR
  • Slide 87
  • Slide 88
  • TCP điều khiển tắc nghẽn additive tăng lecircn multiplicative giảm xuống
  • TCP điều khiển tắc nghẽn chi tiết
  • TCP khởi động chậm
  • TCP khởi động chậm (tt)
  • Tinh chế
  • Tinh chế nhận biết mất maacutet
  • Tổng kết TCP điều khiển tắc nghẽn
  • TCP điều khiển tắc nghẽn becircn gửi
  • TCP throughput
  • TCP tương lai
  • TCP tiacutenh cocircng bằng
  • Tại sao phải TCP cocircng bằng
  • TCP tiacutenh cocircng bằng (tt)
  • Mocirc higravenh trễ
  • Cửa sổ tắc nghẽn cố định (1)
  • Cửa sổ tắc nghẽn cố định (2)
  • TCP Mocirc higravenh trễ Khởi động chậm (1)
  • TCP Mocirc higravenh trễ Khởi động chậm (2)
  • TCP Mocirc higravenh trễ(3)
  • TCP Mocirc higravenh trễ (4)
  • HTTP Mocirc higravenh
  • Slide 110
  • Slide 111
  • Chương 3 Tổng kết

Transport Layer 3-89

TCP điều khiển tắc nghẽn additive tăng lecircn multiplicative giảm xuống

8 Kbytes

16 Kbytes

24 Kbytes

time

congestionwindow

Caacutech tiếp cận tăng tốc độ truyền (kiacutech thước cửa sổ) tigravem khả năng băng thocircng coacute thể cho đến khi coacute mất maacutet xảy ra additive tăng lecircn tăng CongWin bởi 1 MSS

mỗi RTT cho đến khi coacute mất maacutet xảy ra multiplicative giảm xuống bỏ CongWin trong

nửa giai đoạn sau khi mất maacutet

timekiacutech

thư

ớc

cửa

sổ

tắc

nghẽ

n

Tigravem kiếm băng thocircng

Transport Layer 3-90

TCP điều khiển tắc nghẽn chi tiết

becircn gửi hạn chế việc truyền LastByteSent-LastByteAcked

CongWin Cocircng thức

CongWin thay đổi chức năng lagrave nhận biết tắc nghẽn trecircn mạng

Lagravem thế nagraveo becircn gửi nhận biết tắc nghẽn

mất maacutet xảy ra = timeout hoặc 3 ack trugraveng lặp

becircn gửi giảm tốc độ (CongWin) sau khi mất maacutet xảy ra

3 cơ chế AIMD khởi động chậm thận trọng sau khi coacute

caacutec sự kiện timeout

tốc độ = CongWin

RTT Bytess

Transport Layer 3-91

TCP khởi động chậm

Khi kết nối bắt đầu CongWin = 1 MSS Viacute dụ MSS = 500 bytes

amp RTT = 200 ms tốc độ khởi tạo = 20

kbps

băng thocircng sẵn sagraveng coacute thể gtgt MSSRTT mong muốn nhanh

choacuteng tăng tốc lecircn tốc độ coacute thể đaacutep ứng

Khi kết nối bắt đầu tăng tốc lecircn rất nhanh cho đến khi sự cố mất maacutet xảy ra đầu tiecircn

Transport Layer 3-92

TCP khởi động chậm (tt)

Khi kết nối bắt đầu tăng tốc lecircn rất nhanh cho đến khi sự cố mất maacutet xảy ra đầu tiecircn nhacircn đocirci CongWin mỗi

RTT hoagraven thagravenh nhờ tăng CongWin ứng với mỗi ACK đatilde nhận

Tổng kết tốc độ khởi đầu lagrave chậm nhưng sau đoacute tăng tốc rất nhanh

Host A

1 đoạn

RTT

Host B

thời gian

2 đoạn

4 đoạn

Transport Layer 3-93

Tinh chếHỏi Khi nagraveo việc tăng

tốc trở thagravenh tuyến tiacutenh

Trả lời Khi CongWin đạt đến 12 giaacute trị của noacute trước khi timeout

Hiện thực Ngưỡng thay đổi Tại thời điểm coacute sự cố

mất maacutet ngưỡng được cagravei giaacute trị bằng frac12 của CongWin ngay trước đoacute

Transport Layer 3-94

Tinh chế nhận biết mất maacutet

Sau 3 ACK trugraveng lặp CongWin sẽ giảm 12 kiacutech thước cửa sổ

tăng tuyến tiacutenh nhưng sau sự cố

timeout CongWin thay giaacute trị

bằng 1 MSS kiacutech thước cửa sổ

tăng cấp lũy thừa khi đến một ngưỡng

thigrave tăng tuyến tiacutenh

3 ACK trugraveng nhau chỉ ra khả năng truyền của mạng timeout chỉ thị ldquonhiều cảnh baacuteordquo về tigravenh huống tắc nghẽn

Nguyecircn lyacute

Transport Layer 3-95

Tổng kết TCP điều khiển tắc nghẽn

Khi CongWin dưới Threshold becircn gửi đang trong giai đoạn khởi động chậm kiacutech thước cửa sổ tăng nhanh theo cấp lũy thừa

Khi CongWin trecircn Threshold becircn gửi đang trong giai đoạn traacutenh tắc nghẽn kiacutech thước cửa sổ tăng nhanh theo cấp tuyến tiacutenh

Khi coacute 3 ACK trugraveng lặp xảy ra Threshold = CongWin2 vagrave CongWin = Threshold

Khi timeout xảy ra Threshold = CongWin2 vagrave CongWin = 1 MSS

Transport Layer 3-96

TCP điều khiển tắc nghẽn becircn gửi

Trạng thaacutei Sự kiện TCP becircn gửi hagravenh động Diễn giải

Slow Start (SS)-Khởi động chậm

ACK baacuteo nhận cho dữ liệu chưa ACK trước đoacute

CongWin = CongWin + MSS If (CongWin gt Threshold) cagravei đặt trạng thaacutei ldquoTraacutenh tắc nghẽnrdquo

Hậu quả lagravem tăng gấp đocirci CongWin mỗi RTT

CongestionAvoidance (CA) ndashTraacutenh tắc nghẽn

ACK baacuteo nhận cho dữ liệu chưa ACK trước đoacute

CongWin = CongWin+MSS (MSSCongWin)

Additive tăng lecircn lagravem tăng CongWin lecircn 1 MSS mỗi RTT

SS hoặc CA Sự cố mất maacutet xảy ra khi thấy coacute 3 ACK trugraveng lặp

Threshold = CongWin2 CongWin = Thresholdcagravei đặt trạng thaacutei ldquoTraacutenh tắc nghẽnrdquo

Khocirci phục nhanh hiện thực giảm xuống multiplicative CongWin sẽ khocircng giảm xuống dưới 1 MSS

SS hoặc CA Timeout Threshold = CongWin2 CongWin = 1 MSScagravei đặt trạng thaacutei ldquoKhởi động chậmrdquo

Vagraveo chế độ ldquoKhởi động chậmrdquo

SS hoặc CA ACK trugraveng lặp

Đếm ACK tăng lecircn cho đoạn vừa được ACK

CongWin vagrave Threshold khocircng thay đổi

Transport Layer 3-97

TCP throughput

Throughout trung bigravenh của TCP biểu diễn qua kiacutech thước của sổ vagrave RTT Bỏ qua trạng thaacutei ldquoKhởi động chậmrdquo

Cho W lagrave kiacutech thước cửa sổ khi coacute mất maacutet xảy ra

Khi kiacutech thước cửa sổ = W lưu lượng = WRTT

Chỉ ngay sau khi mất maacutet cửa sổ giảm xuống = W2 lưu lượng = W2RTT

throughout trung bigravenh 075 WRTT

Transport Layer 3-98

TCP tương lai

Viacute dụ caacutec đoạn dagravei 1500 byte RTT 100ms lưu lượng 10 Gbps

Kiacutech thước cửa sổ yecircu cầu W = 83333 đoạn trecircn đường truyền

Lưu lượng trong caacutec trường hợp mất maacutet

L = 210-10

Phiecircn bản mới của TCP dagravenh cho nhu cầu tốc độ cao

LRTT

MSS221

Transport Layer 3-99

Mục tiecircu nếu K phiecircn lagravem việc TCP chia sẻ kết nối cổ chai của băng thocircng lagrave R mỗi phiecircn coacute tốc độ trung bigravenh lagrave RK

TCP kết nối 1

router cổ chaikhả năng R

TCP kết nối 2

TCP tiacutenh cocircng bằng

Transport Layer 3-100

Tại sao phải TCP cocircng bằng

2 phiecircn lagravem việc cạnh tranh nhau Additive tăng lưu lượng tăng multiplicative giảm lưu lượng tương xứng

R

R

chia sẻ băng thocircng bằng nhau

Connection 1 throughputConnect

ion 2

th

roughput

traacutenh tắc nghẽn additive tăng lecircnmất maacutet giảm cửa sổ bằng 12

traacutenh tắc nghẽn additive tăng lecircnmất maacutet giảm cửa sổ bằng 12

Transport Layer 3-101

TCP tiacutenh cocircng bằng (tt)

Tiacutenh cocircng bằng amp UDP nhiều ứng dụng

thường khocircng dugraveng TCP khocircng muốn tốc độ bị

điều tiết do điều khiển tắc nghẽn

Thay bằng dugraveng UDP truyền audiovideo với

tốc độ ổn định chịu được mất maacutet

Nghiecircn cứu giao thức thacircn thiện với TCP

Tiacutenh cocircng bằng amp caacutec kết nối TCP song song

khocircng coacute gigrave ngăn cản việc ứng dụng mở caacutec kết nối song song giữa 2 host

Trigravenh duyệt Web lagravem giống như thế

Viacute dụ tốc độ R hỗ trợ 9 kết nối ứng dụng mới yecircu cầu 1

TCP coacute tốc độ R10 ứng dụng mới yecircu cầu 11

TCP coacute tốc độ R2

Transport Layer 3-102

Mocirc higravenh trễ

Hỏi Mất bao lacircu để nhận 1 đối tượng từ Web server sau khi gửi yecircu cầu

Bỏ qua tắc nghẽn trễ bị ảnh hưởng bởi

thiết lập kết nối TCP trễ truyền dữ liệu khởi động chậm

Notation caacutec giả định Giả sử một kết nối giữa

client vagrave server coacute tốc độ R

S MSS (bits) O kiacutech thước đối tượng

(bits) khocircng truyền lại (khocircng

mất maacutet khocircng hỏng)

Kiacutech thước cửa sổ Giả định 1 cửa sổ tắc

nghẽn cố định coacute W đoạn Sau đoacute cửa sổ thay đổi

mocirc higravenh khởi động chậm

Transport Layer 3-103

Cửa sổ tắc nghẽn cố định (1)

Trường hợp đầu tiecircnWSR gt RTT + SR cho

đoạn đầu tiecircn trong cửa sổ trả về trước khi cửa sổ dữ liệu gửi ACK

trễ = 2RTT + OR

Transport Layer 3-104

Cửa sổ tắc nghẽn cố định (2)

Trường hợp thứ hai WSR lt RTT + SR sent

chờ cho ACK sau khi gửi dữ liệu

trễ = 2RTT + OR+ (K-1)[SR + RTT - WSR]

Transport Layer 3-105

TCP Mocirc higravenh trễ Khởi động chậm (1)

Bacircy giờ giả sử kiacutech thước cửa sổ tăng lecircn tugravey theo quaacute trigravenh khởi động chậm

Độ trễ của một đối tượng sẽ lagrave

R

S

R

SRTTP

R

ORTTLatency P )12(2

trong đoacute P lagrave số lần TCP rảnh ở tại server

1min KQP

- trong đoacute Q lagrave số lần server rảnh nếu đối tượng đatilde khởi tạo kiacutech thước

- vagrave K lagrave số lượng cửa sổ bao trugravem đối tượng

Transport Layer 3-106

TCP Mocirc higravenh trễ Khởi động chậm (2)

RTT

initia te TCPconnection

requestobject

first w indow= S R

second w indow= 2S R

third w indow= 4S R

fourth w indow= 8S R

com pletetransm issionobject

delivered

tim e atc lient

tim e atserver

Viacute dụbull OS = 15 đoạnbull K = 4 cửa sổbull Q = 2bull P = minK-1Q = 2

Server rảnh P=2 lần

Caacutec thagravenh phần trễbull 2 RTT dagravenh cho thiết lập kết nối vagrave yecircu cầubull OR để truyền đối tượngbullthời gian server rảnh bởi vigrave khởi động chậm

Server rảnh P = minK-1Q lần

Transport Layer 3-107

TCP Mocirc higravenh trễ(3)

R

S

R

SRTTPRTT

R

O

R

SRTT

R

SRTT

R

O

idleTimeRTTR

O

P

kP

k

P

pp

)12(][2

]2[2

2delay

1

1

1

th window after the timeidle 2 1 kR

SRTT

R

S k

ementacknowledg receivesserver until

segment send tostartsserver when from time RTTR

S

window kth the transmit totime2 1

R

Sk

RTT

initia te TCPconnection

requestobject

first w indow= S R

second w indow= 2S R

third w indow= 4S R

fourth w indow= 8S R

com pletetransm issionobject

delivered

tim e atc lient

tim e atserver

Transport Layer 3-108

TCP Mocirc higravenh trễ (4)

)1(log

)1(logmin

12min

222min

222min

2

2

110

110

S

OS

Okk

S

Ok

SOk

OSSSkK

k

k

k

caacutech tiacutenh toaacuten Q tương tự (xem HW)

K = số lượng cửa sổ bao trugravem đối tượngLagravem thế nagraveo tiacutenh được K

Transport Layer 3-109

HTTP Mocirc higravenh Giả sử trang Web chứa

1 trang HTML (kiacutech thước O bits) M higravenh ảnh (mỗi caacutei kiacutech thướcO bits)

HTTP khocircng bền vững M+1 TCP kết nối Thời gian đaacutep ứng = (M+1)OR + (M+1)2RTT + tổng số thời

gian rảnh HTTP bền vững

2 RTT để yecircu cầu vagrave nhận file HTML 1 RTT để yecircu cầu vagrave nhận M higravenh ảnh Thời gian đaacutep ứng = (M+1)OR + 3RTT + tổng số thời gian

rảnh HTTP khocircng bền vững với X kết nối song song

Giả sử MX lagrave số nguyecircn 1 TCP kết nối cho file MX thiết lập caacutec kết nối song song cho caacutec higravenh ảnh Thời gian đaacutep ứng = (M+1)OR + (MX + 1)2RTT + tổng số

thời gian rảnh

Transport Layer 3-110

02468

101214161820

28Kbps

100Kbps

1Mbps

10Mbps

non-persistent

persistent

parallel non-persistent

HTTP thời gian đaacutep ứng (giacircy)RTT = 100 msec O = 5 Kbytes M=10 vagrave X=5

Với băng thocircng thấp thời gian kết nối amp đaacutep ứng trội hơn thời gian truyền

Caacutec kết nối bền vững chỉ cho sự cải thiện khocircng đaacuteng kể trecircn caacutec kết nối song song

Transport Layer 3-111

0

10

20

30

40

50

60

70

28Kbps

100Kbps

1Mbps

10Mbps

non-persistent

persistent

parallel non-persistent

HTTP thời gian đaacutep ứng (giacircy)

RTT =1 sec O = 5 Kbytes M=10 and X=5

Với RTT lớn hơn thời gian đaacutep ứng trội hơn thời gian trễ chờ thiết lập kết nốiTCP amp khởi động chậm Caacutec kết nối bền vững bacircy giờ cho thấy cải thiện rotilde rệt đặc biệtvới caacutec mạng băng thocircng cao

Transport Layer 3-112

Chương 3 Tổng kết caacutec nguyecircn lyacute của caacutec

dịch vụ lớp transport multiplexing

demultiplexing truyền dữ liệu tin cậy điều khiển luồng điều khiển tắc nghẽn

khởi tạo vagrave hiện thực trong Internet UDP TCP

Tiếp theo nghiecircn cứu xong

caacutec vấn đề ldquongoagravei biecircnrdquo (caacutec lớp application transport)

chuẩn bị vagraveo phần ldquolotildeirdquo của mạng

  • Slide 1
  • Chương 3 Lớp Transport
  • Chương 3 Nội dung trigravenh bagravey
  • Caacutec dịch vụ vagrave giao thức Transport
  • Lớp Transport với lớp network
  • Caacutec giao thức lớp transport trecircn Internet
  • Slide 7
  • Multiplexingdemultiplexing
  • Demultiplexing lagravem việc như thế nagraveo
  • Demultiplexing khocircng kết nối
  • Demultiplexing khocircng kết nối (tiếp)
  • Demultiplexing hướng kết nối
  • Demultiplexing hướng kết nối (tiếp)
  • Demultiplexing hướng kết nối Threaded Web Server
  • Slide 15
  • UDP User Datagram Protocol [RFC 768]
  • UDP (tt)
  • UDP checksum
  • Viacute dụ Checksum
  • Slide 20
  • Caacutec nguyecircn lyacute truyền dữ liệu tin cậy
  • Slide 22
  • Slide 23
  • Truyền dữ liệu tin cậy
  • Slide 25
  • Rdt10 truyền dữ liệu tin cậy trecircn 1 kecircnh truyền tin cậy
  • Rdt20 kecircnh với caacutec lỗi
  • rdt20 đặc tả FSM
  • rdt20 hoạt động khi khocircng lỗi
  • rdt20 hoạt động khi coacute lỗi
  • rdt20 coacute lỗ hổng nghiecircm trọng
  • rdt21 người gửi quản lyacute caacutec ACKNAK bị hỏng
  • Slide 33
  • rdt21 thảo luận
  • rdt22 một giao thức khocircng cần NAK
  • rdt22 gửi nhận caacutec mảnh
  • rdt30 caacutec kecircnh với lỗi vagrave mất maacutet
  • rdt30 gửi
  • hagravenh động của rdt30
  • Slide 40
  • Hiệu suất của rdt30
  • rdt30 hoạt động dừng-vagrave-chờ
  • Caacutec giao thức Pipelined
  • Pipelining độ khả dụng tăng
  • Go-Back-N
  • GBN becircn gửi mở rộng FSM
  • GBN becircn nhận mở rộng FSM
  • GBN hoạt động
  • Lặp coacute lựa chọn
  • Lặp coacute lựa chọn caacutec cửa sổ gửi nhận
  • Slide 51
  • Hoạt động của lặp coacute lựa chọn
  • Lặp coacute lựa chọn tigravenh trạng khoacute giải quyết
  • Slide 54
  • TCP Tổng quan RFCs 793 1122 1323 2018 2581
  • TCP cấu truacutec đoạn
  • Caacutec số thứ tự TCP vagrave ACK
  • TCP Round Trip Time vagraveTimeout
  • TCP Round Trip Time vagrave Timeout
  • Viacute dụ đaacutenh giaacute RTT
  • Slide 61
  • TCP truyền dữ liệu tin cậy
  • TCP caacutec sự kiện
  • TCP becircn gửi (đơn giản)
  • TCP caacutec tigravenh huống truyền lại
  • TCP caacutec tigravenh huống truyền lại (tt)
  • TCP sinh ra ACK [RFC 1122 RFC 2581]
  • Truyền lại nhanh
  • Giải thuật truyền lại nhanh
  • Slide 70
  • TCP điều khiển luồng
  • TCP điều khiển luồng caacutech lagravem
  • Slide 73
  • TCP quản lyacute kết nối
  • TCP quản lyacute kết nối (tt)
  • Slide 76
  • Slide 77
  • Slide 78
  • Caacutec nguyecircn lyacute điều khiển tắc nghẽn
  • Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 1
  • Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 2
  • Slide 82
  • Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 3
  • Slide 84
  • Caacutec caacutech tiếp cận đối với điều khiển tắc nghẽn
  • Viacute dụ điều khiển tắc nghẽn ATM ABR
  • Slide 87
  • Slide 88
  • TCP điều khiển tắc nghẽn additive tăng lecircn multiplicative giảm xuống
  • TCP điều khiển tắc nghẽn chi tiết
  • TCP khởi động chậm
  • TCP khởi động chậm (tt)
  • Tinh chế
  • Tinh chế nhận biết mất maacutet
  • Tổng kết TCP điều khiển tắc nghẽn
  • TCP điều khiển tắc nghẽn becircn gửi
  • TCP throughput
  • TCP tương lai
  • TCP tiacutenh cocircng bằng
  • Tại sao phải TCP cocircng bằng
  • TCP tiacutenh cocircng bằng (tt)
  • Mocirc higravenh trễ
  • Cửa sổ tắc nghẽn cố định (1)
  • Cửa sổ tắc nghẽn cố định (2)
  • TCP Mocirc higravenh trễ Khởi động chậm (1)
  • TCP Mocirc higravenh trễ Khởi động chậm (2)
  • TCP Mocirc higravenh trễ(3)
  • TCP Mocirc higravenh trễ (4)
  • HTTP Mocirc higravenh
  • Slide 110
  • Slide 111
  • Chương 3 Tổng kết

Transport Layer 3-90

TCP điều khiển tắc nghẽn chi tiết

becircn gửi hạn chế việc truyền LastByteSent-LastByteAcked

CongWin Cocircng thức

CongWin thay đổi chức năng lagrave nhận biết tắc nghẽn trecircn mạng

Lagravem thế nagraveo becircn gửi nhận biết tắc nghẽn

mất maacutet xảy ra = timeout hoặc 3 ack trugraveng lặp

becircn gửi giảm tốc độ (CongWin) sau khi mất maacutet xảy ra

3 cơ chế AIMD khởi động chậm thận trọng sau khi coacute

caacutec sự kiện timeout

tốc độ = CongWin

RTT Bytess

Transport Layer 3-91

TCP khởi động chậm

Khi kết nối bắt đầu CongWin = 1 MSS Viacute dụ MSS = 500 bytes

amp RTT = 200 ms tốc độ khởi tạo = 20

kbps

băng thocircng sẵn sagraveng coacute thể gtgt MSSRTT mong muốn nhanh

choacuteng tăng tốc lecircn tốc độ coacute thể đaacutep ứng

Khi kết nối bắt đầu tăng tốc lecircn rất nhanh cho đến khi sự cố mất maacutet xảy ra đầu tiecircn

Transport Layer 3-92

TCP khởi động chậm (tt)

Khi kết nối bắt đầu tăng tốc lecircn rất nhanh cho đến khi sự cố mất maacutet xảy ra đầu tiecircn nhacircn đocirci CongWin mỗi

RTT hoagraven thagravenh nhờ tăng CongWin ứng với mỗi ACK đatilde nhận

Tổng kết tốc độ khởi đầu lagrave chậm nhưng sau đoacute tăng tốc rất nhanh

Host A

1 đoạn

RTT

Host B

thời gian

2 đoạn

4 đoạn

Transport Layer 3-93

Tinh chếHỏi Khi nagraveo việc tăng

tốc trở thagravenh tuyến tiacutenh

Trả lời Khi CongWin đạt đến 12 giaacute trị của noacute trước khi timeout

Hiện thực Ngưỡng thay đổi Tại thời điểm coacute sự cố

mất maacutet ngưỡng được cagravei giaacute trị bằng frac12 của CongWin ngay trước đoacute

Transport Layer 3-94

Tinh chế nhận biết mất maacutet

Sau 3 ACK trugraveng lặp CongWin sẽ giảm 12 kiacutech thước cửa sổ

tăng tuyến tiacutenh nhưng sau sự cố

timeout CongWin thay giaacute trị

bằng 1 MSS kiacutech thước cửa sổ

tăng cấp lũy thừa khi đến một ngưỡng

thigrave tăng tuyến tiacutenh

3 ACK trugraveng nhau chỉ ra khả năng truyền của mạng timeout chỉ thị ldquonhiều cảnh baacuteordquo về tigravenh huống tắc nghẽn

Nguyecircn lyacute

Transport Layer 3-95

Tổng kết TCP điều khiển tắc nghẽn

Khi CongWin dưới Threshold becircn gửi đang trong giai đoạn khởi động chậm kiacutech thước cửa sổ tăng nhanh theo cấp lũy thừa

Khi CongWin trecircn Threshold becircn gửi đang trong giai đoạn traacutenh tắc nghẽn kiacutech thước cửa sổ tăng nhanh theo cấp tuyến tiacutenh

Khi coacute 3 ACK trugraveng lặp xảy ra Threshold = CongWin2 vagrave CongWin = Threshold

Khi timeout xảy ra Threshold = CongWin2 vagrave CongWin = 1 MSS

Transport Layer 3-96

TCP điều khiển tắc nghẽn becircn gửi

Trạng thaacutei Sự kiện TCP becircn gửi hagravenh động Diễn giải

Slow Start (SS)-Khởi động chậm

ACK baacuteo nhận cho dữ liệu chưa ACK trước đoacute

CongWin = CongWin + MSS If (CongWin gt Threshold) cagravei đặt trạng thaacutei ldquoTraacutenh tắc nghẽnrdquo

Hậu quả lagravem tăng gấp đocirci CongWin mỗi RTT

CongestionAvoidance (CA) ndashTraacutenh tắc nghẽn

ACK baacuteo nhận cho dữ liệu chưa ACK trước đoacute

CongWin = CongWin+MSS (MSSCongWin)

Additive tăng lecircn lagravem tăng CongWin lecircn 1 MSS mỗi RTT

SS hoặc CA Sự cố mất maacutet xảy ra khi thấy coacute 3 ACK trugraveng lặp

Threshold = CongWin2 CongWin = Thresholdcagravei đặt trạng thaacutei ldquoTraacutenh tắc nghẽnrdquo

Khocirci phục nhanh hiện thực giảm xuống multiplicative CongWin sẽ khocircng giảm xuống dưới 1 MSS

SS hoặc CA Timeout Threshold = CongWin2 CongWin = 1 MSScagravei đặt trạng thaacutei ldquoKhởi động chậmrdquo

Vagraveo chế độ ldquoKhởi động chậmrdquo

SS hoặc CA ACK trugraveng lặp

Đếm ACK tăng lecircn cho đoạn vừa được ACK

CongWin vagrave Threshold khocircng thay đổi

Transport Layer 3-97

TCP throughput

Throughout trung bigravenh của TCP biểu diễn qua kiacutech thước của sổ vagrave RTT Bỏ qua trạng thaacutei ldquoKhởi động chậmrdquo

Cho W lagrave kiacutech thước cửa sổ khi coacute mất maacutet xảy ra

Khi kiacutech thước cửa sổ = W lưu lượng = WRTT

Chỉ ngay sau khi mất maacutet cửa sổ giảm xuống = W2 lưu lượng = W2RTT

throughout trung bigravenh 075 WRTT

Transport Layer 3-98

TCP tương lai

Viacute dụ caacutec đoạn dagravei 1500 byte RTT 100ms lưu lượng 10 Gbps

Kiacutech thước cửa sổ yecircu cầu W = 83333 đoạn trecircn đường truyền

Lưu lượng trong caacutec trường hợp mất maacutet

L = 210-10

Phiecircn bản mới của TCP dagravenh cho nhu cầu tốc độ cao

LRTT

MSS221

Transport Layer 3-99

Mục tiecircu nếu K phiecircn lagravem việc TCP chia sẻ kết nối cổ chai của băng thocircng lagrave R mỗi phiecircn coacute tốc độ trung bigravenh lagrave RK

TCP kết nối 1

router cổ chaikhả năng R

TCP kết nối 2

TCP tiacutenh cocircng bằng

Transport Layer 3-100

Tại sao phải TCP cocircng bằng

2 phiecircn lagravem việc cạnh tranh nhau Additive tăng lưu lượng tăng multiplicative giảm lưu lượng tương xứng

R

R

chia sẻ băng thocircng bằng nhau

Connection 1 throughputConnect

ion 2

th

roughput

traacutenh tắc nghẽn additive tăng lecircnmất maacutet giảm cửa sổ bằng 12

traacutenh tắc nghẽn additive tăng lecircnmất maacutet giảm cửa sổ bằng 12

Transport Layer 3-101

TCP tiacutenh cocircng bằng (tt)

Tiacutenh cocircng bằng amp UDP nhiều ứng dụng

thường khocircng dugraveng TCP khocircng muốn tốc độ bị

điều tiết do điều khiển tắc nghẽn

Thay bằng dugraveng UDP truyền audiovideo với

tốc độ ổn định chịu được mất maacutet

Nghiecircn cứu giao thức thacircn thiện với TCP

Tiacutenh cocircng bằng amp caacutec kết nối TCP song song

khocircng coacute gigrave ngăn cản việc ứng dụng mở caacutec kết nối song song giữa 2 host

Trigravenh duyệt Web lagravem giống như thế

Viacute dụ tốc độ R hỗ trợ 9 kết nối ứng dụng mới yecircu cầu 1

TCP coacute tốc độ R10 ứng dụng mới yecircu cầu 11

TCP coacute tốc độ R2

Transport Layer 3-102

Mocirc higravenh trễ

Hỏi Mất bao lacircu để nhận 1 đối tượng từ Web server sau khi gửi yecircu cầu

Bỏ qua tắc nghẽn trễ bị ảnh hưởng bởi

thiết lập kết nối TCP trễ truyền dữ liệu khởi động chậm

Notation caacutec giả định Giả sử một kết nối giữa

client vagrave server coacute tốc độ R

S MSS (bits) O kiacutech thước đối tượng

(bits) khocircng truyền lại (khocircng

mất maacutet khocircng hỏng)

Kiacutech thước cửa sổ Giả định 1 cửa sổ tắc

nghẽn cố định coacute W đoạn Sau đoacute cửa sổ thay đổi

mocirc higravenh khởi động chậm

Transport Layer 3-103

Cửa sổ tắc nghẽn cố định (1)

Trường hợp đầu tiecircnWSR gt RTT + SR cho

đoạn đầu tiecircn trong cửa sổ trả về trước khi cửa sổ dữ liệu gửi ACK

trễ = 2RTT + OR

Transport Layer 3-104

Cửa sổ tắc nghẽn cố định (2)

Trường hợp thứ hai WSR lt RTT + SR sent

chờ cho ACK sau khi gửi dữ liệu

trễ = 2RTT + OR+ (K-1)[SR + RTT - WSR]

Transport Layer 3-105

TCP Mocirc higravenh trễ Khởi động chậm (1)

Bacircy giờ giả sử kiacutech thước cửa sổ tăng lecircn tugravey theo quaacute trigravenh khởi động chậm

Độ trễ của một đối tượng sẽ lagrave

R

S

R

SRTTP

R

ORTTLatency P )12(2

trong đoacute P lagrave số lần TCP rảnh ở tại server

1min KQP

- trong đoacute Q lagrave số lần server rảnh nếu đối tượng đatilde khởi tạo kiacutech thước

- vagrave K lagrave số lượng cửa sổ bao trugravem đối tượng

Transport Layer 3-106

TCP Mocirc higravenh trễ Khởi động chậm (2)

RTT

initia te TCPconnection

requestobject

first w indow= S R

second w indow= 2S R

third w indow= 4S R

fourth w indow= 8S R

com pletetransm issionobject

delivered

tim e atc lient

tim e atserver

Viacute dụbull OS = 15 đoạnbull K = 4 cửa sổbull Q = 2bull P = minK-1Q = 2

Server rảnh P=2 lần

Caacutec thagravenh phần trễbull 2 RTT dagravenh cho thiết lập kết nối vagrave yecircu cầubull OR để truyền đối tượngbullthời gian server rảnh bởi vigrave khởi động chậm

Server rảnh P = minK-1Q lần

Transport Layer 3-107

TCP Mocirc higravenh trễ(3)

R

S

R

SRTTPRTT

R

O

R

SRTT

R

SRTT

R

O

idleTimeRTTR

O

P

kP

k

P

pp

)12(][2

]2[2

2delay

1

1

1

th window after the timeidle 2 1 kR

SRTT

R

S k

ementacknowledg receivesserver until

segment send tostartsserver when from time RTTR

S

window kth the transmit totime2 1

R

Sk

RTT

initia te TCPconnection

requestobject

first w indow= S R

second w indow= 2S R

third w indow= 4S R

fourth w indow= 8S R

com pletetransm issionobject

delivered

tim e atc lient

tim e atserver

Transport Layer 3-108

TCP Mocirc higravenh trễ (4)

)1(log

)1(logmin

12min

222min

222min

2

2

110

110

S

OS

Okk

S

Ok

SOk

OSSSkK

k

k

k

caacutech tiacutenh toaacuten Q tương tự (xem HW)

K = số lượng cửa sổ bao trugravem đối tượngLagravem thế nagraveo tiacutenh được K

Transport Layer 3-109

HTTP Mocirc higravenh Giả sử trang Web chứa

1 trang HTML (kiacutech thước O bits) M higravenh ảnh (mỗi caacutei kiacutech thướcO bits)

HTTP khocircng bền vững M+1 TCP kết nối Thời gian đaacutep ứng = (M+1)OR + (M+1)2RTT + tổng số thời

gian rảnh HTTP bền vững

2 RTT để yecircu cầu vagrave nhận file HTML 1 RTT để yecircu cầu vagrave nhận M higravenh ảnh Thời gian đaacutep ứng = (M+1)OR + 3RTT + tổng số thời gian

rảnh HTTP khocircng bền vững với X kết nối song song

Giả sử MX lagrave số nguyecircn 1 TCP kết nối cho file MX thiết lập caacutec kết nối song song cho caacutec higravenh ảnh Thời gian đaacutep ứng = (M+1)OR + (MX + 1)2RTT + tổng số

thời gian rảnh

Transport Layer 3-110

02468

101214161820

28Kbps

100Kbps

1Mbps

10Mbps

non-persistent

persistent

parallel non-persistent

HTTP thời gian đaacutep ứng (giacircy)RTT = 100 msec O = 5 Kbytes M=10 vagrave X=5

Với băng thocircng thấp thời gian kết nối amp đaacutep ứng trội hơn thời gian truyền

Caacutec kết nối bền vững chỉ cho sự cải thiện khocircng đaacuteng kể trecircn caacutec kết nối song song

Transport Layer 3-111

0

10

20

30

40

50

60

70

28Kbps

100Kbps

1Mbps

10Mbps

non-persistent

persistent

parallel non-persistent

HTTP thời gian đaacutep ứng (giacircy)

RTT =1 sec O = 5 Kbytes M=10 and X=5

Với RTT lớn hơn thời gian đaacutep ứng trội hơn thời gian trễ chờ thiết lập kết nốiTCP amp khởi động chậm Caacutec kết nối bền vững bacircy giờ cho thấy cải thiện rotilde rệt đặc biệtvới caacutec mạng băng thocircng cao

Transport Layer 3-112

Chương 3 Tổng kết caacutec nguyecircn lyacute của caacutec

dịch vụ lớp transport multiplexing

demultiplexing truyền dữ liệu tin cậy điều khiển luồng điều khiển tắc nghẽn

khởi tạo vagrave hiện thực trong Internet UDP TCP

Tiếp theo nghiecircn cứu xong

caacutec vấn đề ldquongoagravei biecircnrdquo (caacutec lớp application transport)

chuẩn bị vagraveo phần ldquolotildeirdquo của mạng

  • Slide 1
  • Chương 3 Lớp Transport
  • Chương 3 Nội dung trigravenh bagravey
  • Caacutec dịch vụ vagrave giao thức Transport
  • Lớp Transport với lớp network
  • Caacutec giao thức lớp transport trecircn Internet
  • Slide 7
  • Multiplexingdemultiplexing
  • Demultiplexing lagravem việc như thế nagraveo
  • Demultiplexing khocircng kết nối
  • Demultiplexing khocircng kết nối (tiếp)
  • Demultiplexing hướng kết nối
  • Demultiplexing hướng kết nối (tiếp)
  • Demultiplexing hướng kết nối Threaded Web Server
  • Slide 15
  • UDP User Datagram Protocol [RFC 768]
  • UDP (tt)
  • UDP checksum
  • Viacute dụ Checksum
  • Slide 20
  • Caacutec nguyecircn lyacute truyền dữ liệu tin cậy
  • Slide 22
  • Slide 23
  • Truyền dữ liệu tin cậy
  • Slide 25
  • Rdt10 truyền dữ liệu tin cậy trecircn 1 kecircnh truyền tin cậy
  • Rdt20 kecircnh với caacutec lỗi
  • rdt20 đặc tả FSM
  • rdt20 hoạt động khi khocircng lỗi
  • rdt20 hoạt động khi coacute lỗi
  • rdt20 coacute lỗ hổng nghiecircm trọng
  • rdt21 người gửi quản lyacute caacutec ACKNAK bị hỏng
  • Slide 33
  • rdt21 thảo luận
  • rdt22 một giao thức khocircng cần NAK
  • rdt22 gửi nhận caacutec mảnh
  • rdt30 caacutec kecircnh với lỗi vagrave mất maacutet
  • rdt30 gửi
  • hagravenh động của rdt30
  • Slide 40
  • Hiệu suất của rdt30
  • rdt30 hoạt động dừng-vagrave-chờ
  • Caacutec giao thức Pipelined
  • Pipelining độ khả dụng tăng
  • Go-Back-N
  • GBN becircn gửi mở rộng FSM
  • GBN becircn nhận mở rộng FSM
  • GBN hoạt động
  • Lặp coacute lựa chọn
  • Lặp coacute lựa chọn caacutec cửa sổ gửi nhận
  • Slide 51
  • Hoạt động của lặp coacute lựa chọn
  • Lặp coacute lựa chọn tigravenh trạng khoacute giải quyết
  • Slide 54
  • TCP Tổng quan RFCs 793 1122 1323 2018 2581
  • TCP cấu truacutec đoạn
  • Caacutec số thứ tự TCP vagrave ACK
  • TCP Round Trip Time vagraveTimeout
  • TCP Round Trip Time vagrave Timeout
  • Viacute dụ đaacutenh giaacute RTT
  • Slide 61
  • TCP truyền dữ liệu tin cậy
  • TCP caacutec sự kiện
  • TCP becircn gửi (đơn giản)
  • TCP caacutec tigravenh huống truyền lại
  • TCP caacutec tigravenh huống truyền lại (tt)
  • TCP sinh ra ACK [RFC 1122 RFC 2581]
  • Truyền lại nhanh
  • Giải thuật truyền lại nhanh
  • Slide 70
  • TCP điều khiển luồng
  • TCP điều khiển luồng caacutech lagravem
  • Slide 73
  • TCP quản lyacute kết nối
  • TCP quản lyacute kết nối (tt)
  • Slide 76
  • Slide 77
  • Slide 78
  • Caacutec nguyecircn lyacute điều khiển tắc nghẽn
  • Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 1
  • Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 2
  • Slide 82
  • Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 3
  • Slide 84
  • Caacutec caacutech tiếp cận đối với điều khiển tắc nghẽn
  • Viacute dụ điều khiển tắc nghẽn ATM ABR
  • Slide 87
  • Slide 88
  • TCP điều khiển tắc nghẽn additive tăng lecircn multiplicative giảm xuống
  • TCP điều khiển tắc nghẽn chi tiết
  • TCP khởi động chậm
  • TCP khởi động chậm (tt)
  • Tinh chế
  • Tinh chế nhận biết mất maacutet
  • Tổng kết TCP điều khiển tắc nghẽn
  • TCP điều khiển tắc nghẽn becircn gửi
  • TCP throughput
  • TCP tương lai
  • TCP tiacutenh cocircng bằng
  • Tại sao phải TCP cocircng bằng
  • TCP tiacutenh cocircng bằng (tt)
  • Mocirc higravenh trễ
  • Cửa sổ tắc nghẽn cố định (1)
  • Cửa sổ tắc nghẽn cố định (2)
  • TCP Mocirc higravenh trễ Khởi động chậm (1)
  • TCP Mocirc higravenh trễ Khởi động chậm (2)
  • TCP Mocirc higravenh trễ(3)
  • TCP Mocirc higravenh trễ (4)
  • HTTP Mocirc higravenh
  • Slide 110
  • Slide 111
  • Chương 3 Tổng kết

Transport Layer 3-91

TCP khởi động chậm

Khi kết nối bắt đầu CongWin = 1 MSS Viacute dụ MSS = 500 bytes

amp RTT = 200 ms tốc độ khởi tạo = 20

kbps

băng thocircng sẵn sagraveng coacute thể gtgt MSSRTT mong muốn nhanh

choacuteng tăng tốc lecircn tốc độ coacute thể đaacutep ứng

Khi kết nối bắt đầu tăng tốc lecircn rất nhanh cho đến khi sự cố mất maacutet xảy ra đầu tiecircn

Transport Layer 3-92

TCP khởi động chậm (tt)

Khi kết nối bắt đầu tăng tốc lecircn rất nhanh cho đến khi sự cố mất maacutet xảy ra đầu tiecircn nhacircn đocirci CongWin mỗi

RTT hoagraven thagravenh nhờ tăng CongWin ứng với mỗi ACK đatilde nhận

Tổng kết tốc độ khởi đầu lagrave chậm nhưng sau đoacute tăng tốc rất nhanh

Host A

1 đoạn

RTT

Host B

thời gian

2 đoạn

4 đoạn

Transport Layer 3-93

Tinh chếHỏi Khi nagraveo việc tăng

tốc trở thagravenh tuyến tiacutenh

Trả lời Khi CongWin đạt đến 12 giaacute trị của noacute trước khi timeout

Hiện thực Ngưỡng thay đổi Tại thời điểm coacute sự cố

mất maacutet ngưỡng được cagravei giaacute trị bằng frac12 của CongWin ngay trước đoacute

Transport Layer 3-94

Tinh chế nhận biết mất maacutet

Sau 3 ACK trugraveng lặp CongWin sẽ giảm 12 kiacutech thước cửa sổ

tăng tuyến tiacutenh nhưng sau sự cố

timeout CongWin thay giaacute trị

bằng 1 MSS kiacutech thước cửa sổ

tăng cấp lũy thừa khi đến một ngưỡng

thigrave tăng tuyến tiacutenh

3 ACK trugraveng nhau chỉ ra khả năng truyền của mạng timeout chỉ thị ldquonhiều cảnh baacuteordquo về tigravenh huống tắc nghẽn

Nguyecircn lyacute

Transport Layer 3-95

Tổng kết TCP điều khiển tắc nghẽn

Khi CongWin dưới Threshold becircn gửi đang trong giai đoạn khởi động chậm kiacutech thước cửa sổ tăng nhanh theo cấp lũy thừa

Khi CongWin trecircn Threshold becircn gửi đang trong giai đoạn traacutenh tắc nghẽn kiacutech thước cửa sổ tăng nhanh theo cấp tuyến tiacutenh

Khi coacute 3 ACK trugraveng lặp xảy ra Threshold = CongWin2 vagrave CongWin = Threshold

Khi timeout xảy ra Threshold = CongWin2 vagrave CongWin = 1 MSS

Transport Layer 3-96

TCP điều khiển tắc nghẽn becircn gửi

Trạng thaacutei Sự kiện TCP becircn gửi hagravenh động Diễn giải

Slow Start (SS)-Khởi động chậm

ACK baacuteo nhận cho dữ liệu chưa ACK trước đoacute

CongWin = CongWin + MSS If (CongWin gt Threshold) cagravei đặt trạng thaacutei ldquoTraacutenh tắc nghẽnrdquo

Hậu quả lagravem tăng gấp đocirci CongWin mỗi RTT

CongestionAvoidance (CA) ndashTraacutenh tắc nghẽn

ACK baacuteo nhận cho dữ liệu chưa ACK trước đoacute

CongWin = CongWin+MSS (MSSCongWin)

Additive tăng lecircn lagravem tăng CongWin lecircn 1 MSS mỗi RTT

SS hoặc CA Sự cố mất maacutet xảy ra khi thấy coacute 3 ACK trugraveng lặp

Threshold = CongWin2 CongWin = Thresholdcagravei đặt trạng thaacutei ldquoTraacutenh tắc nghẽnrdquo

Khocirci phục nhanh hiện thực giảm xuống multiplicative CongWin sẽ khocircng giảm xuống dưới 1 MSS

SS hoặc CA Timeout Threshold = CongWin2 CongWin = 1 MSScagravei đặt trạng thaacutei ldquoKhởi động chậmrdquo

Vagraveo chế độ ldquoKhởi động chậmrdquo

SS hoặc CA ACK trugraveng lặp

Đếm ACK tăng lecircn cho đoạn vừa được ACK

CongWin vagrave Threshold khocircng thay đổi

Transport Layer 3-97

TCP throughput

Throughout trung bigravenh của TCP biểu diễn qua kiacutech thước của sổ vagrave RTT Bỏ qua trạng thaacutei ldquoKhởi động chậmrdquo

Cho W lagrave kiacutech thước cửa sổ khi coacute mất maacutet xảy ra

Khi kiacutech thước cửa sổ = W lưu lượng = WRTT

Chỉ ngay sau khi mất maacutet cửa sổ giảm xuống = W2 lưu lượng = W2RTT

throughout trung bigravenh 075 WRTT

Transport Layer 3-98

TCP tương lai

Viacute dụ caacutec đoạn dagravei 1500 byte RTT 100ms lưu lượng 10 Gbps

Kiacutech thước cửa sổ yecircu cầu W = 83333 đoạn trecircn đường truyền

Lưu lượng trong caacutec trường hợp mất maacutet

L = 210-10

Phiecircn bản mới của TCP dagravenh cho nhu cầu tốc độ cao

LRTT

MSS221

Transport Layer 3-99

Mục tiecircu nếu K phiecircn lagravem việc TCP chia sẻ kết nối cổ chai của băng thocircng lagrave R mỗi phiecircn coacute tốc độ trung bigravenh lagrave RK

TCP kết nối 1

router cổ chaikhả năng R

TCP kết nối 2

TCP tiacutenh cocircng bằng

Transport Layer 3-100

Tại sao phải TCP cocircng bằng

2 phiecircn lagravem việc cạnh tranh nhau Additive tăng lưu lượng tăng multiplicative giảm lưu lượng tương xứng

R

R

chia sẻ băng thocircng bằng nhau

Connection 1 throughputConnect

ion 2

th

roughput

traacutenh tắc nghẽn additive tăng lecircnmất maacutet giảm cửa sổ bằng 12

traacutenh tắc nghẽn additive tăng lecircnmất maacutet giảm cửa sổ bằng 12

Transport Layer 3-101

TCP tiacutenh cocircng bằng (tt)

Tiacutenh cocircng bằng amp UDP nhiều ứng dụng

thường khocircng dugraveng TCP khocircng muốn tốc độ bị

điều tiết do điều khiển tắc nghẽn

Thay bằng dugraveng UDP truyền audiovideo với

tốc độ ổn định chịu được mất maacutet

Nghiecircn cứu giao thức thacircn thiện với TCP

Tiacutenh cocircng bằng amp caacutec kết nối TCP song song

khocircng coacute gigrave ngăn cản việc ứng dụng mở caacutec kết nối song song giữa 2 host

Trigravenh duyệt Web lagravem giống như thế

Viacute dụ tốc độ R hỗ trợ 9 kết nối ứng dụng mới yecircu cầu 1

TCP coacute tốc độ R10 ứng dụng mới yecircu cầu 11

TCP coacute tốc độ R2

Transport Layer 3-102

Mocirc higravenh trễ

Hỏi Mất bao lacircu để nhận 1 đối tượng từ Web server sau khi gửi yecircu cầu

Bỏ qua tắc nghẽn trễ bị ảnh hưởng bởi

thiết lập kết nối TCP trễ truyền dữ liệu khởi động chậm

Notation caacutec giả định Giả sử một kết nối giữa

client vagrave server coacute tốc độ R

S MSS (bits) O kiacutech thước đối tượng

(bits) khocircng truyền lại (khocircng

mất maacutet khocircng hỏng)

Kiacutech thước cửa sổ Giả định 1 cửa sổ tắc

nghẽn cố định coacute W đoạn Sau đoacute cửa sổ thay đổi

mocirc higravenh khởi động chậm

Transport Layer 3-103

Cửa sổ tắc nghẽn cố định (1)

Trường hợp đầu tiecircnWSR gt RTT + SR cho

đoạn đầu tiecircn trong cửa sổ trả về trước khi cửa sổ dữ liệu gửi ACK

trễ = 2RTT + OR

Transport Layer 3-104

Cửa sổ tắc nghẽn cố định (2)

Trường hợp thứ hai WSR lt RTT + SR sent

chờ cho ACK sau khi gửi dữ liệu

trễ = 2RTT + OR+ (K-1)[SR + RTT - WSR]

Transport Layer 3-105

TCP Mocirc higravenh trễ Khởi động chậm (1)

Bacircy giờ giả sử kiacutech thước cửa sổ tăng lecircn tugravey theo quaacute trigravenh khởi động chậm

Độ trễ của một đối tượng sẽ lagrave

R

S

R

SRTTP

R

ORTTLatency P )12(2

trong đoacute P lagrave số lần TCP rảnh ở tại server

1min KQP

- trong đoacute Q lagrave số lần server rảnh nếu đối tượng đatilde khởi tạo kiacutech thước

- vagrave K lagrave số lượng cửa sổ bao trugravem đối tượng

Transport Layer 3-106

TCP Mocirc higravenh trễ Khởi động chậm (2)

RTT

initia te TCPconnection

requestobject

first w indow= S R

second w indow= 2S R

third w indow= 4S R

fourth w indow= 8S R

com pletetransm issionobject

delivered

tim e atc lient

tim e atserver

Viacute dụbull OS = 15 đoạnbull K = 4 cửa sổbull Q = 2bull P = minK-1Q = 2

Server rảnh P=2 lần

Caacutec thagravenh phần trễbull 2 RTT dagravenh cho thiết lập kết nối vagrave yecircu cầubull OR để truyền đối tượngbullthời gian server rảnh bởi vigrave khởi động chậm

Server rảnh P = minK-1Q lần

Transport Layer 3-107

TCP Mocirc higravenh trễ(3)

R

S

R

SRTTPRTT

R

O

R

SRTT

R

SRTT

R

O

idleTimeRTTR

O

P

kP

k

P

pp

)12(][2

]2[2

2delay

1

1

1

th window after the timeidle 2 1 kR

SRTT

R

S k

ementacknowledg receivesserver until

segment send tostartsserver when from time RTTR

S

window kth the transmit totime2 1

R

Sk

RTT

initia te TCPconnection

requestobject

first w indow= S R

second w indow= 2S R

third w indow= 4S R

fourth w indow= 8S R

com pletetransm issionobject

delivered

tim e atc lient

tim e atserver

Transport Layer 3-108

TCP Mocirc higravenh trễ (4)

)1(log

)1(logmin

12min

222min

222min

2

2

110

110

S

OS

Okk

S

Ok

SOk

OSSSkK

k

k

k

caacutech tiacutenh toaacuten Q tương tự (xem HW)

K = số lượng cửa sổ bao trugravem đối tượngLagravem thế nagraveo tiacutenh được K

Transport Layer 3-109

HTTP Mocirc higravenh Giả sử trang Web chứa

1 trang HTML (kiacutech thước O bits) M higravenh ảnh (mỗi caacutei kiacutech thướcO bits)

HTTP khocircng bền vững M+1 TCP kết nối Thời gian đaacutep ứng = (M+1)OR + (M+1)2RTT + tổng số thời

gian rảnh HTTP bền vững

2 RTT để yecircu cầu vagrave nhận file HTML 1 RTT để yecircu cầu vagrave nhận M higravenh ảnh Thời gian đaacutep ứng = (M+1)OR + 3RTT + tổng số thời gian

rảnh HTTP khocircng bền vững với X kết nối song song

Giả sử MX lagrave số nguyecircn 1 TCP kết nối cho file MX thiết lập caacutec kết nối song song cho caacutec higravenh ảnh Thời gian đaacutep ứng = (M+1)OR + (MX + 1)2RTT + tổng số

thời gian rảnh

Transport Layer 3-110

02468

101214161820

28Kbps

100Kbps

1Mbps

10Mbps

non-persistent

persistent

parallel non-persistent

HTTP thời gian đaacutep ứng (giacircy)RTT = 100 msec O = 5 Kbytes M=10 vagrave X=5

Với băng thocircng thấp thời gian kết nối amp đaacutep ứng trội hơn thời gian truyền

Caacutec kết nối bền vững chỉ cho sự cải thiện khocircng đaacuteng kể trecircn caacutec kết nối song song

Transport Layer 3-111

0

10

20

30

40

50

60

70

28Kbps

100Kbps

1Mbps

10Mbps

non-persistent

persistent

parallel non-persistent

HTTP thời gian đaacutep ứng (giacircy)

RTT =1 sec O = 5 Kbytes M=10 and X=5

Với RTT lớn hơn thời gian đaacutep ứng trội hơn thời gian trễ chờ thiết lập kết nốiTCP amp khởi động chậm Caacutec kết nối bền vững bacircy giờ cho thấy cải thiện rotilde rệt đặc biệtvới caacutec mạng băng thocircng cao

Transport Layer 3-112

Chương 3 Tổng kết caacutec nguyecircn lyacute của caacutec

dịch vụ lớp transport multiplexing

demultiplexing truyền dữ liệu tin cậy điều khiển luồng điều khiển tắc nghẽn

khởi tạo vagrave hiện thực trong Internet UDP TCP

Tiếp theo nghiecircn cứu xong

caacutec vấn đề ldquongoagravei biecircnrdquo (caacutec lớp application transport)

chuẩn bị vagraveo phần ldquolotildeirdquo của mạng

  • Slide 1
  • Chương 3 Lớp Transport
  • Chương 3 Nội dung trigravenh bagravey
  • Caacutec dịch vụ vagrave giao thức Transport
  • Lớp Transport với lớp network
  • Caacutec giao thức lớp transport trecircn Internet
  • Slide 7
  • Multiplexingdemultiplexing
  • Demultiplexing lagravem việc như thế nagraveo
  • Demultiplexing khocircng kết nối
  • Demultiplexing khocircng kết nối (tiếp)
  • Demultiplexing hướng kết nối
  • Demultiplexing hướng kết nối (tiếp)
  • Demultiplexing hướng kết nối Threaded Web Server
  • Slide 15
  • UDP User Datagram Protocol [RFC 768]
  • UDP (tt)
  • UDP checksum
  • Viacute dụ Checksum
  • Slide 20
  • Caacutec nguyecircn lyacute truyền dữ liệu tin cậy
  • Slide 22
  • Slide 23
  • Truyền dữ liệu tin cậy
  • Slide 25
  • Rdt10 truyền dữ liệu tin cậy trecircn 1 kecircnh truyền tin cậy
  • Rdt20 kecircnh với caacutec lỗi
  • rdt20 đặc tả FSM
  • rdt20 hoạt động khi khocircng lỗi
  • rdt20 hoạt động khi coacute lỗi
  • rdt20 coacute lỗ hổng nghiecircm trọng
  • rdt21 người gửi quản lyacute caacutec ACKNAK bị hỏng
  • Slide 33
  • rdt21 thảo luận
  • rdt22 một giao thức khocircng cần NAK
  • rdt22 gửi nhận caacutec mảnh
  • rdt30 caacutec kecircnh với lỗi vagrave mất maacutet
  • rdt30 gửi
  • hagravenh động của rdt30
  • Slide 40
  • Hiệu suất của rdt30
  • rdt30 hoạt động dừng-vagrave-chờ
  • Caacutec giao thức Pipelined
  • Pipelining độ khả dụng tăng
  • Go-Back-N
  • GBN becircn gửi mở rộng FSM
  • GBN becircn nhận mở rộng FSM
  • GBN hoạt động
  • Lặp coacute lựa chọn
  • Lặp coacute lựa chọn caacutec cửa sổ gửi nhận
  • Slide 51
  • Hoạt động của lặp coacute lựa chọn
  • Lặp coacute lựa chọn tigravenh trạng khoacute giải quyết
  • Slide 54
  • TCP Tổng quan RFCs 793 1122 1323 2018 2581
  • TCP cấu truacutec đoạn
  • Caacutec số thứ tự TCP vagrave ACK
  • TCP Round Trip Time vagraveTimeout
  • TCP Round Trip Time vagrave Timeout
  • Viacute dụ đaacutenh giaacute RTT
  • Slide 61
  • TCP truyền dữ liệu tin cậy
  • TCP caacutec sự kiện
  • TCP becircn gửi (đơn giản)
  • TCP caacutec tigravenh huống truyền lại
  • TCP caacutec tigravenh huống truyền lại (tt)
  • TCP sinh ra ACK [RFC 1122 RFC 2581]
  • Truyền lại nhanh
  • Giải thuật truyền lại nhanh
  • Slide 70
  • TCP điều khiển luồng
  • TCP điều khiển luồng caacutech lagravem
  • Slide 73
  • TCP quản lyacute kết nối
  • TCP quản lyacute kết nối (tt)
  • Slide 76
  • Slide 77
  • Slide 78
  • Caacutec nguyecircn lyacute điều khiển tắc nghẽn
  • Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 1
  • Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 2
  • Slide 82
  • Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 3
  • Slide 84
  • Caacutec caacutech tiếp cận đối với điều khiển tắc nghẽn
  • Viacute dụ điều khiển tắc nghẽn ATM ABR
  • Slide 87
  • Slide 88
  • TCP điều khiển tắc nghẽn additive tăng lecircn multiplicative giảm xuống
  • TCP điều khiển tắc nghẽn chi tiết
  • TCP khởi động chậm
  • TCP khởi động chậm (tt)
  • Tinh chế
  • Tinh chế nhận biết mất maacutet
  • Tổng kết TCP điều khiển tắc nghẽn
  • TCP điều khiển tắc nghẽn becircn gửi
  • TCP throughput
  • TCP tương lai
  • TCP tiacutenh cocircng bằng
  • Tại sao phải TCP cocircng bằng
  • TCP tiacutenh cocircng bằng (tt)
  • Mocirc higravenh trễ
  • Cửa sổ tắc nghẽn cố định (1)
  • Cửa sổ tắc nghẽn cố định (2)
  • TCP Mocirc higravenh trễ Khởi động chậm (1)
  • TCP Mocirc higravenh trễ Khởi động chậm (2)
  • TCP Mocirc higravenh trễ(3)
  • TCP Mocirc higravenh trễ (4)
  • HTTP Mocirc higravenh
  • Slide 110
  • Slide 111
  • Chương 3 Tổng kết

Transport Layer 3-92

TCP khởi động chậm (tt)

Khi kết nối bắt đầu tăng tốc lecircn rất nhanh cho đến khi sự cố mất maacutet xảy ra đầu tiecircn nhacircn đocirci CongWin mỗi

RTT hoagraven thagravenh nhờ tăng CongWin ứng với mỗi ACK đatilde nhận

Tổng kết tốc độ khởi đầu lagrave chậm nhưng sau đoacute tăng tốc rất nhanh

Host A

1 đoạn

RTT

Host B

thời gian

2 đoạn

4 đoạn

Transport Layer 3-93

Tinh chếHỏi Khi nagraveo việc tăng

tốc trở thagravenh tuyến tiacutenh

Trả lời Khi CongWin đạt đến 12 giaacute trị của noacute trước khi timeout

Hiện thực Ngưỡng thay đổi Tại thời điểm coacute sự cố

mất maacutet ngưỡng được cagravei giaacute trị bằng frac12 của CongWin ngay trước đoacute

Transport Layer 3-94

Tinh chế nhận biết mất maacutet

Sau 3 ACK trugraveng lặp CongWin sẽ giảm 12 kiacutech thước cửa sổ

tăng tuyến tiacutenh nhưng sau sự cố

timeout CongWin thay giaacute trị

bằng 1 MSS kiacutech thước cửa sổ

tăng cấp lũy thừa khi đến một ngưỡng

thigrave tăng tuyến tiacutenh

3 ACK trugraveng nhau chỉ ra khả năng truyền của mạng timeout chỉ thị ldquonhiều cảnh baacuteordquo về tigravenh huống tắc nghẽn

Nguyecircn lyacute

Transport Layer 3-95

Tổng kết TCP điều khiển tắc nghẽn

Khi CongWin dưới Threshold becircn gửi đang trong giai đoạn khởi động chậm kiacutech thước cửa sổ tăng nhanh theo cấp lũy thừa

Khi CongWin trecircn Threshold becircn gửi đang trong giai đoạn traacutenh tắc nghẽn kiacutech thước cửa sổ tăng nhanh theo cấp tuyến tiacutenh

Khi coacute 3 ACK trugraveng lặp xảy ra Threshold = CongWin2 vagrave CongWin = Threshold

Khi timeout xảy ra Threshold = CongWin2 vagrave CongWin = 1 MSS

Transport Layer 3-96

TCP điều khiển tắc nghẽn becircn gửi

Trạng thaacutei Sự kiện TCP becircn gửi hagravenh động Diễn giải

Slow Start (SS)-Khởi động chậm

ACK baacuteo nhận cho dữ liệu chưa ACK trước đoacute

CongWin = CongWin + MSS If (CongWin gt Threshold) cagravei đặt trạng thaacutei ldquoTraacutenh tắc nghẽnrdquo

Hậu quả lagravem tăng gấp đocirci CongWin mỗi RTT

CongestionAvoidance (CA) ndashTraacutenh tắc nghẽn

ACK baacuteo nhận cho dữ liệu chưa ACK trước đoacute

CongWin = CongWin+MSS (MSSCongWin)

Additive tăng lecircn lagravem tăng CongWin lecircn 1 MSS mỗi RTT

SS hoặc CA Sự cố mất maacutet xảy ra khi thấy coacute 3 ACK trugraveng lặp

Threshold = CongWin2 CongWin = Thresholdcagravei đặt trạng thaacutei ldquoTraacutenh tắc nghẽnrdquo

Khocirci phục nhanh hiện thực giảm xuống multiplicative CongWin sẽ khocircng giảm xuống dưới 1 MSS

SS hoặc CA Timeout Threshold = CongWin2 CongWin = 1 MSScagravei đặt trạng thaacutei ldquoKhởi động chậmrdquo

Vagraveo chế độ ldquoKhởi động chậmrdquo

SS hoặc CA ACK trugraveng lặp

Đếm ACK tăng lecircn cho đoạn vừa được ACK

CongWin vagrave Threshold khocircng thay đổi

Transport Layer 3-97

TCP throughput

Throughout trung bigravenh của TCP biểu diễn qua kiacutech thước của sổ vagrave RTT Bỏ qua trạng thaacutei ldquoKhởi động chậmrdquo

Cho W lagrave kiacutech thước cửa sổ khi coacute mất maacutet xảy ra

Khi kiacutech thước cửa sổ = W lưu lượng = WRTT

Chỉ ngay sau khi mất maacutet cửa sổ giảm xuống = W2 lưu lượng = W2RTT

throughout trung bigravenh 075 WRTT

Transport Layer 3-98

TCP tương lai

Viacute dụ caacutec đoạn dagravei 1500 byte RTT 100ms lưu lượng 10 Gbps

Kiacutech thước cửa sổ yecircu cầu W = 83333 đoạn trecircn đường truyền

Lưu lượng trong caacutec trường hợp mất maacutet

L = 210-10

Phiecircn bản mới của TCP dagravenh cho nhu cầu tốc độ cao

LRTT

MSS221

Transport Layer 3-99

Mục tiecircu nếu K phiecircn lagravem việc TCP chia sẻ kết nối cổ chai của băng thocircng lagrave R mỗi phiecircn coacute tốc độ trung bigravenh lagrave RK

TCP kết nối 1

router cổ chaikhả năng R

TCP kết nối 2

TCP tiacutenh cocircng bằng

Transport Layer 3-100

Tại sao phải TCP cocircng bằng

2 phiecircn lagravem việc cạnh tranh nhau Additive tăng lưu lượng tăng multiplicative giảm lưu lượng tương xứng

R

R

chia sẻ băng thocircng bằng nhau

Connection 1 throughputConnect

ion 2

th

roughput

traacutenh tắc nghẽn additive tăng lecircnmất maacutet giảm cửa sổ bằng 12

traacutenh tắc nghẽn additive tăng lecircnmất maacutet giảm cửa sổ bằng 12

Transport Layer 3-101

TCP tiacutenh cocircng bằng (tt)

Tiacutenh cocircng bằng amp UDP nhiều ứng dụng

thường khocircng dugraveng TCP khocircng muốn tốc độ bị

điều tiết do điều khiển tắc nghẽn

Thay bằng dugraveng UDP truyền audiovideo với

tốc độ ổn định chịu được mất maacutet

Nghiecircn cứu giao thức thacircn thiện với TCP

Tiacutenh cocircng bằng amp caacutec kết nối TCP song song

khocircng coacute gigrave ngăn cản việc ứng dụng mở caacutec kết nối song song giữa 2 host

Trigravenh duyệt Web lagravem giống như thế

Viacute dụ tốc độ R hỗ trợ 9 kết nối ứng dụng mới yecircu cầu 1

TCP coacute tốc độ R10 ứng dụng mới yecircu cầu 11

TCP coacute tốc độ R2

Transport Layer 3-102

Mocirc higravenh trễ

Hỏi Mất bao lacircu để nhận 1 đối tượng từ Web server sau khi gửi yecircu cầu

Bỏ qua tắc nghẽn trễ bị ảnh hưởng bởi

thiết lập kết nối TCP trễ truyền dữ liệu khởi động chậm

Notation caacutec giả định Giả sử một kết nối giữa

client vagrave server coacute tốc độ R

S MSS (bits) O kiacutech thước đối tượng

(bits) khocircng truyền lại (khocircng

mất maacutet khocircng hỏng)

Kiacutech thước cửa sổ Giả định 1 cửa sổ tắc

nghẽn cố định coacute W đoạn Sau đoacute cửa sổ thay đổi

mocirc higravenh khởi động chậm

Transport Layer 3-103

Cửa sổ tắc nghẽn cố định (1)

Trường hợp đầu tiecircnWSR gt RTT + SR cho

đoạn đầu tiecircn trong cửa sổ trả về trước khi cửa sổ dữ liệu gửi ACK

trễ = 2RTT + OR

Transport Layer 3-104

Cửa sổ tắc nghẽn cố định (2)

Trường hợp thứ hai WSR lt RTT + SR sent

chờ cho ACK sau khi gửi dữ liệu

trễ = 2RTT + OR+ (K-1)[SR + RTT - WSR]

Transport Layer 3-105

TCP Mocirc higravenh trễ Khởi động chậm (1)

Bacircy giờ giả sử kiacutech thước cửa sổ tăng lecircn tugravey theo quaacute trigravenh khởi động chậm

Độ trễ của một đối tượng sẽ lagrave

R

S

R

SRTTP

R

ORTTLatency P )12(2

trong đoacute P lagrave số lần TCP rảnh ở tại server

1min KQP

- trong đoacute Q lagrave số lần server rảnh nếu đối tượng đatilde khởi tạo kiacutech thước

- vagrave K lagrave số lượng cửa sổ bao trugravem đối tượng

Transport Layer 3-106

TCP Mocirc higravenh trễ Khởi động chậm (2)

RTT

initia te TCPconnection

requestobject

first w indow= S R

second w indow= 2S R

third w indow= 4S R

fourth w indow= 8S R

com pletetransm issionobject

delivered

tim e atc lient

tim e atserver

Viacute dụbull OS = 15 đoạnbull K = 4 cửa sổbull Q = 2bull P = minK-1Q = 2

Server rảnh P=2 lần

Caacutec thagravenh phần trễbull 2 RTT dagravenh cho thiết lập kết nối vagrave yecircu cầubull OR để truyền đối tượngbullthời gian server rảnh bởi vigrave khởi động chậm

Server rảnh P = minK-1Q lần

Transport Layer 3-107

TCP Mocirc higravenh trễ(3)

R

S

R

SRTTPRTT

R

O

R

SRTT

R

SRTT

R

O

idleTimeRTTR

O

P

kP

k

P

pp

)12(][2

]2[2

2delay

1

1

1

th window after the timeidle 2 1 kR

SRTT

R

S k

ementacknowledg receivesserver until

segment send tostartsserver when from time RTTR

S

window kth the transmit totime2 1

R

Sk

RTT

initia te TCPconnection

requestobject

first w indow= S R

second w indow= 2S R

third w indow= 4S R

fourth w indow= 8S R

com pletetransm issionobject

delivered

tim e atc lient

tim e atserver

Transport Layer 3-108

TCP Mocirc higravenh trễ (4)

)1(log

)1(logmin

12min

222min

222min

2

2

110

110

S

OS

Okk

S

Ok

SOk

OSSSkK

k

k

k

caacutech tiacutenh toaacuten Q tương tự (xem HW)

K = số lượng cửa sổ bao trugravem đối tượngLagravem thế nagraveo tiacutenh được K

Transport Layer 3-109

HTTP Mocirc higravenh Giả sử trang Web chứa

1 trang HTML (kiacutech thước O bits) M higravenh ảnh (mỗi caacutei kiacutech thướcO bits)

HTTP khocircng bền vững M+1 TCP kết nối Thời gian đaacutep ứng = (M+1)OR + (M+1)2RTT + tổng số thời

gian rảnh HTTP bền vững

2 RTT để yecircu cầu vagrave nhận file HTML 1 RTT để yecircu cầu vagrave nhận M higravenh ảnh Thời gian đaacutep ứng = (M+1)OR + 3RTT + tổng số thời gian

rảnh HTTP khocircng bền vững với X kết nối song song

Giả sử MX lagrave số nguyecircn 1 TCP kết nối cho file MX thiết lập caacutec kết nối song song cho caacutec higravenh ảnh Thời gian đaacutep ứng = (M+1)OR + (MX + 1)2RTT + tổng số

thời gian rảnh

Transport Layer 3-110

02468

101214161820

28Kbps

100Kbps

1Mbps

10Mbps

non-persistent

persistent

parallel non-persistent

HTTP thời gian đaacutep ứng (giacircy)RTT = 100 msec O = 5 Kbytes M=10 vagrave X=5

Với băng thocircng thấp thời gian kết nối amp đaacutep ứng trội hơn thời gian truyền

Caacutec kết nối bền vững chỉ cho sự cải thiện khocircng đaacuteng kể trecircn caacutec kết nối song song

Transport Layer 3-111

0

10

20

30

40

50

60

70

28Kbps

100Kbps

1Mbps

10Mbps

non-persistent

persistent

parallel non-persistent

HTTP thời gian đaacutep ứng (giacircy)

RTT =1 sec O = 5 Kbytes M=10 and X=5

Với RTT lớn hơn thời gian đaacutep ứng trội hơn thời gian trễ chờ thiết lập kết nốiTCP amp khởi động chậm Caacutec kết nối bền vững bacircy giờ cho thấy cải thiện rotilde rệt đặc biệtvới caacutec mạng băng thocircng cao

Transport Layer 3-112

Chương 3 Tổng kết caacutec nguyecircn lyacute của caacutec

dịch vụ lớp transport multiplexing

demultiplexing truyền dữ liệu tin cậy điều khiển luồng điều khiển tắc nghẽn

khởi tạo vagrave hiện thực trong Internet UDP TCP

Tiếp theo nghiecircn cứu xong

caacutec vấn đề ldquongoagravei biecircnrdquo (caacutec lớp application transport)

chuẩn bị vagraveo phần ldquolotildeirdquo của mạng

  • Slide 1
  • Chương 3 Lớp Transport
  • Chương 3 Nội dung trigravenh bagravey
  • Caacutec dịch vụ vagrave giao thức Transport
  • Lớp Transport với lớp network
  • Caacutec giao thức lớp transport trecircn Internet
  • Slide 7
  • Multiplexingdemultiplexing
  • Demultiplexing lagravem việc như thế nagraveo
  • Demultiplexing khocircng kết nối
  • Demultiplexing khocircng kết nối (tiếp)
  • Demultiplexing hướng kết nối
  • Demultiplexing hướng kết nối (tiếp)
  • Demultiplexing hướng kết nối Threaded Web Server
  • Slide 15
  • UDP User Datagram Protocol [RFC 768]
  • UDP (tt)
  • UDP checksum
  • Viacute dụ Checksum
  • Slide 20
  • Caacutec nguyecircn lyacute truyền dữ liệu tin cậy
  • Slide 22
  • Slide 23
  • Truyền dữ liệu tin cậy
  • Slide 25
  • Rdt10 truyền dữ liệu tin cậy trecircn 1 kecircnh truyền tin cậy
  • Rdt20 kecircnh với caacutec lỗi
  • rdt20 đặc tả FSM
  • rdt20 hoạt động khi khocircng lỗi
  • rdt20 hoạt động khi coacute lỗi
  • rdt20 coacute lỗ hổng nghiecircm trọng
  • rdt21 người gửi quản lyacute caacutec ACKNAK bị hỏng
  • Slide 33
  • rdt21 thảo luận
  • rdt22 một giao thức khocircng cần NAK
  • rdt22 gửi nhận caacutec mảnh
  • rdt30 caacutec kecircnh với lỗi vagrave mất maacutet
  • rdt30 gửi
  • hagravenh động của rdt30
  • Slide 40
  • Hiệu suất của rdt30
  • rdt30 hoạt động dừng-vagrave-chờ
  • Caacutec giao thức Pipelined
  • Pipelining độ khả dụng tăng
  • Go-Back-N
  • GBN becircn gửi mở rộng FSM
  • GBN becircn nhận mở rộng FSM
  • GBN hoạt động
  • Lặp coacute lựa chọn
  • Lặp coacute lựa chọn caacutec cửa sổ gửi nhận
  • Slide 51
  • Hoạt động của lặp coacute lựa chọn
  • Lặp coacute lựa chọn tigravenh trạng khoacute giải quyết
  • Slide 54
  • TCP Tổng quan RFCs 793 1122 1323 2018 2581
  • TCP cấu truacutec đoạn
  • Caacutec số thứ tự TCP vagrave ACK
  • TCP Round Trip Time vagraveTimeout
  • TCP Round Trip Time vagrave Timeout
  • Viacute dụ đaacutenh giaacute RTT
  • Slide 61
  • TCP truyền dữ liệu tin cậy
  • TCP caacutec sự kiện
  • TCP becircn gửi (đơn giản)
  • TCP caacutec tigravenh huống truyền lại
  • TCP caacutec tigravenh huống truyền lại (tt)
  • TCP sinh ra ACK [RFC 1122 RFC 2581]
  • Truyền lại nhanh
  • Giải thuật truyền lại nhanh
  • Slide 70
  • TCP điều khiển luồng
  • TCP điều khiển luồng caacutech lagravem
  • Slide 73
  • TCP quản lyacute kết nối
  • TCP quản lyacute kết nối (tt)
  • Slide 76
  • Slide 77
  • Slide 78
  • Caacutec nguyecircn lyacute điều khiển tắc nghẽn
  • Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 1
  • Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 2
  • Slide 82
  • Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 3
  • Slide 84
  • Caacutec caacutech tiếp cận đối với điều khiển tắc nghẽn
  • Viacute dụ điều khiển tắc nghẽn ATM ABR
  • Slide 87
  • Slide 88
  • TCP điều khiển tắc nghẽn additive tăng lecircn multiplicative giảm xuống
  • TCP điều khiển tắc nghẽn chi tiết
  • TCP khởi động chậm
  • TCP khởi động chậm (tt)
  • Tinh chế
  • Tinh chế nhận biết mất maacutet
  • Tổng kết TCP điều khiển tắc nghẽn
  • TCP điều khiển tắc nghẽn becircn gửi
  • TCP throughput
  • TCP tương lai
  • TCP tiacutenh cocircng bằng
  • Tại sao phải TCP cocircng bằng
  • TCP tiacutenh cocircng bằng (tt)
  • Mocirc higravenh trễ
  • Cửa sổ tắc nghẽn cố định (1)
  • Cửa sổ tắc nghẽn cố định (2)
  • TCP Mocirc higravenh trễ Khởi động chậm (1)
  • TCP Mocirc higravenh trễ Khởi động chậm (2)
  • TCP Mocirc higravenh trễ(3)
  • TCP Mocirc higravenh trễ (4)
  • HTTP Mocirc higravenh
  • Slide 110
  • Slide 111
  • Chương 3 Tổng kết

Transport Layer 3-93

Tinh chếHỏi Khi nagraveo việc tăng

tốc trở thagravenh tuyến tiacutenh

Trả lời Khi CongWin đạt đến 12 giaacute trị của noacute trước khi timeout

Hiện thực Ngưỡng thay đổi Tại thời điểm coacute sự cố

mất maacutet ngưỡng được cagravei giaacute trị bằng frac12 của CongWin ngay trước đoacute

Transport Layer 3-94

Tinh chế nhận biết mất maacutet

Sau 3 ACK trugraveng lặp CongWin sẽ giảm 12 kiacutech thước cửa sổ

tăng tuyến tiacutenh nhưng sau sự cố

timeout CongWin thay giaacute trị

bằng 1 MSS kiacutech thước cửa sổ

tăng cấp lũy thừa khi đến một ngưỡng

thigrave tăng tuyến tiacutenh

3 ACK trugraveng nhau chỉ ra khả năng truyền của mạng timeout chỉ thị ldquonhiều cảnh baacuteordquo về tigravenh huống tắc nghẽn

Nguyecircn lyacute

Transport Layer 3-95

Tổng kết TCP điều khiển tắc nghẽn

Khi CongWin dưới Threshold becircn gửi đang trong giai đoạn khởi động chậm kiacutech thước cửa sổ tăng nhanh theo cấp lũy thừa

Khi CongWin trecircn Threshold becircn gửi đang trong giai đoạn traacutenh tắc nghẽn kiacutech thước cửa sổ tăng nhanh theo cấp tuyến tiacutenh

Khi coacute 3 ACK trugraveng lặp xảy ra Threshold = CongWin2 vagrave CongWin = Threshold

Khi timeout xảy ra Threshold = CongWin2 vagrave CongWin = 1 MSS

Transport Layer 3-96

TCP điều khiển tắc nghẽn becircn gửi

Trạng thaacutei Sự kiện TCP becircn gửi hagravenh động Diễn giải

Slow Start (SS)-Khởi động chậm

ACK baacuteo nhận cho dữ liệu chưa ACK trước đoacute

CongWin = CongWin + MSS If (CongWin gt Threshold) cagravei đặt trạng thaacutei ldquoTraacutenh tắc nghẽnrdquo

Hậu quả lagravem tăng gấp đocirci CongWin mỗi RTT

CongestionAvoidance (CA) ndashTraacutenh tắc nghẽn

ACK baacuteo nhận cho dữ liệu chưa ACK trước đoacute

CongWin = CongWin+MSS (MSSCongWin)

Additive tăng lecircn lagravem tăng CongWin lecircn 1 MSS mỗi RTT

SS hoặc CA Sự cố mất maacutet xảy ra khi thấy coacute 3 ACK trugraveng lặp

Threshold = CongWin2 CongWin = Thresholdcagravei đặt trạng thaacutei ldquoTraacutenh tắc nghẽnrdquo

Khocirci phục nhanh hiện thực giảm xuống multiplicative CongWin sẽ khocircng giảm xuống dưới 1 MSS

SS hoặc CA Timeout Threshold = CongWin2 CongWin = 1 MSScagravei đặt trạng thaacutei ldquoKhởi động chậmrdquo

Vagraveo chế độ ldquoKhởi động chậmrdquo

SS hoặc CA ACK trugraveng lặp

Đếm ACK tăng lecircn cho đoạn vừa được ACK

CongWin vagrave Threshold khocircng thay đổi

Transport Layer 3-97

TCP throughput

Throughout trung bigravenh của TCP biểu diễn qua kiacutech thước của sổ vagrave RTT Bỏ qua trạng thaacutei ldquoKhởi động chậmrdquo

Cho W lagrave kiacutech thước cửa sổ khi coacute mất maacutet xảy ra

Khi kiacutech thước cửa sổ = W lưu lượng = WRTT

Chỉ ngay sau khi mất maacutet cửa sổ giảm xuống = W2 lưu lượng = W2RTT

throughout trung bigravenh 075 WRTT

Transport Layer 3-98

TCP tương lai

Viacute dụ caacutec đoạn dagravei 1500 byte RTT 100ms lưu lượng 10 Gbps

Kiacutech thước cửa sổ yecircu cầu W = 83333 đoạn trecircn đường truyền

Lưu lượng trong caacutec trường hợp mất maacutet

L = 210-10

Phiecircn bản mới của TCP dagravenh cho nhu cầu tốc độ cao

LRTT

MSS221

Transport Layer 3-99

Mục tiecircu nếu K phiecircn lagravem việc TCP chia sẻ kết nối cổ chai của băng thocircng lagrave R mỗi phiecircn coacute tốc độ trung bigravenh lagrave RK

TCP kết nối 1

router cổ chaikhả năng R

TCP kết nối 2

TCP tiacutenh cocircng bằng

Transport Layer 3-100

Tại sao phải TCP cocircng bằng

2 phiecircn lagravem việc cạnh tranh nhau Additive tăng lưu lượng tăng multiplicative giảm lưu lượng tương xứng

R

R

chia sẻ băng thocircng bằng nhau

Connection 1 throughputConnect

ion 2

th

roughput

traacutenh tắc nghẽn additive tăng lecircnmất maacutet giảm cửa sổ bằng 12

traacutenh tắc nghẽn additive tăng lecircnmất maacutet giảm cửa sổ bằng 12

Transport Layer 3-101

TCP tiacutenh cocircng bằng (tt)

Tiacutenh cocircng bằng amp UDP nhiều ứng dụng

thường khocircng dugraveng TCP khocircng muốn tốc độ bị

điều tiết do điều khiển tắc nghẽn

Thay bằng dugraveng UDP truyền audiovideo với

tốc độ ổn định chịu được mất maacutet

Nghiecircn cứu giao thức thacircn thiện với TCP

Tiacutenh cocircng bằng amp caacutec kết nối TCP song song

khocircng coacute gigrave ngăn cản việc ứng dụng mở caacutec kết nối song song giữa 2 host

Trigravenh duyệt Web lagravem giống như thế

Viacute dụ tốc độ R hỗ trợ 9 kết nối ứng dụng mới yecircu cầu 1

TCP coacute tốc độ R10 ứng dụng mới yecircu cầu 11

TCP coacute tốc độ R2

Transport Layer 3-102

Mocirc higravenh trễ

Hỏi Mất bao lacircu để nhận 1 đối tượng từ Web server sau khi gửi yecircu cầu

Bỏ qua tắc nghẽn trễ bị ảnh hưởng bởi

thiết lập kết nối TCP trễ truyền dữ liệu khởi động chậm

Notation caacutec giả định Giả sử một kết nối giữa

client vagrave server coacute tốc độ R

S MSS (bits) O kiacutech thước đối tượng

(bits) khocircng truyền lại (khocircng

mất maacutet khocircng hỏng)

Kiacutech thước cửa sổ Giả định 1 cửa sổ tắc

nghẽn cố định coacute W đoạn Sau đoacute cửa sổ thay đổi

mocirc higravenh khởi động chậm

Transport Layer 3-103

Cửa sổ tắc nghẽn cố định (1)

Trường hợp đầu tiecircnWSR gt RTT + SR cho

đoạn đầu tiecircn trong cửa sổ trả về trước khi cửa sổ dữ liệu gửi ACK

trễ = 2RTT + OR

Transport Layer 3-104

Cửa sổ tắc nghẽn cố định (2)

Trường hợp thứ hai WSR lt RTT + SR sent

chờ cho ACK sau khi gửi dữ liệu

trễ = 2RTT + OR+ (K-1)[SR + RTT - WSR]

Transport Layer 3-105

TCP Mocirc higravenh trễ Khởi động chậm (1)

Bacircy giờ giả sử kiacutech thước cửa sổ tăng lecircn tugravey theo quaacute trigravenh khởi động chậm

Độ trễ của một đối tượng sẽ lagrave

R

S

R

SRTTP

R

ORTTLatency P )12(2

trong đoacute P lagrave số lần TCP rảnh ở tại server

1min KQP

- trong đoacute Q lagrave số lần server rảnh nếu đối tượng đatilde khởi tạo kiacutech thước

- vagrave K lagrave số lượng cửa sổ bao trugravem đối tượng

Transport Layer 3-106

TCP Mocirc higravenh trễ Khởi động chậm (2)

RTT

initia te TCPconnection

requestobject

first w indow= S R

second w indow= 2S R

third w indow= 4S R

fourth w indow= 8S R

com pletetransm issionobject

delivered

tim e atc lient

tim e atserver

Viacute dụbull OS = 15 đoạnbull K = 4 cửa sổbull Q = 2bull P = minK-1Q = 2

Server rảnh P=2 lần

Caacutec thagravenh phần trễbull 2 RTT dagravenh cho thiết lập kết nối vagrave yecircu cầubull OR để truyền đối tượngbullthời gian server rảnh bởi vigrave khởi động chậm

Server rảnh P = minK-1Q lần

Transport Layer 3-107

TCP Mocirc higravenh trễ(3)

R

S

R

SRTTPRTT

R

O

R

SRTT

R

SRTT

R

O

idleTimeRTTR

O

P

kP

k

P

pp

)12(][2

]2[2

2delay

1

1

1

th window after the timeidle 2 1 kR

SRTT

R

S k

ementacknowledg receivesserver until

segment send tostartsserver when from time RTTR

S

window kth the transmit totime2 1

R

Sk

RTT

initia te TCPconnection

requestobject

first w indow= S R

second w indow= 2S R

third w indow= 4S R

fourth w indow= 8S R

com pletetransm issionobject

delivered

tim e atc lient

tim e atserver

Transport Layer 3-108

TCP Mocirc higravenh trễ (4)

)1(log

)1(logmin

12min

222min

222min

2

2

110

110

S

OS

Okk

S

Ok

SOk

OSSSkK

k

k

k

caacutech tiacutenh toaacuten Q tương tự (xem HW)

K = số lượng cửa sổ bao trugravem đối tượngLagravem thế nagraveo tiacutenh được K

Transport Layer 3-109

HTTP Mocirc higravenh Giả sử trang Web chứa

1 trang HTML (kiacutech thước O bits) M higravenh ảnh (mỗi caacutei kiacutech thướcO bits)

HTTP khocircng bền vững M+1 TCP kết nối Thời gian đaacutep ứng = (M+1)OR + (M+1)2RTT + tổng số thời

gian rảnh HTTP bền vững

2 RTT để yecircu cầu vagrave nhận file HTML 1 RTT để yecircu cầu vagrave nhận M higravenh ảnh Thời gian đaacutep ứng = (M+1)OR + 3RTT + tổng số thời gian

rảnh HTTP khocircng bền vững với X kết nối song song

Giả sử MX lagrave số nguyecircn 1 TCP kết nối cho file MX thiết lập caacutec kết nối song song cho caacutec higravenh ảnh Thời gian đaacutep ứng = (M+1)OR + (MX + 1)2RTT + tổng số

thời gian rảnh

Transport Layer 3-110

02468

101214161820

28Kbps

100Kbps

1Mbps

10Mbps

non-persistent

persistent

parallel non-persistent

HTTP thời gian đaacutep ứng (giacircy)RTT = 100 msec O = 5 Kbytes M=10 vagrave X=5

Với băng thocircng thấp thời gian kết nối amp đaacutep ứng trội hơn thời gian truyền

Caacutec kết nối bền vững chỉ cho sự cải thiện khocircng đaacuteng kể trecircn caacutec kết nối song song

Transport Layer 3-111

0

10

20

30

40

50

60

70

28Kbps

100Kbps

1Mbps

10Mbps

non-persistent

persistent

parallel non-persistent

HTTP thời gian đaacutep ứng (giacircy)

RTT =1 sec O = 5 Kbytes M=10 and X=5

Với RTT lớn hơn thời gian đaacutep ứng trội hơn thời gian trễ chờ thiết lập kết nốiTCP amp khởi động chậm Caacutec kết nối bền vững bacircy giờ cho thấy cải thiện rotilde rệt đặc biệtvới caacutec mạng băng thocircng cao

Transport Layer 3-112

Chương 3 Tổng kết caacutec nguyecircn lyacute của caacutec

dịch vụ lớp transport multiplexing

demultiplexing truyền dữ liệu tin cậy điều khiển luồng điều khiển tắc nghẽn

khởi tạo vagrave hiện thực trong Internet UDP TCP

Tiếp theo nghiecircn cứu xong

caacutec vấn đề ldquongoagravei biecircnrdquo (caacutec lớp application transport)

chuẩn bị vagraveo phần ldquolotildeirdquo của mạng

  • Slide 1
  • Chương 3 Lớp Transport
  • Chương 3 Nội dung trigravenh bagravey
  • Caacutec dịch vụ vagrave giao thức Transport
  • Lớp Transport với lớp network
  • Caacutec giao thức lớp transport trecircn Internet
  • Slide 7
  • Multiplexingdemultiplexing
  • Demultiplexing lagravem việc như thế nagraveo
  • Demultiplexing khocircng kết nối
  • Demultiplexing khocircng kết nối (tiếp)
  • Demultiplexing hướng kết nối
  • Demultiplexing hướng kết nối (tiếp)
  • Demultiplexing hướng kết nối Threaded Web Server
  • Slide 15
  • UDP User Datagram Protocol [RFC 768]
  • UDP (tt)
  • UDP checksum
  • Viacute dụ Checksum
  • Slide 20
  • Caacutec nguyecircn lyacute truyền dữ liệu tin cậy
  • Slide 22
  • Slide 23
  • Truyền dữ liệu tin cậy
  • Slide 25
  • Rdt10 truyền dữ liệu tin cậy trecircn 1 kecircnh truyền tin cậy
  • Rdt20 kecircnh với caacutec lỗi
  • rdt20 đặc tả FSM
  • rdt20 hoạt động khi khocircng lỗi
  • rdt20 hoạt động khi coacute lỗi
  • rdt20 coacute lỗ hổng nghiecircm trọng
  • rdt21 người gửi quản lyacute caacutec ACKNAK bị hỏng
  • Slide 33
  • rdt21 thảo luận
  • rdt22 một giao thức khocircng cần NAK
  • rdt22 gửi nhận caacutec mảnh
  • rdt30 caacutec kecircnh với lỗi vagrave mất maacutet
  • rdt30 gửi
  • hagravenh động của rdt30
  • Slide 40
  • Hiệu suất của rdt30
  • rdt30 hoạt động dừng-vagrave-chờ
  • Caacutec giao thức Pipelined
  • Pipelining độ khả dụng tăng
  • Go-Back-N
  • GBN becircn gửi mở rộng FSM
  • GBN becircn nhận mở rộng FSM
  • GBN hoạt động
  • Lặp coacute lựa chọn
  • Lặp coacute lựa chọn caacutec cửa sổ gửi nhận
  • Slide 51
  • Hoạt động của lặp coacute lựa chọn
  • Lặp coacute lựa chọn tigravenh trạng khoacute giải quyết
  • Slide 54
  • TCP Tổng quan RFCs 793 1122 1323 2018 2581
  • TCP cấu truacutec đoạn
  • Caacutec số thứ tự TCP vagrave ACK
  • TCP Round Trip Time vagraveTimeout
  • TCP Round Trip Time vagrave Timeout
  • Viacute dụ đaacutenh giaacute RTT
  • Slide 61
  • TCP truyền dữ liệu tin cậy
  • TCP caacutec sự kiện
  • TCP becircn gửi (đơn giản)
  • TCP caacutec tigravenh huống truyền lại
  • TCP caacutec tigravenh huống truyền lại (tt)
  • TCP sinh ra ACK [RFC 1122 RFC 2581]
  • Truyền lại nhanh
  • Giải thuật truyền lại nhanh
  • Slide 70
  • TCP điều khiển luồng
  • TCP điều khiển luồng caacutech lagravem
  • Slide 73
  • TCP quản lyacute kết nối
  • TCP quản lyacute kết nối (tt)
  • Slide 76
  • Slide 77
  • Slide 78
  • Caacutec nguyecircn lyacute điều khiển tắc nghẽn
  • Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 1
  • Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 2
  • Slide 82
  • Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 3
  • Slide 84
  • Caacutec caacutech tiếp cận đối với điều khiển tắc nghẽn
  • Viacute dụ điều khiển tắc nghẽn ATM ABR
  • Slide 87
  • Slide 88
  • TCP điều khiển tắc nghẽn additive tăng lecircn multiplicative giảm xuống
  • TCP điều khiển tắc nghẽn chi tiết
  • TCP khởi động chậm
  • TCP khởi động chậm (tt)
  • Tinh chế
  • Tinh chế nhận biết mất maacutet
  • Tổng kết TCP điều khiển tắc nghẽn
  • TCP điều khiển tắc nghẽn becircn gửi
  • TCP throughput
  • TCP tương lai
  • TCP tiacutenh cocircng bằng
  • Tại sao phải TCP cocircng bằng
  • TCP tiacutenh cocircng bằng (tt)
  • Mocirc higravenh trễ
  • Cửa sổ tắc nghẽn cố định (1)
  • Cửa sổ tắc nghẽn cố định (2)
  • TCP Mocirc higravenh trễ Khởi động chậm (1)
  • TCP Mocirc higravenh trễ Khởi động chậm (2)
  • TCP Mocirc higravenh trễ(3)
  • TCP Mocirc higravenh trễ (4)
  • HTTP Mocirc higravenh
  • Slide 110
  • Slide 111
  • Chương 3 Tổng kết

Transport Layer 3-94

Tinh chế nhận biết mất maacutet

Sau 3 ACK trugraveng lặp CongWin sẽ giảm 12 kiacutech thước cửa sổ

tăng tuyến tiacutenh nhưng sau sự cố

timeout CongWin thay giaacute trị

bằng 1 MSS kiacutech thước cửa sổ

tăng cấp lũy thừa khi đến một ngưỡng

thigrave tăng tuyến tiacutenh

3 ACK trugraveng nhau chỉ ra khả năng truyền của mạng timeout chỉ thị ldquonhiều cảnh baacuteordquo về tigravenh huống tắc nghẽn

Nguyecircn lyacute

Transport Layer 3-95

Tổng kết TCP điều khiển tắc nghẽn

Khi CongWin dưới Threshold becircn gửi đang trong giai đoạn khởi động chậm kiacutech thước cửa sổ tăng nhanh theo cấp lũy thừa

Khi CongWin trecircn Threshold becircn gửi đang trong giai đoạn traacutenh tắc nghẽn kiacutech thước cửa sổ tăng nhanh theo cấp tuyến tiacutenh

Khi coacute 3 ACK trugraveng lặp xảy ra Threshold = CongWin2 vagrave CongWin = Threshold

Khi timeout xảy ra Threshold = CongWin2 vagrave CongWin = 1 MSS

Transport Layer 3-96

TCP điều khiển tắc nghẽn becircn gửi

Trạng thaacutei Sự kiện TCP becircn gửi hagravenh động Diễn giải

Slow Start (SS)-Khởi động chậm

ACK baacuteo nhận cho dữ liệu chưa ACK trước đoacute

CongWin = CongWin + MSS If (CongWin gt Threshold) cagravei đặt trạng thaacutei ldquoTraacutenh tắc nghẽnrdquo

Hậu quả lagravem tăng gấp đocirci CongWin mỗi RTT

CongestionAvoidance (CA) ndashTraacutenh tắc nghẽn

ACK baacuteo nhận cho dữ liệu chưa ACK trước đoacute

CongWin = CongWin+MSS (MSSCongWin)

Additive tăng lecircn lagravem tăng CongWin lecircn 1 MSS mỗi RTT

SS hoặc CA Sự cố mất maacutet xảy ra khi thấy coacute 3 ACK trugraveng lặp

Threshold = CongWin2 CongWin = Thresholdcagravei đặt trạng thaacutei ldquoTraacutenh tắc nghẽnrdquo

Khocirci phục nhanh hiện thực giảm xuống multiplicative CongWin sẽ khocircng giảm xuống dưới 1 MSS

SS hoặc CA Timeout Threshold = CongWin2 CongWin = 1 MSScagravei đặt trạng thaacutei ldquoKhởi động chậmrdquo

Vagraveo chế độ ldquoKhởi động chậmrdquo

SS hoặc CA ACK trugraveng lặp

Đếm ACK tăng lecircn cho đoạn vừa được ACK

CongWin vagrave Threshold khocircng thay đổi

Transport Layer 3-97

TCP throughput

Throughout trung bigravenh của TCP biểu diễn qua kiacutech thước của sổ vagrave RTT Bỏ qua trạng thaacutei ldquoKhởi động chậmrdquo

Cho W lagrave kiacutech thước cửa sổ khi coacute mất maacutet xảy ra

Khi kiacutech thước cửa sổ = W lưu lượng = WRTT

Chỉ ngay sau khi mất maacutet cửa sổ giảm xuống = W2 lưu lượng = W2RTT

throughout trung bigravenh 075 WRTT

Transport Layer 3-98

TCP tương lai

Viacute dụ caacutec đoạn dagravei 1500 byte RTT 100ms lưu lượng 10 Gbps

Kiacutech thước cửa sổ yecircu cầu W = 83333 đoạn trecircn đường truyền

Lưu lượng trong caacutec trường hợp mất maacutet

L = 210-10

Phiecircn bản mới của TCP dagravenh cho nhu cầu tốc độ cao

LRTT

MSS221

Transport Layer 3-99

Mục tiecircu nếu K phiecircn lagravem việc TCP chia sẻ kết nối cổ chai của băng thocircng lagrave R mỗi phiecircn coacute tốc độ trung bigravenh lagrave RK

TCP kết nối 1

router cổ chaikhả năng R

TCP kết nối 2

TCP tiacutenh cocircng bằng

Transport Layer 3-100

Tại sao phải TCP cocircng bằng

2 phiecircn lagravem việc cạnh tranh nhau Additive tăng lưu lượng tăng multiplicative giảm lưu lượng tương xứng

R

R

chia sẻ băng thocircng bằng nhau

Connection 1 throughputConnect

ion 2

th

roughput

traacutenh tắc nghẽn additive tăng lecircnmất maacutet giảm cửa sổ bằng 12

traacutenh tắc nghẽn additive tăng lecircnmất maacutet giảm cửa sổ bằng 12

Transport Layer 3-101

TCP tiacutenh cocircng bằng (tt)

Tiacutenh cocircng bằng amp UDP nhiều ứng dụng

thường khocircng dugraveng TCP khocircng muốn tốc độ bị

điều tiết do điều khiển tắc nghẽn

Thay bằng dugraveng UDP truyền audiovideo với

tốc độ ổn định chịu được mất maacutet

Nghiecircn cứu giao thức thacircn thiện với TCP

Tiacutenh cocircng bằng amp caacutec kết nối TCP song song

khocircng coacute gigrave ngăn cản việc ứng dụng mở caacutec kết nối song song giữa 2 host

Trigravenh duyệt Web lagravem giống như thế

Viacute dụ tốc độ R hỗ trợ 9 kết nối ứng dụng mới yecircu cầu 1

TCP coacute tốc độ R10 ứng dụng mới yecircu cầu 11

TCP coacute tốc độ R2

Transport Layer 3-102

Mocirc higravenh trễ

Hỏi Mất bao lacircu để nhận 1 đối tượng từ Web server sau khi gửi yecircu cầu

Bỏ qua tắc nghẽn trễ bị ảnh hưởng bởi

thiết lập kết nối TCP trễ truyền dữ liệu khởi động chậm

Notation caacutec giả định Giả sử một kết nối giữa

client vagrave server coacute tốc độ R

S MSS (bits) O kiacutech thước đối tượng

(bits) khocircng truyền lại (khocircng

mất maacutet khocircng hỏng)

Kiacutech thước cửa sổ Giả định 1 cửa sổ tắc

nghẽn cố định coacute W đoạn Sau đoacute cửa sổ thay đổi

mocirc higravenh khởi động chậm

Transport Layer 3-103

Cửa sổ tắc nghẽn cố định (1)

Trường hợp đầu tiecircnWSR gt RTT + SR cho

đoạn đầu tiecircn trong cửa sổ trả về trước khi cửa sổ dữ liệu gửi ACK

trễ = 2RTT + OR

Transport Layer 3-104

Cửa sổ tắc nghẽn cố định (2)

Trường hợp thứ hai WSR lt RTT + SR sent

chờ cho ACK sau khi gửi dữ liệu

trễ = 2RTT + OR+ (K-1)[SR + RTT - WSR]

Transport Layer 3-105

TCP Mocirc higravenh trễ Khởi động chậm (1)

Bacircy giờ giả sử kiacutech thước cửa sổ tăng lecircn tugravey theo quaacute trigravenh khởi động chậm

Độ trễ của một đối tượng sẽ lagrave

R

S

R

SRTTP

R

ORTTLatency P )12(2

trong đoacute P lagrave số lần TCP rảnh ở tại server

1min KQP

- trong đoacute Q lagrave số lần server rảnh nếu đối tượng đatilde khởi tạo kiacutech thước

- vagrave K lagrave số lượng cửa sổ bao trugravem đối tượng

Transport Layer 3-106

TCP Mocirc higravenh trễ Khởi động chậm (2)

RTT

initia te TCPconnection

requestobject

first w indow= S R

second w indow= 2S R

third w indow= 4S R

fourth w indow= 8S R

com pletetransm issionobject

delivered

tim e atc lient

tim e atserver

Viacute dụbull OS = 15 đoạnbull K = 4 cửa sổbull Q = 2bull P = minK-1Q = 2

Server rảnh P=2 lần

Caacutec thagravenh phần trễbull 2 RTT dagravenh cho thiết lập kết nối vagrave yecircu cầubull OR để truyền đối tượngbullthời gian server rảnh bởi vigrave khởi động chậm

Server rảnh P = minK-1Q lần

Transport Layer 3-107

TCP Mocirc higravenh trễ(3)

R

S

R

SRTTPRTT

R

O

R

SRTT

R

SRTT

R

O

idleTimeRTTR

O

P

kP

k

P

pp

)12(][2

]2[2

2delay

1

1

1

th window after the timeidle 2 1 kR

SRTT

R

S k

ementacknowledg receivesserver until

segment send tostartsserver when from time RTTR

S

window kth the transmit totime2 1

R

Sk

RTT

initia te TCPconnection

requestobject

first w indow= S R

second w indow= 2S R

third w indow= 4S R

fourth w indow= 8S R

com pletetransm issionobject

delivered

tim e atc lient

tim e atserver

Transport Layer 3-108

TCP Mocirc higravenh trễ (4)

)1(log

)1(logmin

12min

222min

222min

2

2

110

110

S

OS

Okk

S

Ok

SOk

OSSSkK

k

k

k

caacutech tiacutenh toaacuten Q tương tự (xem HW)

K = số lượng cửa sổ bao trugravem đối tượngLagravem thế nagraveo tiacutenh được K

Transport Layer 3-109

HTTP Mocirc higravenh Giả sử trang Web chứa

1 trang HTML (kiacutech thước O bits) M higravenh ảnh (mỗi caacutei kiacutech thướcO bits)

HTTP khocircng bền vững M+1 TCP kết nối Thời gian đaacutep ứng = (M+1)OR + (M+1)2RTT + tổng số thời

gian rảnh HTTP bền vững

2 RTT để yecircu cầu vagrave nhận file HTML 1 RTT để yecircu cầu vagrave nhận M higravenh ảnh Thời gian đaacutep ứng = (M+1)OR + 3RTT + tổng số thời gian

rảnh HTTP khocircng bền vững với X kết nối song song

Giả sử MX lagrave số nguyecircn 1 TCP kết nối cho file MX thiết lập caacutec kết nối song song cho caacutec higravenh ảnh Thời gian đaacutep ứng = (M+1)OR + (MX + 1)2RTT + tổng số

thời gian rảnh

Transport Layer 3-110

02468

101214161820

28Kbps

100Kbps

1Mbps

10Mbps

non-persistent

persistent

parallel non-persistent

HTTP thời gian đaacutep ứng (giacircy)RTT = 100 msec O = 5 Kbytes M=10 vagrave X=5

Với băng thocircng thấp thời gian kết nối amp đaacutep ứng trội hơn thời gian truyền

Caacutec kết nối bền vững chỉ cho sự cải thiện khocircng đaacuteng kể trecircn caacutec kết nối song song

Transport Layer 3-111

0

10

20

30

40

50

60

70

28Kbps

100Kbps

1Mbps

10Mbps

non-persistent

persistent

parallel non-persistent

HTTP thời gian đaacutep ứng (giacircy)

RTT =1 sec O = 5 Kbytes M=10 and X=5

Với RTT lớn hơn thời gian đaacutep ứng trội hơn thời gian trễ chờ thiết lập kết nốiTCP amp khởi động chậm Caacutec kết nối bền vững bacircy giờ cho thấy cải thiện rotilde rệt đặc biệtvới caacutec mạng băng thocircng cao

Transport Layer 3-112

Chương 3 Tổng kết caacutec nguyecircn lyacute của caacutec

dịch vụ lớp transport multiplexing

demultiplexing truyền dữ liệu tin cậy điều khiển luồng điều khiển tắc nghẽn

khởi tạo vagrave hiện thực trong Internet UDP TCP

Tiếp theo nghiecircn cứu xong

caacutec vấn đề ldquongoagravei biecircnrdquo (caacutec lớp application transport)

chuẩn bị vagraveo phần ldquolotildeirdquo của mạng

  • Slide 1
  • Chương 3 Lớp Transport
  • Chương 3 Nội dung trigravenh bagravey
  • Caacutec dịch vụ vagrave giao thức Transport
  • Lớp Transport với lớp network
  • Caacutec giao thức lớp transport trecircn Internet
  • Slide 7
  • Multiplexingdemultiplexing
  • Demultiplexing lagravem việc như thế nagraveo
  • Demultiplexing khocircng kết nối
  • Demultiplexing khocircng kết nối (tiếp)
  • Demultiplexing hướng kết nối
  • Demultiplexing hướng kết nối (tiếp)
  • Demultiplexing hướng kết nối Threaded Web Server
  • Slide 15
  • UDP User Datagram Protocol [RFC 768]
  • UDP (tt)
  • UDP checksum
  • Viacute dụ Checksum
  • Slide 20
  • Caacutec nguyecircn lyacute truyền dữ liệu tin cậy
  • Slide 22
  • Slide 23
  • Truyền dữ liệu tin cậy
  • Slide 25
  • Rdt10 truyền dữ liệu tin cậy trecircn 1 kecircnh truyền tin cậy
  • Rdt20 kecircnh với caacutec lỗi
  • rdt20 đặc tả FSM
  • rdt20 hoạt động khi khocircng lỗi
  • rdt20 hoạt động khi coacute lỗi
  • rdt20 coacute lỗ hổng nghiecircm trọng
  • rdt21 người gửi quản lyacute caacutec ACKNAK bị hỏng
  • Slide 33
  • rdt21 thảo luận
  • rdt22 một giao thức khocircng cần NAK
  • rdt22 gửi nhận caacutec mảnh
  • rdt30 caacutec kecircnh với lỗi vagrave mất maacutet
  • rdt30 gửi
  • hagravenh động của rdt30
  • Slide 40
  • Hiệu suất của rdt30
  • rdt30 hoạt động dừng-vagrave-chờ
  • Caacutec giao thức Pipelined
  • Pipelining độ khả dụng tăng
  • Go-Back-N
  • GBN becircn gửi mở rộng FSM
  • GBN becircn nhận mở rộng FSM
  • GBN hoạt động
  • Lặp coacute lựa chọn
  • Lặp coacute lựa chọn caacutec cửa sổ gửi nhận
  • Slide 51
  • Hoạt động của lặp coacute lựa chọn
  • Lặp coacute lựa chọn tigravenh trạng khoacute giải quyết
  • Slide 54
  • TCP Tổng quan RFCs 793 1122 1323 2018 2581
  • TCP cấu truacutec đoạn
  • Caacutec số thứ tự TCP vagrave ACK
  • TCP Round Trip Time vagraveTimeout
  • TCP Round Trip Time vagrave Timeout
  • Viacute dụ đaacutenh giaacute RTT
  • Slide 61
  • TCP truyền dữ liệu tin cậy
  • TCP caacutec sự kiện
  • TCP becircn gửi (đơn giản)
  • TCP caacutec tigravenh huống truyền lại
  • TCP caacutec tigravenh huống truyền lại (tt)
  • TCP sinh ra ACK [RFC 1122 RFC 2581]
  • Truyền lại nhanh
  • Giải thuật truyền lại nhanh
  • Slide 70
  • TCP điều khiển luồng
  • TCP điều khiển luồng caacutech lagravem
  • Slide 73
  • TCP quản lyacute kết nối
  • TCP quản lyacute kết nối (tt)
  • Slide 76
  • Slide 77
  • Slide 78
  • Caacutec nguyecircn lyacute điều khiển tắc nghẽn
  • Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 1
  • Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 2
  • Slide 82
  • Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 3
  • Slide 84
  • Caacutec caacutech tiếp cận đối với điều khiển tắc nghẽn
  • Viacute dụ điều khiển tắc nghẽn ATM ABR
  • Slide 87
  • Slide 88
  • TCP điều khiển tắc nghẽn additive tăng lecircn multiplicative giảm xuống
  • TCP điều khiển tắc nghẽn chi tiết
  • TCP khởi động chậm
  • TCP khởi động chậm (tt)
  • Tinh chế
  • Tinh chế nhận biết mất maacutet
  • Tổng kết TCP điều khiển tắc nghẽn
  • TCP điều khiển tắc nghẽn becircn gửi
  • TCP throughput
  • TCP tương lai
  • TCP tiacutenh cocircng bằng
  • Tại sao phải TCP cocircng bằng
  • TCP tiacutenh cocircng bằng (tt)
  • Mocirc higravenh trễ
  • Cửa sổ tắc nghẽn cố định (1)
  • Cửa sổ tắc nghẽn cố định (2)
  • TCP Mocirc higravenh trễ Khởi động chậm (1)
  • TCP Mocirc higravenh trễ Khởi động chậm (2)
  • TCP Mocirc higravenh trễ(3)
  • TCP Mocirc higravenh trễ (4)
  • HTTP Mocirc higravenh
  • Slide 110
  • Slide 111
  • Chương 3 Tổng kết

Transport Layer 3-95

Tổng kết TCP điều khiển tắc nghẽn

Khi CongWin dưới Threshold becircn gửi đang trong giai đoạn khởi động chậm kiacutech thước cửa sổ tăng nhanh theo cấp lũy thừa

Khi CongWin trecircn Threshold becircn gửi đang trong giai đoạn traacutenh tắc nghẽn kiacutech thước cửa sổ tăng nhanh theo cấp tuyến tiacutenh

Khi coacute 3 ACK trugraveng lặp xảy ra Threshold = CongWin2 vagrave CongWin = Threshold

Khi timeout xảy ra Threshold = CongWin2 vagrave CongWin = 1 MSS

Transport Layer 3-96

TCP điều khiển tắc nghẽn becircn gửi

Trạng thaacutei Sự kiện TCP becircn gửi hagravenh động Diễn giải

Slow Start (SS)-Khởi động chậm

ACK baacuteo nhận cho dữ liệu chưa ACK trước đoacute

CongWin = CongWin + MSS If (CongWin gt Threshold) cagravei đặt trạng thaacutei ldquoTraacutenh tắc nghẽnrdquo

Hậu quả lagravem tăng gấp đocirci CongWin mỗi RTT

CongestionAvoidance (CA) ndashTraacutenh tắc nghẽn

ACK baacuteo nhận cho dữ liệu chưa ACK trước đoacute

CongWin = CongWin+MSS (MSSCongWin)

Additive tăng lecircn lagravem tăng CongWin lecircn 1 MSS mỗi RTT

SS hoặc CA Sự cố mất maacutet xảy ra khi thấy coacute 3 ACK trugraveng lặp

Threshold = CongWin2 CongWin = Thresholdcagravei đặt trạng thaacutei ldquoTraacutenh tắc nghẽnrdquo

Khocirci phục nhanh hiện thực giảm xuống multiplicative CongWin sẽ khocircng giảm xuống dưới 1 MSS

SS hoặc CA Timeout Threshold = CongWin2 CongWin = 1 MSScagravei đặt trạng thaacutei ldquoKhởi động chậmrdquo

Vagraveo chế độ ldquoKhởi động chậmrdquo

SS hoặc CA ACK trugraveng lặp

Đếm ACK tăng lecircn cho đoạn vừa được ACK

CongWin vagrave Threshold khocircng thay đổi

Transport Layer 3-97

TCP throughput

Throughout trung bigravenh của TCP biểu diễn qua kiacutech thước của sổ vagrave RTT Bỏ qua trạng thaacutei ldquoKhởi động chậmrdquo

Cho W lagrave kiacutech thước cửa sổ khi coacute mất maacutet xảy ra

Khi kiacutech thước cửa sổ = W lưu lượng = WRTT

Chỉ ngay sau khi mất maacutet cửa sổ giảm xuống = W2 lưu lượng = W2RTT

throughout trung bigravenh 075 WRTT

Transport Layer 3-98

TCP tương lai

Viacute dụ caacutec đoạn dagravei 1500 byte RTT 100ms lưu lượng 10 Gbps

Kiacutech thước cửa sổ yecircu cầu W = 83333 đoạn trecircn đường truyền

Lưu lượng trong caacutec trường hợp mất maacutet

L = 210-10

Phiecircn bản mới của TCP dagravenh cho nhu cầu tốc độ cao

LRTT

MSS221

Transport Layer 3-99

Mục tiecircu nếu K phiecircn lagravem việc TCP chia sẻ kết nối cổ chai của băng thocircng lagrave R mỗi phiecircn coacute tốc độ trung bigravenh lagrave RK

TCP kết nối 1

router cổ chaikhả năng R

TCP kết nối 2

TCP tiacutenh cocircng bằng

Transport Layer 3-100

Tại sao phải TCP cocircng bằng

2 phiecircn lagravem việc cạnh tranh nhau Additive tăng lưu lượng tăng multiplicative giảm lưu lượng tương xứng

R

R

chia sẻ băng thocircng bằng nhau

Connection 1 throughputConnect

ion 2

th

roughput

traacutenh tắc nghẽn additive tăng lecircnmất maacutet giảm cửa sổ bằng 12

traacutenh tắc nghẽn additive tăng lecircnmất maacutet giảm cửa sổ bằng 12

Transport Layer 3-101

TCP tiacutenh cocircng bằng (tt)

Tiacutenh cocircng bằng amp UDP nhiều ứng dụng

thường khocircng dugraveng TCP khocircng muốn tốc độ bị

điều tiết do điều khiển tắc nghẽn

Thay bằng dugraveng UDP truyền audiovideo với

tốc độ ổn định chịu được mất maacutet

Nghiecircn cứu giao thức thacircn thiện với TCP

Tiacutenh cocircng bằng amp caacutec kết nối TCP song song

khocircng coacute gigrave ngăn cản việc ứng dụng mở caacutec kết nối song song giữa 2 host

Trigravenh duyệt Web lagravem giống như thế

Viacute dụ tốc độ R hỗ trợ 9 kết nối ứng dụng mới yecircu cầu 1

TCP coacute tốc độ R10 ứng dụng mới yecircu cầu 11

TCP coacute tốc độ R2

Transport Layer 3-102

Mocirc higravenh trễ

Hỏi Mất bao lacircu để nhận 1 đối tượng từ Web server sau khi gửi yecircu cầu

Bỏ qua tắc nghẽn trễ bị ảnh hưởng bởi

thiết lập kết nối TCP trễ truyền dữ liệu khởi động chậm

Notation caacutec giả định Giả sử một kết nối giữa

client vagrave server coacute tốc độ R

S MSS (bits) O kiacutech thước đối tượng

(bits) khocircng truyền lại (khocircng

mất maacutet khocircng hỏng)

Kiacutech thước cửa sổ Giả định 1 cửa sổ tắc

nghẽn cố định coacute W đoạn Sau đoacute cửa sổ thay đổi

mocirc higravenh khởi động chậm

Transport Layer 3-103

Cửa sổ tắc nghẽn cố định (1)

Trường hợp đầu tiecircnWSR gt RTT + SR cho

đoạn đầu tiecircn trong cửa sổ trả về trước khi cửa sổ dữ liệu gửi ACK

trễ = 2RTT + OR

Transport Layer 3-104

Cửa sổ tắc nghẽn cố định (2)

Trường hợp thứ hai WSR lt RTT + SR sent

chờ cho ACK sau khi gửi dữ liệu

trễ = 2RTT + OR+ (K-1)[SR + RTT - WSR]

Transport Layer 3-105

TCP Mocirc higravenh trễ Khởi động chậm (1)

Bacircy giờ giả sử kiacutech thước cửa sổ tăng lecircn tugravey theo quaacute trigravenh khởi động chậm

Độ trễ của một đối tượng sẽ lagrave

R

S

R

SRTTP

R

ORTTLatency P )12(2

trong đoacute P lagrave số lần TCP rảnh ở tại server

1min KQP

- trong đoacute Q lagrave số lần server rảnh nếu đối tượng đatilde khởi tạo kiacutech thước

- vagrave K lagrave số lượng cửa sổ bao trugravem đối tượng

Transport Layer 3-106

TCP Mocirc higravenh trễ Khởi động chậm (2)

RTT

initia te TCPconnection

requestobject

first w indow= S R

second w indow= 2S R

third w indow= 4S R

fourth w indow= 8S R

com pletetransm issionobject

delivered

tim e atc lient

tim e atserver

Viacute dụbull OS = 15 đoạnbull K = 4 cửa sổbull Q = 2bull P = minK-1Q = 2

Server rảnh P=2 lần

Caacutec thagravenh phần trễbull 2 RTT dagravenh cho thiết lập kết nối vagrave yecircu cầubull OR để truyền đối tượngbullthời gian server rảnh bởi vigrave khởi động chậm

Server rảnh P = minK-1Q lần

Transport Layer 3-107

TCP Mocirc higravenh trễ(3)

R

S

R

SRTTPRTT

R

O

R

SRTT

R

SRTT

R

O

idleTimeRTTR

O

P

kP

k

P

pp

)12(][2

]2[2

2delay

1

1

1

th window after the timeidle 2 1 kR

SRTT

R

S k

ementacknowledg receivesserver until

segment send tostartsserver when from time RTTR

S

window kth the transmit totime2 1

R

Sk

RTT

initia te TCPconnection

requestobject

first w indow= S R

second w indow= 2S R

third w indow= 4S R

fourth w indow= 8S R

com pletetransm issionobject

delivered

tim e atc lient

tim e atserver

Transport Layer 3-108

TCP Mocirc higravenh trễ (4)

)1(log

)1(logmin

12min

222min

222min

2

2

110

110

S

OS

Okk

S

Ok

SOk

OSSSkK

k

k

k

caacutech tiacutenh toaacuten Q tương tự (xem HW)

K = số lượng cửa sổ bao trugravem đối tượngLagravem thế nagraveo tiacutenh được K

Transport Layer 3-109

HTTP Mocirc higravenh Giả sử trang Web chứa

1 trang HTML (kiacutech thước O bits) M higravenh ảnh (mỗi caacutei kiacutech thướcO bits)

HTTP khocircng bền vững M+1 TCP kết nối Thời gian đaacutep ứng = (M+1)OR + (M+1)2RTT + tổng số thời

gian rảnh HTTP bền vững

2 RTT để yecircu cầu vagrave nhận file HTML 1 RTT để yecircu cầu vagrave nhận M higravenh ảnh Thời gian đaacutep ứng = (M+1)OR + 3RTT + tổng số thời gian

rảnh HTTP khocircng bền vững với X kết nối song song

Giả sử MX lagrave số nguyecircn 1 TCP kết nối cho file MX thiết lập caacutec kết nối song song cho caacutec higravenh ảnh Thời gian đaacutep ứng = (M+1)OR + (MX + 1)2RTT + tổng số

thời gian rảnh

Transport Layer 3-110

02468

101214161820

28Kbps

100Kbps

1Mbps

10Mbps

non-persistent

persistent

parallel non-persistent

HTTP thời gian đaacutep ứng (giacircy)RTT = 100 msec O = 5 Kbytes M=10 vagrave X=5

Với băng thocircng thấp thời gian kết nối amp đaacutep ứng trội hơn thời gian truyền

Caacutec kết nối bền vững chỉ cho sự cải thiện khocircng đaacuteng kể trecircn caacutec kết nối song song

Transport Layer 3-111

0

10

20

30

40

50

60

70

28Kbps

100Kbps

1Mbps

10Mbps

non-persistent

persistent

parallel non-persistent

HTTP thời gian đaacutep ứng (giacircy)

RTT =1 sec O = 5 Kbytes M=10 and X=5

Với RTT lớn hơn thời gian đaacutep ứng trội hơn thời gian trễ chờ thiết lập kết nốiTCP amp khởi động chậm Caacutec kết nối bền vững bacircy giờ cho thấy cải thiện rotilde rệt đặc biệtvới caacutec mạng băng thocircng cao

Transport Layer 3-112

Chương 3 Tổng kết caacutec nguyecircn lyacute của caacutec

dịch vụ lớp transport multiplexing

demultiplexing truyền dữ liệu tin cậy điều khiển luồng điều khiển tắc nghẽn

khởi tạo vagrave hiện thực trong Internet UDP TCP

Tiếp theo nghiecircn cứu xong

caacutec vấn đề ldquongoagravei biecircnrdquo (caacutec lớp application transport)

chuẩn bị vagraveo phần ldquolotildeirdquo của mạng

  • Slide 1
  • Chương 3 Lớp Transport
  • Chương 3 Nội dung trigravenh bagravey
  • Caacutec dịch vụ vagrave giao thức Transport
  • Lớp Transport với lớp network
  • Caacutec giao thức lớp transport trecircn Internet
  • Slide 7
  • Multiplexingdemultiplexing
  • Demultiplexing lagravem việc như thế nagraveo
  • Demultiplexing khocircng kết nối
  • Demultiplexing khocircng kết nối (tiếp)
  • Demultiplexing hướng kết nối
  • Demultiplexing hướng kết nối (tiếp)
  • Demultiplexing hướng kết nối Threaded Web Server
  • Slide 15
  • UDP User Datagram Protocol [RFC 768]
  • UDP (tt)
  • UDP checksum
  • Viacute dụ Checksum
  • Slide 20
  • Caacutec nguyecircn lyacute truyền dữ liệu tin cậy
  • Slide 22
  • Slide 23
  • Truyền dữ liệu tin cậy
  • Slide 25
  • Rdt10 truyền dữ liệu tin cậy trecircn 1 kecircnh truyền tin cậy
  • Rdt20 kecircnh với caacutec lỗi
  • rdt20 đặc tả FSM
  • rdt20 hoạt động khi khocircng lỗi
  • rdt20 hoạt động khi coacute lỗi
  • rdt20 coacute lỗ hổng nghiecircm trọng
  • rdt21 người gửi quản lyacute caacutec ACKNAK bị hỏng
  • Slide 33
  • rdt21 thảo luận
  • rdt22 một giao thức khocircng cần NAK
  • rdt22 gửi nhận caacutec mảnh
  • rdt30 caacutec kecircnh với lỗi vagrave mất maacutet
  • rdt30 gửi
  • hagravenh động của rdt30
  • Slide 40
  • Hiệu suất của rdt30
  • rdt30 hoạt động dừng-vagrave-chờ
  • Caacutec giao thức Pipelined
  • Pipelining độ khả dụng tăng
  • Go-Back-N
  • GBN becircn gửi mở rộng FSM
  • GBN becircn nhận mở rộng FSM
  • GBN hoạt động
  • Lặp coacute lựa chọn
  • Lặp coacute lựa chọn caacutec cửa sổ gửi nhận
  • Slide 51
  • Hoạt động của lặp coacute lựa chọn
  • Lặp coacute lựa chọn tigravenh trạng khoacute giải quyết
  • Slide 54
  • TCP Tổng quan RFCs 793 1122 1323 2018 2581
  • TCP cấu truacutec đoạn
  • Caacutec số thứ tự TCP vagrave ACK
  • TCP Round Trip Time vagraveTimeout
  • TCP Round Trip Time vagrave Timeout
  • Viacute dụ đaacutenh giaacute RTT
  • Slide 61
  • TCP truyền dữ liệu tin cậy
  • TCP caacutec sự kiện
  • TCP becircn gửi (đơn giản)
  • TCP caacutec tigravenh huống truyền lại
  • TCP caacutec tigravenh huống truyền lại (tt)
  • TCP sinh ra ACK [RFC 1122 RFC 2581]
  • Truyền lại nhanh
  • Giải thuật truyền lại nhanh
  • Slide 70
  • TCP điều khiển luồng
  • TCP điều khiển luồng caacutech lagravem
  • Slide 73
  • TCP quản lyacute kết nối
  • TCP quản lyacute kết nối (tt)
  • Slide 76
  • Slide 77
  • Slide 78
  • Caacutec nguyecircn lyacute điều khiển tắc nghẽn
  • Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 1
  • Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 2
  • Slide 82
  • Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 3
  • Slide 84
  • Caacutec caacutech tiếp cận đối với điều khiển tắc nghẽn
  • Viacute dụ điều khiển tắc nghẽn ATM ABR
  • Slide 87
  • Slide 88
  • TCP điều khiển tắc nghẽn additive tăng lecircn multiplicative giảm xuống
  • TCP điều khiển tắc nghẽn chi tiết
  • TCP khởi động chậm
  • TCP khởi động chậm (tt)
  • Tinh chế
  • Tinh chế nhận biết mất maacutet
  • Tổng kết TCP điều khiển tắc nghẽn
  • TCP điều khiển tắc nghẽn becircn gửi
  • TCP throughput
  • TCP tương lai
  • TCP tiacutenh cocircng bằng
  • Tại sao phải TCP cocircng bằng
  • TCP tiacutenh cocircng bằng (tt)
  • Mocirc higravenh trễ
  • Cửa sổ tắc nghẽn cố định (1)
  • Cửa sổ tắc nghẽn cố định (2)
  • TCP Mocirc higravenh trễ Khởi động chậm (1)
  • TCP Mocirc higravenh trễ Khởi động chậm (2)
  • TCP Mocirc higravenh trễ(3)
  • TCP Mocirc higravenh trễ (4)
  • HTTP Mocirc higravenh
  • Slide 110
  • Slide 111
  • Chương 3 Tổng kết

Transport Layer 3-96

TCP điều khiển tắc nghẽn becircn gửi

Trạng thaacutei Sự kiện TCP becircn gửi hagravenh động Diễn giải

Slow Start (SS)-Khởi động chậm

ACK baacuteo nhận cho dữ liệu chưa ACK trước đoacute

CongWin = CongWin + MSS If (CongWin gt Threshold) cagravei đặt trạng thaacutei ldquoTraacutenh tắc nghẽnrdquo

Hậu quả lagravem tăng gấp đocirci CongWin mỗi RTT

CongestionAvoidance (CA) ndashTraacutenh tắc nghẽn

ACK baacuteo nhận cho dữ liệu chưa ACK trước đoacute

CongWin = CongWin+MSS (MSSCongWin)

Additive tăng lecircn lagravem tăng CongWin lecircn 1 MSS mỗi RTT

SS hoặc CA Sự cố mất maacutet xảy ra khi thấy coacute 3 ACK trugraveng lặp

Threshold = CongWin2 CongWin = Thresholdcagravei đặt trạng thaacutei ldquoTraacutenh tắc nghẽnrdquo

Khocirci phục nhanh hiện thực giảm xuống multiplicative CongWin sẽ khocircng giảm xuống dưới 1 MSS

SS hoặc CA Timeout Threshold = CongWin2 CongWin = 1 MSScagravei đặt trạng thaacutei ldquoKhởi động chậmrdquo

Vagraveo chế độ ldquoKhởi động chậmrdquo

SS hoặc CA ACK trugraveng lặp

Đếm ACK tăng lecircn cho đoạn vừa được ACK

CongWin vagrave Threshold khocircng thay đổi

Transport Layer 3-97

TCP throughput

Throughout trung bigravenh của TCP biểu diễn qua kiacutech thước của sổ vagrave RTT Bỏ qua trạng thaacutei ldquoKhởi động chậmrdquo

Cho W lagrave kiacutech thước cửa sổ khi coacute mất maacutet xảy ra

Khi kiacutech thước cửa sổ = W lưu lượng = WRTT

Chỉ ngay sau khi mất maacutet cửa sổ giảm xuống = W2 lưu lượng = W2RTT

throughout trung bigravenh 075 WRTT

Transport Layer 3-98

TCP tương lai

Viacute dụ caacutec đoạn dagravei 1500 byte RTT 100ms lưu lượng 10 Gbps

Kiacutech thước cửa sổ yecircu cầu W = 83333 đoạn trecircn đường truyền

Lưu lượng trong caacutec trường hợp mất maacutet

L = 210-10

Phiecircn bản mới của TCP dagravenh cho nhu cầu tốc độ cao

LRTT

MSS221

Transport Layer 3-99

Mục tiecircu nếu K phiecircn lagravem việc TCP chia sẻ kết nối cổ chai của băng thocircng lagrave R mỗi phiecircn coacute tốc độ trung bigravenh lagrave RK

TCP kết nối 1

router cổ chaikhả năng R

TCP kết nối 2

TCP tiacutenh cocircng bằng

Transport Layer 3-100

Tại sao phải TCP cocircng bằng

2 phiecircn lagravem việc cạnh tranh nhau Additive tăng lưu lượng tăng multiplicative giảm lưu lượng tương xứng

R

R

chia sẻ băng thocircng bằng nhau

Connection 1 throughputConnect

ion 2

th

roughput

traacutenh tắc nghẽn additive tăng lecircnmất maacutet giảm cửa sổ bằng 12

traacutenh tắc nghẽn additive tăng lecircnmất maacutet giảm cửa sổ bằng 12

Transport Layer 3-101

TCP tiacutenh cocircng bằng (tt)

Tiacutenh cocircng bằng amp UDP nhiều ứng dụng

thường khocircng dugraveng TCP khocircng muốn tốc độ bị

điều tiết do điều khiển tắc nghẽn

Thay bằng dugraveng UDP truyền audiovideo với

tốc độ ổn định chịu được mất maacutet

Nghiecircn cứu giao thức thacircn thiện với TCP

Tiacutenh cocircng bằng amp caacutec kết nối TCP song song

khocircng coacute gigrave ngăn cản việc ứng dụng mở caacutec kết nối song song giữa 2 host

Trigravenh duyệt Web lagravem giống như thế

Viacute dụ tốc độ R hỗ trợ 9 kết nối ứng dụng mới yecircu cầu 1

TCP coacute tốc độ R10 ứng dụng mới yecircu cầu 11

TCP coacute tốc độ R2

Transport Layer 3-102

Mocirc higravenh trễ

Hỏi Mất bao lacircu để nhận 1 đối tượng từ Web server sau khi gửi yecircu cầu

Bỏ qua tắc nghẽn trễ bị ảnh hưởng bởi

thiết lập kết nối TCP trễ truyền dữ liệu khởi động chậm

Notation caacutec giả định Giả sử một kết nối giữa

client vagrave server coacute tốc độ R

S MSS (bits) O kiacutech thước đối tượng

(bits) khocircng truyền lại (khocircng

mất maacutet khocircng hỏng)

Kiacutech thước cửa sổ Giả định 1 cửa sổ tắc

nghẽn cố định coacute W đoạn Sau đoacute cửa sổ thay đổi

mocirc higravenh khởi động chậm

Transport Layer 3-103

Cửa sổ tắc nghẽn cố định (1)

Trường hợp đầu tiecircnWSR gt RTT + SR cho

đoạn đầu tiecircn trong cửa sổ trả về trước khi cửa sổ dữ liệu gửi ACK

trễ = 2RTT + OR

Transport Layer 3-104

Cửa sổ tắc nghẽn cố định (2)

Trường hợp thứ hai WSR lt RTT + SR sent

chờ cho ACK sau khi gửi dữ liệu

trễ = 2RTT + OR+ (K-1)[SR + RTT - WSR]

Transport Layer 3-105

TCP Mocirc higravenh trễ Khởi động chậm (1)

Bacircy giờ giả sử kiacutech thước cửa sổ tăng lecircn tugravey theo quaacute trigravenh khởi động chậm

Độ trễ của một đối tượng sẽ lagrave

R

S

R

SRTTP

R

ORTTLatency P )12(2

trong đoacute P lagrave số lần TCP rảnh ở tại server

1min KQP

- trong đoacute Q lagrave số lần server rảnh nếu đối tượng đatilde khởi tạo kiacutech thước

- vagrave K lagrave số lượng cửa sổ bao trugravem đối tượng

Transport Layer 3-106

TCP Mocirc higravenh trễ Khởi động chậm (2)

RTT

initia te TCPconnection

requestobject

first w indow= S R

second w indow= 2S R

third w indow= 4S R

fourth w indow= 8S R

com pletetransm issionobject

delivered

tim e atc lient

tim e atserver

Viacute dụbull OS = 15 đoạnbull K = 4 cửa sổbull Q = 2bull P = minK-1Q = 2

Server rảnh P=2 lần

Caacutec thagravenh phần trễbull 2 RTT dagravenh cho thiết lập kết nối vagrave yecircu cầubull OR để truyền đối tượngbullthời gian server rảnh bởi vigrave khởi động chậm

Server rảnh P = minK-1Q lần

Transport Layer 3-107

TCP Mocirc higravenh trễ(3)

R

S

R

SRTTPRTT

R

O

R

SRTT

R

SRTT

R

O

idleTimeRTTR

O

P

kP

k

P

pp

)12(][2

]2[2

2delay

1

1

1

th window after the timeidle 2 1 kR

SRTT

R

S k

ementacknowledg receivesserver until

segment send tostartsserver when from time RTTR

S

window kth the transmit totime2 1

R

Sk

RTT

initia te TCPconnection

requestobject

first w indow= S R

second w indow= 2S R

third w indow= 4S R

fourth w indow= 8S R

com pletetransm issionobject

delivered

tim e atc lient

tim e atserver

Transport Layer 3-108

TCP Mocirc higravenh trễ (4)

)1(log

)1(logmin

12min

222min

222min

2

2

110

110

S

OS

Okk

S

Ok

SOk

OSSSkK

k

k

k

caacutech tiacutenh toaacuten Q tương tự (xem HW)

K = số lượng cửa sổ bao trugravem đối tượngLagravem thế nagraveo tiacutenh được K

Transport Layer 3-109

HTTP Mocirc higravenh Giả sử trang Web chứa

1 trang HTML (kiacutech thước O bits) M higravenh ảnh (mỗi caacutei kiacutech thướcO bits)

HTTP khocircng bền vững M+1 TCP kết nối Thời gian đaacutep ứng = (M+1)OR + (M+1)2RTT + tổng số thời

gian rảnh HTTP bền vững

2 RTT để yecircu cầu vagrave nhận file HTML 1 RTT để yecircu cầu vagrave nhận M higravenh ảnh Thời gian đaacutep ứng = (M+1)OR + 3RTT + tổng số thời gian

rảnh HTTP khocircng bền vững với X kết nối song song

Giả sử MX lagrave số nguyecircn 1 TCP kết nối cho file MX thiết lập caacutec kết nối song song cho caacutec higravenh ảnh Thời gian đaacutep ứng = (M+1)OR + (MX + 1)2RTT + tổng số

thời gian rảnh

Transport Layer 3-110

02468

101214161820

28Kbps

100Kbps

1Mbps

10Mbps

non-persistent

persistent

parallel non-persistent

HTTP thời gian đaacutep ứng (giacircy)RTT = 100 msec O = 5 Kbytes M=10 vagrave X=5

Với băng thocircng thấp thời gian kết nối amp đaacutep ứng trội hơn thời gian truyền

Caacutec kết nối bền vững chỉ cho sự cải thiện khocircng đaacuteng kể trecircn caacutec kết nối song song

Transport Layer 3-111

0

10

20

30

40

50

60

70

28Kbps

100Kbps

1Mbps

10Mbps

non-persistent

persistent

parallel non-persistent

HTTP thời gian đaacutep ứng (giacircy)

RTT =1 sec O = 5 Kbytes M=10 and X=5

Với RTT lớn hơn thời gian đaacutep ứng trội hơn thời gian trễ chờ thiết lập kết nốiTCP amp khởi động chậm Caacutec kết nối bền vững bacircy giờ cho thấy cải thiện rotilde rệt đặc biệtvới caacutec mạng băng thocircng cao

Transport Layer 3-112

Chương 3 Tổng kết caacutec nguyecircn lyacute của caacutec

dịch vụ lớp transport multiplexing

demultiplexing truyền dữ liệu tin cậy điều khiển luồng điều khiển tắc nghẽn

khởi tạo vagrave hiện thực trong Internet UDP TCP

Tiếp theo nghiecircn cứu xong

caacutec vấn đề ldquongoagravei biecircnrdquo (caacutec lớp application transport)

chuẩn bị vagraveo phần ldquolotildeirdquo của mạng

  • Slide 1
  • Chương 3 Lớp Transport
  • Chương 3 Nội dung trigravenh bagravey
  • Caacutec dịch vụ vagrave giao thức Transport
  • Lớp Transport với lớp network
  • Caacutec giao thức lớp transport trecircn Internet
  • Slide 7
  • Multiplexingdemultiplexing
  • Demultiplexing lagravem việc như thế nagraveo
  • Demultiplexing khocircng kết nối
  • Demultiplexing khocircng kết nối (tiếp)
  • Demultiplexing hướng kết nối
  • Demultiplexing hướng kết nối (tiếp)
  • Demultiplexing hướng kết nối Threaded Web Server
  • Slide 15
  • UDP User Datagram Protocol [RFC 768]
  • UDP (tt)
  • UDP checksum
  • Viacute dụ Checksum
  • Slide 20
  • Caacutec nguyecircn lyacute truyền dữ liệu tin cậy
  • Slide 22
  • Slide 23
  • Truyền dữ liệu tin cậy
  • Slide 25
  • Rdt10 truyền dữ liệu tin cậy trecircn 1 kecircnh truyền tin cậy
  • Rdt20 kecircnh với caacutec lỗi
  • rdt20 đặc tả FSM
  • rdt20 hoạt động khi khocircng lỗi
  • rdt20 hoạt động khi coacute lỗi
  • rdt20 coacute lỗ hổng nghiecircm trọng
  • rdt21 người gửi quản lyacute caacutec ACKNAK bị hỏng
  • Slide 33
  • rdt21 thảo luận
  • rdt22 một giao thức khocircng cần NAK
  • rdt22 gửi nhận caacutec mảnh
  • rdt30 caacutec kecircnh với lỗi vagrave mất maacutet
  • rdt30 gửi
  • hagravenh động của rdt30
  • Slide 40
  • Hiệu suất của rdt30
  • rdt30 hoạt động dừng-vagrave-chờ
  • Caacutec giao thức Pipelined
  • Pipelining độ khả dụng tăng
  • Go-Back-N
  • GBN becircn gửi mở rộng FSM
  • GBN becircn nhận mở rộng FSM
  • GBN hoạt động
  • Lặp coacute lựa chọn
  • Lặp coacute lựa chọn caacutec cửa sổ gửi nhận
  • Slide 51
  • Hoạt động của lặp coacute lựa chọn
  • Lặp coacute lựa chọn tigravenh trạng khoacute giải quyết
  • Slide 54
  • TCP Tổng quan RFCs 793 1122 1323 2018 2581
  • TCP cấu truacutec đoạn
  • Caacutec số thứ tự TCP vagrave ACK
  • TCP Round Trip Time vagraveTimeout
  • TCP Round Trip Time vagrave Timeout
  • Viacute dụ đaacutenh giaacute RTT
  • Slide 61
  • TCP truyền dữ liệu tin cậy
  • TCP caacutec sự kiện
  • TCP becircn gửi (đơn giản)
  • TCP caacutec tigravenh huống truyền lại
  • TCP caacutec tigravenh huống truyền lại (tt)
  • TCP sinh ra ACK [RFC 1122 RFC 2581]
  • Truyền lại nhanh
  • Giải thuật truyền lại nhanh
  • Slide 70
  • TCP điều khiển luồng
  • TCP điều khiển luồng caacutech lagravem
  • Slide 73
  • TCP quản lyacute kết nối
  • TCP quản lyacute kết nối (tt)
  • Slide 76
  • Slide 77
  • Slide 78
  • Caacutec nguyecircn lyacute điều khiển tắc nghẽn
  • Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 1
  • Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 2
  • Slide 82
  • Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 3
  • Slide 84
  • Caacutec caacutech tiếp cận đối với điều khiển tắc nghẽn
  • Viacute dụ điều khiển tắc nghẽn ATM ABR
  • Slide 87
  • Slide 88
  • TCP điều khiển tắc nghẽn additive tăng lecircn multiplicative giảm xuống
  • TCP điều khiển tắc nghẽn chi tiết
  • TCP khởi động chậm
  • TCP khởi động chậm (tt)
  • Tinh chế
  • Tinh chế nhận biết mất maacutet
  • Tổng kết TCP điều khiển tắc nghẽn
  • TCP điều khiển tắc nghẽn becircn gửi
  • TCP throughput
  • TCP tương lai
  • TCP tiacutenh cocircng bằng
  • Tại sao phải TCP cocircng bằng
  • TCP tiacutenh cocircng bằng (tt)
  • Mocirc higravenh trễ
  • Cửa sổ tắc nghẽn cố định (1)
  • Cửa sổ tắc nghẽn cố định (2)
  • TCP Mocirc higravenh trễ Khởi động chậm (1)
  • TCP Mocirc higravenh trễ Khởi động chậm (2)
  • TCP Mocirc higravenh trễ(3)
  • TCP Mocirc higravenh trễ (4)
  • HTTP Mocirc higravenh
  • Slide 110
  • Slide 111
  • Chương 3 Tổng kết

Transport Layer 3-97

TCP throughput

Throughout trung bigravenh của TCP biểu diễn qua kiacutech thước của sổ vagrave RTT Bỏ qua trạng thaacutei ldquoKhởi động chậmrdquo

Cho W lagrave kiacutech thước cửa sổ khi coacute mất maacutet xảy ra

Khi kiacutech thước cửa sổ = W lưu lượng = WRTT

Chỉ ngay sau khi mất maacutet cửa sổ giảm xuống = W2 lưu lượng = W2RTT

throughout trung bigravenh 075 WRTT

Transport Layer 3-98

TCP tương lai

Viacute dụ caacutec đoạn dagravei 1500 byte RTT 100ms lưu lượng 10 Gbps

Kiacutech thước cửa sổ yecircu cầu W = 83333 đoạn trecircn đường truyền

Lưu lượng trong caacutec trường hợp mất maacutet

L = 210-10

Phiecircn bản mới của TCP dagravenh cho nhu cầu tốc độ cao

LRTT

MSS221

Transport Layer 3-99

Mục tiecircu nếu K phiecircn lagravem việc TCP chia sẻ kết nối cổ chai của băng thocircng lagrave R mỗi phiecircn coacute tốc độ trung bigravenh lagrave RK

TCP kết nối 1

router cổ chaikhả năng R

TCP kết nối 2

TCP tiacutenh cocircng bằng

Transport Layer 3-100

Tại sao phải TCP cocircng bằng

2 phiecircn lagravem việc cạnh tranh nhau Additive tăng lưu lượng tăng multiplicative giảm lưu lượng tương xứng

R

R

chia sẻ băng thocircng bằng nhau

Connection 1 throughputConnect

ion 2

th

roughput

traacutenh tắc nghẽn additive tăng lecircnmất maacutet giảm cửa sổ bằng 12

traacutenh tắc nghẽn additive tăng lecircnmất maacutet giảm cửa sổ bằng 12

Transport Layer 3-101

TCP tiacutenh cocircng bằng (tt)

Tiacutenh cocircng bằng amp UDP nhiều ứng dụng

thường khocircng dugraveng TCP khocircng muốn tốc độ bị

điều tiết do điều khiển tắc nghẽn

Thay bằng dugraveng UDP truyền audiovideo với

tốc độ ổn định chịu được mất maacutet

Nghiecircn cứu giao thức thacircn thiện với TCP

Tiacutenh cocircng bằng amp caacutec kết nối TCP song song

khocircng coacute gigrave ngăn cản việc ứng dụng mở caacutec kết nối song song giữa 2 host

Trigravenh duyệt Web lagravem giống như thế

Viacute dụ tốc độ R hỗ trợ 9 kết nối ứng dụng mới yecircu cầu 1

TCP coacute tốc độ R10 ứng dụng mới yecircu cầu 11

TCP coacute tốc độ R2

Transport Layer 3-102

Mocirc higravenh trễ

Hỏi Mất bao lacircu để nhận 1 đối tượng từ Web server sau khi gửi yecircu cầu

Bỏ qua tắc nghẽn trễ bị ảnh hưởng bởi

thiết lập kết nối TCP trễ truyền dữ liệu khởi động chậm

Notation caacutec giả định Giả sử một kết nối giữa

client vagrave server coacute tốc độ R

S MSS (bits) O kiacutech thước đối tượng

(bits) khocircng truyền lại (khocircng

mất maacutet khocircng hỏng)

Kiacutech thước cửa sổ Giả định 1 cửa sổ tắc

nghẽn cố định coacute W đoạn Sau đoacute cửa sổ thay đổi

mocirc higravenh khởi động chậm

Transport Layer 3-103

Cửa sổ tắc nghẽn cố định (1)

Trường hợp đầu tiecircnWSR gt RTT + SR cho

đoạn đầu tiecircn trong cửa sổ trả về trước khi cửa sổ dữ liệu gửi ACK

trễ = 2RTT + OR

Transport Layer 3-104

Cửa sổ tắc nghẽn cố định (2)

Trường hợp thứ hai WSR lt RTT + SR sent

chờ cho ACK sau khi gửi dữ liệu

trễ = 2RTT + OR+ (K-1)[SR + RTT - WSR]

Transport Layer 3-105

TCP Mocirc higravenh trễ Khởi động chậm (1)

Bacircy giờ giả sử kiacutech thước cửa sổ tăng lecircn tugravey theo quaacute trigravenh khởi động chậm

Độ trễ của một đối tượng sẽ lagrave

R

S

R

SRTTP

R

ORTTLatency P )12(2

trong đoacute P lagrave số lần TCP rảnh ở tại server

1min KQP

- trong đoacute Q lagrave số lần server rảnh nếu đối tượng đatilde khởi tạo kiacutech thước

- vagrave K lagrave số lượng cửa sổ bao trugravem đối tượng

Transport Layer 3-106

TCP Mocirc higravenh trễ Khởi động chậm (2)

RTT

initia te TCPconnection

requestobject

first w indow= S R

second w indow= 2S R

third w indow= 4S R

fourth w indow= 8S R

com pletetransm issionobject

delivered

tim e atc lient

tim e atserver

Viacute dụbull OS = 15 đoạnbull K = 4 cửa sổbull Q = 2bull P = minK-1Q = 2

Server rảnh P=2 lần

Caacutec thagravenh phần trễbull 2 RTT dagravenh cho thiết lập kết nối vagrave yecircu cầubull OR để truyền đối tượngbullthời gian server rảnh bởi vigrave khởi động chậm

Server rảnh P = minK-1Q lần

Transport Layer 3-107

TCP Mocirc higravenh trễ(3)

R

S

R

SRTTPRTT

R

O

R

SRTT

R

SRTT

R

O

idleTimeRTTR

O

P

kP

k

P

pp

)12(][2

]2[2

2delay

1

1

1

th window after the timeidle 2 1 kR

SRTT

R

S k

ementacknowledg receivesserver until

segment send tostartsserver when from time RTTR

S

window kth the transmit totime2 1

R

Sk

RTT

initia te TCPconnection

requestobject

first w indow= S R

second w indow= 2S R

third w indow= 4S R

fourth w indow= 8S R

com pletetransm issionobject

delivered

tim e atc lient

tim e atserver

Transport Layer 3-108

TCP Mocirc higravenh trễ (4)

)1(log

)1(logmin

12min

222min

222min

2

2

110

110

S

OS

Okk

S

Ok

SOk

OSSSkK

k

k

k

caacutech tiacutenh toaacuten Q tương tự (xem HW)

K = số lượng cửa sổ bao trugravem đối tượngLagravem thế nagraveo tiacutenh được K

Transport Layer 3-109

HTTP Mocirc higravenh Giả sử trang Web chứa

1 trang HTML (kiacutech thước O bits) M higravenh ảnh (mỗi caacutei kiacutech thướcO bits)

HTTP khocircng bền vững M+1 TCP kết nối Thời gian đaacutep ứng = (M+1)OR + (M+1)2RTT + tổng số thời

gian rảnh HTTP bền vững

2 RTT để yecircu cầu vagrave nhận file HTML 1 RTT để yecircu cầu vagrave nhận M higravenh ảnh Thời gian đaacutep ứng = (M+1)OR + 3RTT + tổng số thời gian

rảnh HTTP khocircng bền vững với X kết nối song song

Giả sử MX lagrave số nguyecircn 1 TCP kết nối cho file MX thiết lập caacutec kết nối song song cho caacutec higravenh ảnh Thời gian đaacutep ứng = (M+1)OR + (MX + 1)2RTT + tổng số

thời gian rảnh

Transport Layer 3-110

02468

101214161820

28Kbps

100Kbps

1Mbps

10Mbps

non-persistent

persistent

parallel non-persistent

HTTP thời gian đaacutep ứng (giacircy)RTT = 100 msec O = 5 Kbytes M=10 vagrave X=5

Với băng thocircng thấp thời gian kết nối amp đaacutep ứng trội hơn thời gian truyền

Caacutec kết nối bền vững chỉ cho sự cải thiện khocircng đaacuteng kể trecircn caacutec kết nối song song

Transport Layer 3-111

0

10

20

30

40

50

60

70

28Kbps

100Kbps

1Mbps

10Mbps

non-persistent

persistent

parallel non-persistent

HTTP thời gian đaacutep ứng (giacircy)

RTT =1 sec O = 5 Kbytes M=10 and X=5

Với RTT lớn hơn thời gian đaacutep ứng trội hơn thời gian trễ chờ thiết lập kết nốiTCP amp khởi động chậm Caacutec kết nối bền vững bacircy giờ cho thấy cải thiện rotilde rệt đặc biệtvới caacutec mạng băng thocircng cao

Transport Layer 3-112

Chương 3 Tổng kết caacutec nguyecircn lyacute của caacutec

dịch vụ lớp transport multiplexing

demultiplexing truyền dữ liệu tin cậy điều khiển luồng điều khiển tắc nghẽn

khởi tạo vagrave hiện thực trong Internet UDP TCP

Tiếp theo nghiecircn cứu xong

caacutec vấn đề ldquongoagravei biecircnrdquo (caacutec lớp application transport)

chuẩn bị vagraveo phần ldquolotildeirdquo của mạng

  • Slide 1
  • Chương 3 Lớp Transport
  • Chương 3 Nội dung trigravenh bagravey
  • Caacutec dịch vụ vagrave giao thức Transport
  • Lớp Transport với lớp network
  • Caacutec giao thức lớp transport trecircn Internet
  • Slide 7
  • Multiplexingdemultiplexing
  • Demultiplexing lagravem việc như thế nagraveo
  • Demultiplexing khocircng kết nối
  • Demultiplexing khocircng kết nối (tiếp)
  • Demultiplexing hướng kết nối
  • Demultiplexing hướng kết nối (tiếp)
  • Demultiplexing hướng kết nối Threaded Web Server
  • Slide 15
  • UDP User Datagram Protocol [RFC 768]
  • UDP (tt)
  • UDP checksum
  • Viacute dụ Checksum
  • Slide 20
  • Caacutec nguyecircn lyacute truyền dữ liệu tin cậy
  • Slide 22
  • Slide 23
  • Truyền dữ liệu tin cậy
  • Slide 25
  • Rdt10 truyền dữ liệu tin cậy trecircn 1 kecircnh truyền tin cậy
  • Rdt20 kecircnh với caacutec lỗi
  • rdt20 đặc tả FSM
  • rdt20 hoạt động khi khocircng lỗi
  • rdt20 hoạt động khi coacute lỗi
  • rdt20 coacute lỗ hổng nghiecircm trọng
  • rdt21 người gửi quản lyacute caacutec ACKNAK bị hỏng
  • Slide 33
  • rdt21 thảo luận
  • rdt22 một giao thức khocircng cần NAK
  • rdt22 gửi nhận caacutec mảnh
  • rdt30 caacutec kecircnh với lỗi vagrave mất maacutet
  • rdt30 gửi
  • hagravenh động của rdt30
  • Slide 40
  • Hiệu suất của rdt30
  • rdt30 hoạt động dừng-vagrave-chờ
  • Caacutec giao thức Pipelined
  • Pipelining độ khả dụng tăng
  • Go-Back-N
  • GBN becircn gửi mở rộng FSM
  • GBN becircn nhận mở rộng FSM
  • GBN hoạt động
  • Lặp coacute lựa chọn
  • Lặp coacute lựa chọn caacutec cửa sổ gửi nhận
  • Slide 51
  • Hoạt động của lặp coacute lựa chọn
  • Lặp coacute lựa chọn tigravenh trạng khoacute giải quyết
  • Slide 54
  • TCP Tổng quan RFCs 793 1122 1323 2018 2581
  • TCP cấu truacutec đoạn
  • Caacutec số thứ tự TCP vagrave ACK
  • TCP Round Trip Time vagraveTimeout
  • TCP Round Trip Time vagrave Timeout
  • Viacute dụ đaacutenh giaacute RTT
  • Slide 61
  • TCP truyền dữ liệu tin cậy
  • TCP caacutec sự kiện
  • TCP becircn gửi (đơn giản)
  • TCP caacutec tigravenh huống truyền lại
  • TCP caacutec tigravenh huống truyền lại (tt)
  • TCP sinh ra ACK [RFC 1122 RFC 2581]
  • Truyền lại nhanh
  • Giải thuật truyền lại nhanh
  • Slide 70
  • TCP điều khiển luồng
  • TCP điều khiển luồng caacutech lagravem
  • Slide 73
  • TCP quản lyacute kết nối
  • TCP quản lyacute kết nối (tt)
  • Slide 76
  • Slide 77
  • Slide 78
  • Caacutec nguyecircn lyacute điều khiển tắc nghẽn
  • Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 1
  • Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 2
  • Slide 82
  • Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 3
  • Slide 84
  • Caacutec caacutech tiếp cận đối với điều khiển tắc nghẽn
  • Viacute dụ điều khiển tắc nghẽn ATM ABR
  • Slide 87
  • Slide 88
  • TCP điều khiển tắc nghẽn additive tăng lecircn multiplicative giảm xuống
  • TCP điều khiển tắc nghẽn chi tiết
  • TCP khởi động chậm
  • TCP khởi động chậm (tt)
  • Tinh chế
  • Tinh chế nhận biết mất maacutet
  • Tổng kết TCP điều khiển tắc nghẽn
  • TCP điều khiển tắc nghẽn becircn gửi
  • TCP throughput
  • TCP tương lai
  • TCP tiacutenh cocircng bằng
  • Tại sao phải TCP cocircng bằng
  • TCP tiacutenh cocircng bằng (tt)
  • Mocirc higravenh trễ
  • Cửa sổ tắc nghẽn cố định (1)
  • Cửa sổ tắc nghẽn cố định (2)
  • TCP Mocirc higravenh trễ Khởi động chậm (1)
  • TCP Mocirc higravenh trễ Khởi động chậm (2)
  • TCP Mocirc higravenh trễ(3)
  • TCP Mocirc higravenh trễ (4)
  • HTTP Mocirc higravenh
  • Slide 110
  • Slide 111
  • Chương 3 Tổng kết

Transport Layer 3-98

TCP tương lai

Viacute dụ caacutec đoạn dagravei 1500 byte RTT 100ms lưu lượng 10 Gbps

Kiacutech thước cửa sổ yecircu cầu W = 83333 đoạn trecircn đường truyền

Lưu lượng trong caacutec trường hợp mất maacutet

L = 210-10

Phiecircn bản mới của TCP dagravenh cho nhu cầu tốc độ cao

LRTT

MSS221

Transport Layer 3-99

Mục tiecircu nếu K phiecircn lagravem việc TCP chia sẻ kết nối cổ chai của băng thocircng lagrave R mỗi phiecircn coacute tốc độ trung bigravenh lagrave RK

TCP kết nối 1

router cổ chaikhả năng R

TCP kết nối 2

TCP tiacutenh cocircng bằng

Transport Layer 3-100

Tại sao phải TCP cocircng bằng

2 phiecircn lagravem việc cạnh tranh nhau Additive tăng lưu lượng tăng multiplicative giảm lưu lượng tương xứng

R

R

chia sẻ băng thocircng bằng nhau

Connection 1 throughputConnect

ion 2

th

roughput

traacutenh tắc nghẽn additive tăng lecircnmất maacutet giảm cửa sổ bằng 12

traacutenh tắc nghẽn additive tăng lecircnmất maacutet giảm cửa sổ bằng 12

Transport Layer 3-101

TCP tiacutenh cocircng bằng (tt)

Tiacutenh cocircng bằng amp UDP nhiều ứng dụng

thường khocircng dugraveng TCP khocircng muốn tốc độ bị

điều tiết do điều khiển tắc nghẽn

Thay bằng dugraveng UDP truyền audiovideo với

tốc độ ổn định chịu được mất maacutet

Nghiecircn cứu giao thức thacircn thiện với TCP

Tiacutenh cocircng bằng amp caacutec kết nối TCP song song

khocircng coacute gigrave ngăn cản việc ứng dụng mở caacutec kết nối song song giữa 2 host

Trigravenh duyệt Web lagravem giống như thế

Viacute dụ tốc độ R hỗ trợ 9 kết nối ứng dụng mới yecircu cầu 1

TCP coacute tốc độ R10 ứng dụng mới yecircu cầu 11

TCP coacute tốc độ R2

Transport Layer 3-102

Mocirc higravenh trễ

Hỏi Mất bao lacircu để nhận 1 đối tượng từ Web server sau khi gửi yecircu cầu

Bỏ qua tắc nghẽn trễ bị ảnh hưởng bởi

thiết lập kết nối TCP trễ truyền dữ liệu khởi động chậm

Notation caacutec giả định Giả sử một kết nối giữa

client vagrave server coacute tốc độ R

S MSS (bits) O kiacutech thước đối tượng

(bits) khocircng truyền lại (khocircng

mất maacutet khocircng hỏng)

Kiacutech thước cửa sổ Giả định 1 cửa sổ tắc

nghẽn cố định coacute W đoạn Sau đoacute cửa sổ thay đổi

mocirc higravenh khởi động chậm

Transport Layer 3-103

Cửa sổ tắc nghẽn cố định (1)

Trường hợp đầu tiecircnWSR gt RTT + SR cho

đoạn đầu tiecircn trong cửa sổ trả về trước khi cửa sổ dữ liệu gửi ACK

trễ = 2RTT + OR

Transport Layer 3-104

Cửa sổ tắc nghẽn cố định (2)

Trường hợp thứ hai WSR lt RTT + SR sent

chờ cho ACK sau khi gửi dữ liệu

trễ = 2RTT + OR+ (K-1)[SR + RTT - WSR]

Transport Layer 3-105

TCP Mocirc higravenh trễ Khởi động chậm (1)

Bacircy giờ giả sử kiacutech thước cửa sổ tăng lecircn tugravey theo quaacute trigravenh khởi động chậm

Độ trễ của một đối tượng sẽ lagrave

R

S

R

SRTTP

R

ORTTLatency P )12(2

trong đoacute P lagrave số lần TCP rảnh ở tại server

1min KQP

- trong đoacute Q lagrave số lần server rảnh nếu đối tượng đatilde khởi tạo kiacutech thước

- vagrave K lagrave số lượng cửa sổ bao trugravem đối tượng

Transport Layer 3-106

TCP Mocirc higravenh trễ Khởi động chậm (2)

RTT

initia te TCPconnection

requestobject

first w indow= S R

second w indow= 2S R

third w indow= 4S R

fourth w indow= 8S R

com pletetransm issionobject

delivered

tim e atc lient

tim e atserver

Viacute dụbull OS = 15 đoạnbull K = 4 cửa sổbull Q = 2bull P = minK-1Q = 2

Server rảnh P=2 lần

Caacutec thagravenh phần trễbull 2 RTT dagravenh cho thiết lập kết nối vagrave yecircu cầubull OR để truyền đối tượngbullthời gian server rảnh bởi vigrave khởi động chậm

Server rảnh P = minK-1Q lần

Transport Layer 3-107

TCP Mocirc higravenh trễ(3)

R

S

R

SRTTPRTT

R

O

R

SRTT

R

SRTT

R

O

idleTimeRTTR

O

P

kP

k

P

pp

)12(][2

]2[2

2delay

1

1

1

th window after the timeidle 2 1 kR

SRTT

R

S k

ementacknowledg receivesserver until

segment send tostartsserver when from time RTTR

S

window kth the transmit totime2 1

R

Sk

RTT

initia te TCPconnection

requestobject

first w indow= S R

second w indow= 2S R

third w indow= 4S R

fourth w indow= 8S R

com pletetransm issionobject

delivered

tim e atc lient

tim e atserver

Transport Layer 3-108

TCP Mocirc higravenh trễ (4)

)1(log

)1(logmin

12min

222min

222min

2

2

110

110

S

OS

Okk

S

Ok

SOk

OSSSkK

k

k

k

caacutech tiacutenh toaacuten Q tương tự (xem HW)

K = số lượng cửa sổ bao trugravem đối tượngLagravem thế nagraveo tiacutenh được K

Transport Layer 3-109

HTTP Mocirc higravenh Giả sử trang Web chứa

1 trang HTML (kiacutech thước O bits) M higravenh ảnh (mỗi caacutei kiacutech thướcO bits)

HTTP khocircng bền vững M+1 TCP kết nối Thời gian đaacutep ứng = (M+1)OR + (M+1)2RTT + tổng số thời

gian rảnh HTTP bền vững

2 RTT để yecircu cầu vagrave nhận file HTML 1 RTT để yecircu cầu vagrave nhận M higravenh ảnh Thời gian đaacutep ứng = (M+1)OR + 3RTT + tổng số thời gian

rảnh HTTP khocircng bền vững với X kết nối song song

Giả sử MX lagrave số nguyecircn 1 TCP kết nối cho file MX thiết lập caacutec kết nối song song cho caacutec higravenh ảnh Thời gian đaacutep ứng = (M+1)OR + (MX + 1)2RTT + tổng số

thời gian rảnh

Transport Layer 3-110

02468

101214161820

28Kbps

100Kbps

1Mbps

10Mbps

non-persistent

persistent

parallel non-persistent

HTTP thời gian đaacutep ứng (giacircy)RTT = 100 msec O = 5 Kbytes M=10 vagrave X=5

Với băng thocircng thấp thời gian kết nối amp đaacutep ứng trội hơn thời gian truyền

Caacutec kết nối bền vững chỉ cho sự cải thiện khocircng đaacuteng kể trecircn caacutec kết nối song song

Transport Layer 3-111

0

10

20

30

40

50

60

70

28Kbps

100Kbps

1Mbps

10Mbps

non-persistent

persistent

parallel non-persistent

HTTP thời gian đaacutep ứng (giacircy)

RTT =1 sec O = 5 Kbytes M=10 and X=5

Với RTT lớn hơn thời gian đaacutep ứng trội hơn thời gian trễ chờ thiết lập kết nốiTCP amp khởi động chậm Caacutec kết nối bền vững bacircy giờ cho thấy cải thiện rotilde rệt đặc biệtvới caacutec mạng băng thocircng cao

Transport Layer 3-112

Chương 3 Tổng kết caacutec nguyecircn lyacute của caacutec

dịch vụ lớp transport multiplexing

demultiplexing truyền dữ liệu tin cậy điều khiển luồng điều khiển tắc nghẽn

khởi tạo vagrave hiện thực trong Internet UDP TCP

Tiếp theo nghiecircn cứu xong

caacutec vấn đề ldquongoagravei biecircnrdquo (caacutec lớp application transport)

chuẩn bị vagraveo phần ldquolotildeirdquo của mạng

  • Slide 1
  • Chương 3 Lớp Transport
  • Chương 3 Nội dung trigravenh bagravey
  • Caacutec dịch vụ vagrave giao thức Transport
  • Lớp Transport với lớp network
  • Caacutec giao thức lớp transport trecircn Internet
  • Slide 7
  • Multiplexingdemultiplexing
  • Demultiplexing lagravem việc như thế nagraveo
  • Demultiplexing khocircng kết nối
  • Demultiplexing khocircng kết nối (tiếp)
  • Demultiplexing hướng kết nối
  • Demultiplexing hướng kết nối (tiếp)
  • Demultiplexing hướng kết nối Threaded Web Server
  • Slide 15
  • UDP User Datagram Protocol [RFC 768]
  • UDP (tt)
  • UDP checksum
  • Viacute dụ Checksum
  • Slide 20
  • Caacutec nguyecircn lyacute truyền dữ liệu tin cậy
  • Slide 22
  • Slide 23
  • Truyền dữ liệu tin cậy
  • Slide 25
  • Rdt10 truyền dữ liệu tin cậy trecircn 1 kecircnh truyền tin cậy
  • Rdt20 kecircnh với caacutec lỗi
  • rdt20 đặc tả FSM
  • rdt20 hoạt động khi khocircng lỗi
  • rdt20 hoạt động khi coacute lỗi
  • rdt20 coacute lỗ hổng nghiecircm trọng
  • rdt21 người gửi quản lyacute caacutec ACKNAK bị hỏng
  • Slide 33
  • rdt21 thảo luận
  • rdt22 một giao thức khocircng cần NAK
  • rdt22 gửi nhận caacutec mảnh
  • rdt30 caacutec kecircnh với lỗi vagrave mất maacutet
  • rdt30 gửi
  • hagravenh động của rdt30
  • Slide 40
  • Hiệu suất của rdt30
  • rdt30 hoạt động dừng-vagrave-chờ
  • Caacutec giao thức Pipelined
  • Pipelining độ khả dụng tăng
  • Go-Back-N
  • GBN becircn gửi mở rộng FSM
  • GBN becircn nhận mở rộng FSM
  • GBN hoạt động
  • Lặp coacute lựa chọn
  • Lặp coacute lựa chọn caacutec cửa sổ gửi nhận
  • Slide 51
  • Hoạt động của lặp coacute lựa chọn
  • Lặp coacute lựa chọn tigravenh trạng khoacute giải quyết
  • Slide 54
  • TCP Tổng quan RFCs 793 1122 1323 2018 2581
  • TCP cấu truacutec đoạn
  • Caacutec số thứ tự TCP vagrave ACK
  • TCP Round Trip Time vagraveTimeout
  • TCP Round Trip Time vagrave Timeout
  • Viacute dụ đaacutenh giaacute RTT
  • Slide 61
  • TCP truyền dữ liệu tin cậy
  • TCP caacutec sự kiện
  • TCP becircn gửi (đơn giản)
  • TCP caacutec tigravenh huống truyền lại
  • TCP caacutec tigravenh huống truyền lại (tt)
  • TCP sinh ra ACK [RFC 1122 RFC 2581]
  • Truyền lại nhanh
  • Giải thuật truyền lại nhanh
  • Slide 70
  • TCP điều khiển luồng
  • TCP điều khiển luồng caacutech lagravem
  • Slide 73
  • TCP quản lyacute kết nối
  • TCP quản lyacute kết nối (tt)
  • Slide 76
  • Slide 77
  • Slide 78
  • Caacutec nguyecircn lyacute điều khiển tắc nghẽn
  • Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 1
  • Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 2
  • Slide 82
  • Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 3
  • Slide 84
  • Caacutec caacutech tiếp cận đối với điều khiển tắc nghẽn
  • Viacute dụ điều khiển tắc nghẽn ATM ABR
  • Slide 87
  • Slide 88
  • TCP điều khiển tắc nghẽn additive tăng lecircn multiplicative giảm xuống
  • TCP điều khiển tắc nghẽn chi tiết
  • TCP khởi động chậm
  • TCP khởi động chậm (tt)
  • Tinh chế
  • Tinh chế nhận biết mất maacutet
  • Tổng kết TCP điều khiển tắc nghẽn
  • TCP điều khiển tắc nghẽn becircn gửi
  • TCP throughput
  • TCP tương lai
  • TCP tiacutenh cocircng bằng
  • Tại sao phải TCP cocircng bằng
  • TCP tiacutenh cocircng bằng (tt)
  • Mocirc higravenh trễ
  • Cửa sổ tắc nghẽn cố định (1)
  • Cửa sổ tắc nghẽn cố định (2)
  • TCP Mocirc higravenh trễ Khởi động chậm (1)
  • TCP Mocirc higravenh trễ Khởi động chậm (2)
  • TCP Mocirc higravenh trễ(3)
  • TCP Mocirc higravenh trễ (4)
  • HTTP Mocirc higravenh
  • Slide 110
  • Slide 111
  • Chương 3 Tổng kết

Transport Layer 3-99

Mục tiecircu nếu K phiecircn lagravem việc TCP chia sẻ kết nối cổ chai của băng thocircng lagrave R mỗi phiecircn coacute tốc độ trung bigravenh lagrave RK

TCP kết nối 1

router cổ chaikhả năng R

TCP kết nối 2

TCP tiacutenh cocircng bằng

Transport Layer 3-100

Tại sao phải TCP cocircng bằng

2 phiecircn lagravem việc cạnh tranh nhau Additive tăng lưu lượng tăng multiplicative giảm lưu lượng tương xứng

R

R

chia sẻ băng thocircng bằng nhau

Connection 1 throughputConnect

ion 2

th

roughput

traacutenh tắc nghẽn additive tăng lecircnmất maacutet giảm cửa sổ bằng 12

traacutenh tắc nghẽn additive tăng lecircnmất maacutet giảm cửa sổ bằng 12

Transport Layer 3-101

TCP tiacutenh cocircng bằng (tt)

Tiacutenh cocircng bằng amp UDP nhiều ứng dụng

thường khocircng dugraveng TCP khocircng muốn tốc độ bị

điều tiết do điều khiển tắc nghẽn

Thay bằng dugraveng UDP truyền audiovideo với

tốc độ ổn định chịu được mất maacutet

Nghiecircn cứu giao thức thacircn thiện với TCP

Tiacutenh cocircng bằng amp caacutec kết nối TCP song song

khocircng coacute gigrave ngăn cản việc ứng dụng mở caacutec kết nối song song giữa 2 host

Trigravenh duyệt Web lagravem giống như thế

Viacute dụ tốc độ R hỗ trợ 9 kết nối ứng dụng mới yecircu cầu 1

TCP coacute tốc độ R10 ứng dụng mới yecircu cầu 11

TCP coacute tốc độ R2

Transport Layer 3-102

Mocirc higravenh trễ

Hỏi Mất bao lacircu để nhận 1 đối tượng từ Web server sau khi gửi yecircu cầu

Bỏ qua tắc nghẽn trễ bị ảnh hưởng bởi

thiết lập kết nối TCP trễ truyền dữ liệu khởi động chậm

Notation caacutec giả định Giả sử một kết nối giữa

client vagrave server coacute tốc độ R

S MSS (bits) O kiacutech thước đối tượng

(bits) khocircng truyền lại (khocircng

mất maacutet khocircng hỏng)

Kiacutech thước cửa sổ Giả định 1 cửa sổ tắc

nghẽn cố định coacute W đoạn Sau đoacute cửa sổ thay đổi

mocirc higravenh khởi động chậm

Transport Layer 3-103

Cửa sổ tắc nghẽn cố định (1)

Trường hợp đầu tiecircnWSR gt RTT + SR cho

đoạn đầu tiecircn trong cửa sổ trả về trước khi cửa sổ dữ liệu gửi ACK

trễ = 2RTT + OR

Transport Layer 3-104

Cửa sổ tắc nghẽn cố định (2)

Trường hợp thứ hai WSR lt RTT + SR sent

chờ cho ACK sau khi gửi dữ liệu

trễ = 2RTT + OR+ (K-1)[SR + RTT - WSR]

Transport Layer 3-105

TCP Mocirc higravenh trễ Khởi động chậm (1)

Bacircy giờ giả sử kiacutech thước cửa sổ tăng lecircn tugravey theo quaacute trigravenh khởi động chậm

Độ trễ của một đối tượng sẽ lagrave

R

S

R

SRTTP

R

ORTTLatency P )12(2

trong đoacute P lagrave số lần TCP rảnh ở tại server

1min KQP

- trong đoacute Q lagrave số lần server rảnh nếu đối tượng đatilde khởi tạo kiacutech thước

- vagrave K lagrave số lượng cửa sổ bao trugravem đối tượng

Transport Layer 3-106

TCP Mocirc higravenh trễ Khởi động chậm (2)

RTT

initia te TCPconnection

requestobject

first w indow= S R

second w indow= 2S R

third w indow= 4S R

fourth w indow= 8S R

com pletetransm issionobject

delivered

tim e atc lient

tim e atserver

Viacute dụbull OS = 15 đoạnbull K = 4 cửa sổbull Q = 2bull P = minK-1Q = 2

Server rảnh P=2 lần

Caacutec thagravenh phần trễbull 2 RTT dagravenh cho thiết lập kết nối vagrave yecircu cầubull OR để truyền đối tượngbullthời gian server rảnh bởi vigrave khởi động chậm

Server rảnh P = minK-1Q lần

Transport Layer 3-107

TCP Mocirc higravenh trễ(3)

R

S

R

SRTTPRTT

R

O

R

SRTT

R

SRTT

R

O

idleTimeRTTR

O

P

kP

k

P

pp

)12(][2

]2[2

2delay

1

1

1

th window after the timeidle 2 1 kR

SRTT

R

S k

ementacknowledg receivesserver until

segment send tostartsserver when from time RTTR

S

window kth the transmit totime2 1

R

Sk

RTT

initia te TCPconnection

requestobject

first w indow= S R

second w indow= 2S R

third w indow= 4S R

fourth w indow= 8S R

com pletetransm issionobject

delivered

tim e atc lient

tim e atserver

Transport Layer 3-108

TCP Mocirc higravenh trễ (4)

)1(log

)1(logmin

12min

222min

222min

2

2

110

110

S

OS

Okk

S

Ok

SOk

OSSSkK

k

k

k

caacutech tiacutenh toaacuten Q tương tự (xem HW)

K = số lượng cửa sổ bao trugravem đối tượngLagravem thế nagraveo tiacutenh được K

Transport Layer 3-109

HTTP Mocirc higravenh Giả sử trang Web chứa

1 trang HTML (kiacutech thước O bits) M higravenh ảnh (mỗi caacutei kiacutech thướcO bits)

HTTP khocircng bền vững M+1 TCP kết nối Thời gian đaacutep ứng = (M+1)OR + (M+1)2RTT + tổng số thời

gian rảnh HTTP bền vững

2 RTT để yecircu cầu vagrave nhận file HTML 1 RTT để yecircu cầu vagrave nhận M higravenh ảnh Thời gian đaacutep ứng = (M+1)OR + 3RTT + tổng số thời gian

rảnh HTTP khocircng bền vững với X kết nối song song

Giả sử MX lagrave số nguyecircn 1 TCP kết nối cho file MX thiết lập caacutec kết nối song song cho caacutec higravenh ảnh Thời gian đaacutep ứng = (M+1)OR + (MX + 1)2RTT + tổng số

thời gian rảnh

Transport Layer 3-110

02468

101214161820

28Kbps

100Kbps

1Mbps

10Mbps

non-persistent

persistent

parallel non-persistent

HTTP thời gian đaacutep ứng (giacircy)RTT = 100 msec O = 5 Kbytes M=10 vagrave X=5

Với băng thocircng thấp thời gian kết nối amp đaacutep ứng trội hơn thời gian truyền

Caacutec kết nối bền vững chỉ cho sự cải thiện khocircng đaacuteng kể trecircn caacutec kết nối song song

Transport Layer 3-111

0

10

20

30

40

50

60

70

28Kbps

100Kbps

1Mbps

10Mbps

non-persistent

persistent

parallel non-persistent

HTTP thời gian đaacutep ứng (giacircy)

RTT =1 sec O = 5 Kbytes M=10 and X=5

Với RTT lớn hơn thời gian đaacutep ứng trội hơn thời gian trễ chờ thiết lập kết nốiTCP amp khởi động chậm Caacutec kết nối bền vững bacircy giờ cho thấy cải thiện rotilde rệt đặc biệtvới caacutec mạng băng thocircng cao

Transport Layer 3-112

Chương 3 Tổng kết caacutec nguyecircn lyacute của caacutec

dịch vụ lớp transport multiplexing

demultiplexing truyền dữ liệu tin cậy điều khiển luồng điều khiển tắc nghẽn

khởi tạo vagrave hiện thực trong Internet UDP TCP

Tiếp theo nghiecircn cứu xong

caacutec vấn đề ldquongoagravei biecircnrdquo (caacutec lớp application transport)

chuẩn bị vagraveo phần ldquolotildeirdquo của mạng

  • Slide 1
  • Chương 3 Lớp Transport
  • Chương 3 Nội dung trigravenh bagravey
  • Caacutec dịch vụ vagrave giao thức Transport
  • Lớp Transport với lớp network
  • Caacutec giao thức lớp transport trecircn Internet
  • Slide 7
  • Multiplexingdemultiplexing
  • Demultiplexing lagravem việc như thế nagraveo
  • Demultiplexing khocircng kết nối
  • Demultiplexing khocircng kết nối (tiếp)
  • Demultiplexing hướng kết nối
  • Demultiplexing hướng kết nối (tiếp)
  • Demultiplexing hướng kết nối Threaded Web Server
  • Slide 15
  • UDP User Datagram Protocol [RFC 768]
  • UDP (tt)
  • UDP checksum
  • Viacute dụ Checksum
  • Slide 20
  • Caacutec nguyecircn lyacute truyền dữ liệu tin cậy
  • Slide 22
  • Slide 23
  • Truyền dữ liệu tin cậy
  • Slide 25
  • Rdt10 truyền dữ liệu tin cậy trecircn 1 kecircnh truyền tin cậy
  • Rdt20 kecircnh với caacutec lỗi
  • rdt20 đặc tả FSM
  • rdt20 hoạt động khi khocircng lỗi
  • rdt20 hoạt động khi coacute lỗi
  • rdt20 coacute lỗ hổng nghiecircm trọng
  • rdt21 người gửi quản lyacute caacutec ACKNAK bị hỏng
  • Slide 33
  • rdt21 thảo luận
  • rdt22 một giao thức khocircng cần NAK
  • rdt22 gửi nhận caacutec mảnh
  • rdt30 caacutec kecircnh với lỗi vagrave mất maacutet
  • rdt30 gửi
  • hagravenh động của rdt30
  • Slide 40
  • Hiệu suất của rdt30
  • rdt30 hoạt động dừng-vagrave-chờ
  • Caacutec giao thức Pipelined
  • Pipelining độ khả dụng tăng
  • Go-Back-N
  • GBN becircn gửi mở rộng FSM
  • GBN becircn nhận mở rộng FSM
  • GBN hoạt động
  • Lặp coacute lựa chọn
  • Lặp coacute lựa chọn caacutec cửa sổ gửi nhận
  • Slide 51
  • Hoạt động của lặp coacute lựa chọn
  • Lặp coacute lựa chọn tigravenh trạng khoacute giải quyết
  • Slide 54
  • TCP Tổng quan RFCs 793 1122 1323 2018 2581
  • TCP cấu truacutec đoạn
  • Caacutec số thứ tự TCP vagrave ACK
  • TCP Round Trip Time vagraveTimeout
  • TCP Round Trip Time vagrave Timeout
  • Viacute dụ đaacutenh giaacute RTT
  • Slide 61
  • TCP truyền dữ liệu tin cậy
  • TCP caacutec sự kiện
  • TCP becircn gửi (đơn giản)
  • TCP caacutec tigravenh huống truyền lại
  • TCP caacutec tigravenh huống truyền lại (tt)
  • TCP sinh ra ACK [RFC 1122 RFC 2581]
  • Truyền lại nhanh
  • Giải thuật truyền lại nhanh
  • Slide 70
  • TCP điều khiển luồng
  • TCP điều khiển luồng caacutech lagravem
  • Slide 73
  • TCP quản lyacute kết nối
  • TCP quản lyacute kết nối (tt)
  • Slide 76
  • Slide 77
  • Slide 78
  • Caacutec nguyecircn lyacute điều khiển tắc nghẽn
  • Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 1
  • Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 2
  • Slide 82
  • Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 3
  • Slide 84
  • Caacutec caacutech tiếp cận đối với điều khiển tắc nghẽn
  • Viacute dụ điều khiển tắc nghẽn ATM ABR
  • Slide 87
  • Slide 88
  • TCP điều khiển tắc nghẽn additive tăng lecircn multiplicative giảm xuống
  • TCP điều khiển tắc nghẽn chi tiết
  • TCP khởi động chậm
  • TCP khởi động chậm (tt)
  • Tinh chế
  • Tinh chế nhận biết mất maacutet
  • Tổng kết TCP điều khiển tắc nghẽn
  • TCP điều khiển tắc nghẽn becircn gửi
  • TCP throughput
  • TCP tương lai
  • TCP tiacutenh cocircng bằng
  • Tại sao phải TCP cocircng bằng
  • TCP tiacutenh cocircng bằng (tt)
  • Mocirc higravenh trễ
  • Cửa sổ tắc nghẽn cố định (1)
  • Cửa sổ tắc nghẽn cố định (2)
  • TCP Mocirc higravenh trễ Khởi động chậm (1)
  • TCP Mocirc higravenh trễ Khởi động chậm (2)
  • TCP Mocirc higravenh trễ(3)
  • TCP Mocirc higravenh trễ (4)
  • HTTP Mocirc higravenh
  • Slide 110
  • Slide 111
  • Chương 3 Tổng kết

Transport Layer 3-100

Tại sao phải TCP cocircng bằng

2 phiecircn lagravem việc cạnh tranh nhau Additive tăng lưu lượng tăng multiplicative giảm lưu lượng tương xứng

R

R

chia sẻ băng thocircng bằng nhau

Connection 1 throughputConnect

ion 2

th

roughput

traacutenh tắc nghẽn additive tăng lecircnmất maacutet giảm cửa sổ bằng 12

traacutenh tắc nghẽn additive tăng lecircnmất maacutet giảm cửa sổ bằng 12

Transport Layer 3-101

TCP tiacutenh cocircng bằng (tt)

Tiacutenh cocircng bằng amp UDP nhiều ứng dụng

thường khocircng dugraveng TCP khocircng muốn tốc độ bị

điều tiết do điều khiển tắc nghẽn

Thay bằng dugraveng UDP truyền audiovideo với

tốc độ ổn định chịu được mất maacutet

Nghiecircn cứu giao thức thacircn thiện với TCP

Tiacutenh cocircng bằng amp caacutec kết nối TCP song song

khocircng coacute gigrave ngăn cản việc ứng dụng mở caacutec kết nối song song giữa 2 host

Trigravenh duyệt Web lagravem giống như thế

Viacute dụ tốc độ R hỗ trợ 9 kết nối ứng dụng mới yecircu cầu 1

TCP coacute tốc độ R10 ứng dụng mới yecircu cầu 11

TCP coacute tốc độ R2

Transport Layer 3-102

Mocirc higravenh trễ

Hỏi Mất bao lacircu để nhận 1 đối tượng từ Web server sau khi gửi yecircu cầu

Bỏ qua tắc nghẽn trễ bị ảnh hưởng bởi

thiết lập kết nối TCP trễ truyền dữ liệu khởi động chậm

Notation caacutec giả định Giả sử một kết nối giữa

client vagrave server coacute tốc độ R

S MSS (bits) O kiacutech thước đối tượng

(bits) khocircng truyền lại (khocircng

mất maacutet khocircng hỏng)

Kiacutech thước cửa sổ Giả định 1 cửa sổ tắc

nghẽn cố định coacute W đoạn Sau đoacute cửa sổ thay đổi

mocirc higravenh khởi động chậm

Transport Layer 3-103

Cửa sổ tắc nghẽn cố định (1)

Trường hợp đầu tiecircnWSR gt RTT + SR cho

đoạn đầu tiecircn trong cửa sổ trả về trước khi cửa sổ dữ liệu gửi ACK

trễ = 2RTT + OR

Transport Layer 3-104

Cửa sổ tắc nghẽn cố định (2)

Trường hợp thứ hai WSR lt RTT + SR sent

chờ cho ACK sau khi gửi dữ liệu

trễ = 2RTT + OR+ (K-1)[SR + RTT - WSR]

Transport Layer 3-105

TCP Mocirc higravenh trễ Khởi động chậm (1)

Bacircy giờ giả sử kiacutech thước cửa sổ tăng lecircn tugravey theo quaacute trigravenh khởi động chậm

Độ trễ của một đối tượng sẽ lagrave

R

S

R

SRTTP

R

ORTTLatency P )12(2

trong đoacute P lagrave số lần TCP rảnh ở tại server

1min KQP

- trong đoacute Q lagrave số lần server rảnh nếu đối tượng đatilde khởi tạo kiacutech thước

- vagrave K lagrave số lượng cửa sổ bao trugravem đối tượng

Transport Layer 3-106

TCP Mocirc higravenh trễ Khởi động chậm (2)

RTT

initia te TCPconnection

requestobject

first w indow= S R

second w indow= 2S R

third w indow= 4S R

fourth w indow= 8S R

com pletetransm issionobject

delivered

tim e atc lient

tim e atserver

Viacute dụbull OS = 15 đoạnbull K = 4 cửa sổbull Q = 2bull P = minK-1Q = 2

Server rảnh P=2 lần

Caacutec thagravenh phần trễbull 2 RTT dagravenh cho thiết lập kết nối vagrave yecircu cầubull OR để truyền đối tượngbullthời gian server rảnh bởi vigrave khởi động chậm

Server rảnh P = minK-1Q lần

Transport Layer 3-107

TCP Mocirc higravenh trễ(3)

R

S

R

SRTTPRTT

R

O

R

SRTT

R

SRTT

R

O

idleTimeRTTR

O

P

kP

k

P

pp

)12(][2

]2[2

2delay

1

1

1

th window after the timeidle 2 1 kR

SRTT

R

S k

ementacknowledg receivesserver until

segment send tostartsserver when from time RTTR

S

window kth the transmit totime2 1

R

Sk

RTT

initia te TCPconnection

requestobject

first w indow= S R

second w indow= 2S R

third w indow= 4S R

fourth w indow= 8S R

com pletetransm issionobject

delivered

tim e atc lient

tim e atserver

Transport Layer 3-108

TCP Mocirc higravenh trễ (4)

)1(log

)1(logmin

12min

222min

222min

2

2

110

110

S

OS

Okk

S

Ok

SOk

OSSSkK

k

k

k

caacutech tiacutenh toaacuten Q tương tự (xem HW)

K = số lượng cửa sổ bao trugravem đối tượngLagravem thế nagraveo tiacutenh được K

Transport Layer 3-109

HTTP Mocirc higravenh Giả sử trang Web chứa

1 trang HTML (kiacutech thước O bits) M higravenh ảnh (mỗi caacutei kiacutech thướcO bits)

HTTP khocircng bền vững M+1 TCP kết nối Thời gian đaacutep ứng = (M+1)OR + (M+1)2RTT + tổng số thời

gian rảnh HTTP bền vững

2 RTT để yecircu cầu vagrave nhận file HTML 1 RTT để yecircu cầu vagrave nhận M higravenh ảnh Thời gian đaacutep ứng = (M+1)OR + 3RTT + tổng số thời gian

rảnh HTTP khocircng bền vững với X kết nối song song

Giả sử MX lagrave số nguyecircn 1 TCP kết nối cho file MX thiết lập caacutec kết nối song song cho caacutec higravenh ảnh Thời gian đaacutep ứng = (M+1)OR + (MX + 1)2RTT + tổng số

thời gian rảnh

Transport Layer 3-110

02468

101214161820

28Kbps

100Kbps

1Mbps

10Mbps

non-persistent

persistent

parallel non-persistent

HTTP thời gian đaacutep ứng (giacircy)RTT = 100 msec O = 5 Kbytes M=10 vagrave X=5

Với băng thocircng thấp thời gian kết nối amp đaacutep ứng trội hơn thời gian truyền

Caacutec kết nối bền vững chỉ cho sự cải thiện khocircng đaacuteng kể trecircn caacutec kết nối song song

Transport Layer 3-111

0

10

20

30

40

50

60

70

28Kbps

100Kbps

1Mbps

10Mbps

non-persistent

persistent

parallel non-persistent

HTTP thời gian đaacutep ứng (giacircy)

RTT =1 sec O = 5 Kbytes M=10 and X=5

Với RTT lớn hơn thời gian đaacutep ứng trội hơn thời gian trễ chờ thiết lập kết nốiTCP amp khởi động chậm Caacutec kết nối bền vững bacircy giờ cho thấy cải thiện rotilde rệt đặc biệtvới caacutec mạng băng thocircng cao

Transport Layer 3-112

Chương 3 Tổng kết caacutec nguyecircn lyacute của caacutec

dịch vụ lớp transport multiplexing

demultiplexing truyền dữ liệu tin cậy điều khiển luồng điều khiển tắc nghẽn

khởi tạo vagrave hiện thực trong Internet UDP TCP

Tiếp theo nghiecircn cứu xong

caacutec vấn đề ldquongoagravei biecircnrdquo (caacutec lớp application transport)

chuẩn bị vagraveo phần ldquolotildeirdquo của mạng

  • Slide 1
  • Chương 3 Lớp Transport
  • Chương 3 Nội dung trigravenh bagravey
  • Caacutec dịch vụ vagrave giao thức Transport
  • Lớp Transport với lớp network
  • Caacutec giao thức lớp transport trecircn Internet
  • Slide 7
  • Multiplexingdemultiplexing
  • Demultiplexing lagravem việc như thế nagraveo
  • Demultiplexing khocircng kết nối
  • Demultiplexing khocircng kết nối (tiếp)
  • Demultiplexing hướng kết nối
  • Demultiplexing hướng kết nối (tiếp)
  • Demultiplexing hướng kết nối Threaded Web Server
  • Slide 15
  • UDP User Datagram Protocol [RFC 768]
  • UDP (tt)
  • UDP checksum
  • Viacute dụ Checksum
  • Slide 20
  • Caacutec nguyecircn lyacute truyền dữ liệu tin cậy
  • Slide 22
  • Slide 23
  • Truyền dữ liệu tin cậy
  • Slide 25
  • Rdt10 truyền dữ liệu tin cậy trecircn 1 kecircnh truyền tin cậy
  • Rdt20 kecircnh với caacutec lỗi
  • rdt20 đặc tả FSM
  • rdt20 hoạt động khi khocircng lỗi
  • rdt20 hoạt động khi coacute lỗi
  • rdt20 coacute lỗ hổng nghiecircm trọng
  • rdt21 người gửi quản lyacute caacutec ACKNAK bị hỏng
  • Slide 33
  • rdt21 thảo luận
  • rdt22 một giao thức khocircng cần NAK
  • rdt22 gửi nhận caacutec mảnh
  • rdt30 caacutec kecircnh với lỗi vagrave mất maacutet
  • rdt30 gửi
  • hagravenh động của rdt30
  • Slide 40
  • Hiệu suất của rdt30
  • rdt30 hoạt động dừng-vagrave-chờ
  • Caacutec giao thức Pipelined
  • Pipelining độ khả dụng tăng
  • Go-Back-N
  • GBN becircn gửi mở rộng FSM
  • GBN becircn nhận mở rộng FSM
  • GBN hoạt động
  • Lặp coacute lựa chọn
  • Lặp coacute lựa chọn caacutec cửa sổ gửi nhận
  • Slide 51
  • Hoạt động của lặp coacute lựa chọn
  • Lặp coacute lựa chọn tigravenh trạng khoacute giải quyết
  • Slide 54
  • TCP Tổng quan RFCs 793 1122 1323 2018 2581
  • TCP cấu truacutec đoạn
  • Caacutec số thứ tự TCP vagrave ACK
  • TCP Round Trip Time vagraveTimeout
  • TCP Round Trip Time vagrave Timeout
  • Viacute dụ đaacutenh giaacute RTT
  • Slide 61
  • TCP truyền dữ liệu tin cậy
  • TCP caacutec sự kiện
  • TCP becircn gửi (đơn giản)
  • TCP caacutec tigravenh huống truyền lại
  • TCP caacutec tigravenh huống truyền lại (tt)
  • TCP sinh ra ACK [RFC 1122 RFC 2581]
  • Truyền lại nhanh
  • Giải thuật truyền lại nhanh
  • Slide 70
  • TCP điều khiển luồng
  • TCP điều khiển luồng caacutech lagravem
  • Slide 73
  • TCP quản lyacute kết nối
  • TCP quản lyacute kết nối (tt)
  • Slide 76
  • Slide 77
  • Slide 78
  • Caacutec nguyecircn lyacute điều khiển tắc nghẽn
  • Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 1
  • Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 2
  • Slide 82
  • Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 3
  • Slide 84
  • Caacutec caacutech tiếp cận đối với điều khiển tắc nghẽn
  • Viacute dụ điều khiển tắc nghẽn ATM ABR
  • Slide 87
  • Slide 88
  • TCP điều khiển tắc nghẽn additive tăng lecircn multiplicative giảm xuống
  • TCP điều khiển tắc nghẽn chi tiết
  • TCP khởi động chậm
  • TCP khởi động chậm (tt)
  • Tinh chế
  • Tinh chế nhận biết mất maacutet
  • Tổng kết TCP điều khiển tắc nghẽn
  • TCP điều khiển tắc nghẽn becircn gửi
  • TCP throughput
  • TCP tương lai
  • TCP tiacutenh cocircng bằng
  • Tại sao phải TCP cocircng bằng
  • TCP tiacutenh cocircng bằng (tt)
  • Mocirc higravenh trễ
  • Cửa sổ tắc nghẽn cố định (1)
  • Cửa sổ tắc nghẽn cố định (2)
  • TCP Mocirc higravenh trễ Khởi động chậm (1)
  • TCP Mocirc higravenh trễ Khởi động chậm (2)
  • TCP Mocirc higravenh trễ(3)
  • TCP Mocirc higravenh trễ (4)
  • HTTP Mocirc higravenh
  • Slide 110
  • Slide 111
  • Chương 3 Tổng kết

Transport Layer 3-101

TCP tiacutenh cocircng bằng (tt)

Tiacutenh cocircng bằng amp UDP nhiều ứng dụng

thường khocircng dugraveng TCP khocircng muốn tốc độ bị

điều tiết do điều khiển tắc nghẽn

Thay bằng dugraveng UDP truyền audiovideo với

tốc độ ổn định chịu được mất maacutet

Nghiecircn cứu giao thức thacircn thiện với TCP

Tiacutenh cocircng bằng amp caacutec kết nối TCP song song

khocircng coacute gigrave ngăn cản việc ứng dụng mở caacutec kết nối song song giữa 2 host

Trigravenh duyệt Web lagravem giống như thế

Viacute dụ tốc độ R hỗ trợ 9 kết nối ứng dụng mới yecircu cầu 1

TCP coacute tốc độ R10 ứng dụng mới yecircu cầu 11

TCP coacute tốc độ R2

Transport Layer 3-102

Mocirc higravenh trễ

Hỏi Mất bao lacircu để nhận 1 đối tượng từ Web server sau khi gửi yecircu cầu

Bỏ qua tắc nghẽn trễ bị ảnh hưởng bởi

thiết lập kết nối TCP trễ truyền dữ liệu khởi động chậm

Notation caacutec giả định Giả sử một kết nối giữa

client vagrave server coacute tốc độ R

S MSS (bits) O kiacutech thước đối tượng

(bits) khocircng truyền lại (khocircng

mất maacutet khocircng hỏng)

Kiacutech thước cửa sổ Giả định 1 cửa sổ tắc

nghẽn cố định coacute W đoạn Sau đoacute cửa sổ thay đổi

mocirc higravenh khởi động chậm

Transport Layer 3-103

Cửa sổ tắc nghẽn cố định (1)

Trường hợp đầu tiecircnWSR gt RTT + SR cho

đoạn đầu tiecircn trong cửa sổ trả về trước khi cửa sổ dữ liệu gửi ACK

trễ = 2RTT + OR

Transport Layer 3-104

Cửa sổ tắc nghẽn cố định (2)

Trường hợp thứ hai WSR lt RTT + SR sent

chờ cho ACK sau khi gửi dữ liệu

trễ = 2RTT + OR+ (K-1)[SR + RTT - WSR]

Transport Layer 3-105

TCP Mocirc higravenh trễ Khởi động chậm (1)

Bacircy giờ giả sử kiacutech thước cửa sổ tăng lecircn tugravey theo quaacute trigravenh khởi động chậm

Độ trễ của một đối tượng sẽ lagrave

R

S

R

SRTTP

R

ORTTLatency P )12(2

trong đoacute P lagrave số lần TCP rảnh ở tại server

1min KQP

- trong đoacute Q lagrave số lần server rảnh nếu đối tượng đatilde khởi tạo kiacutech thước

- vagrave K lagrave số lượng cửa sổ bao trugravem đối tượng

Transport Layer 3-106

TCP Mocirc higravenh trễ Khởi động chậm (2)

RTT

initia te TCPconnection

requestobject

first w indow= S R

second w indow= 2S R

third w indow= 4S R

fourth w indow= 8S R

com pletetransm issionobject

delivered

tim e atc lient

tim e atserver

Viacute dụbull OS = 15 đoạnbull K = 4 cửa sổbull Q = 2bull P = minK-1Q = 2

Server rảnh P=2 lần

Caacutec thagravenh phần trễbull 2 RTT dagravenh cho thiết lập kết nối vagrave yecircu cầubull OR để truyền đối tượngbullthời gian server rảnh bởi vigrave khởi động chậm

Server rảnh P = minK-1Q lần

Transport Layer 3-107

TCP Mocirc higravenh trễ(3)

R

S

R

SRTTPRTT

R

O

R

SRTT

R

SRTT

R

O

idleTimeRTTR

O

P

kP

k

P

pp

)12(][2

]2[2

2delay

1

1

1

th window after the timeidle 2 1 kR

SRTT

R

S k

ementacknowledg receivesserver until

segment send tostartsserver when from time RTTR

S

window kth the transmit totime2 1

R

Sk

RTT

initia te TCPconnection

requestobject

first w indow= S R

second w indow= 2S R

third w indow= 4S R

fourth w indow= 8S R

com pletetransm issionobject

delivered

tim e atc lient

tim e atserver

Transport Layer 3-108

TCP Mocirc higravenh trễ (4)

)1(log

)1(logmin

12min

222min

222min

2

2

110

110

S

OS

Okk

S

Ok

SOk

OSSSkK

k

k

k

caacutech tiacutenh toaacuten Q tương tự (xem HW)

K = số lượng cửa sổ bao trugravem đối tượngLagravem thế nagraveo tiacutenh được K

Transport Layer 3-109

HTTP Mocirc higravenh Giả sử trang Web chứa

1 trang HTML (kiacutech thước O bits) M higravenh ảnh (mỗi caacutei kiacutech thướcO bits)

HTTP khocircng bền vững M+1 TCP kết nối Thời gian đaacutep ứng = (M+1)OR + (M+1)2RTT + tổng số thời

gian rảnh HTTP bền vững

2 RTT để yecircu cầu vagrave nhận file HTML 1 RTT để yecircu cầu vagrave nhận M higravenh ảnh Thời gian đaacutep ứng = (M+1)OR + 3RTT + tổng số thời gian

rảnh HTTP khocircng bền vững với X kết nối song song

Giả sử MX lagrave số nguyecircn 1 TCP kết nối cho file MX thiết lập caacutec kết nối song song cho caacutec higravenh ảnh Thời gian đaacutep ứng = (M+1)OR + (MX + 1)2RTT + tổng số

thời gian rảnh

Transport Layer 3-110

02468

101214161820

28Kbps

100Kbps

1Mbps

10Mbps

non-persistent

persistent

parallel non-persistent

HTTP thời gian đaacutep ứng (giacircy)RTT = 100 msec O = 5 Kbytes M=10 vagrave X=5

Với băng thocircng thấp thời gian kết nối amp đaacutep ứng trội hơn thời gian truyền

Caacutec kết nối bền vững chỉ cho sự cải thiện khocircng đaacuteng kể trecircn caacutec kết nối song song

Transport Layer 3-111

0

10

20

30

40

50

60

70

28Kbps

100Kbps

1Mbps

10Mbps

non-persistent

persistent

parallel non-persistent

HTTP thời gian đaacutep ứng (giacircy)

RTT =1 sec O = 5 Kbytes M=10 and X=5

Với RTT lớn hơn thời gian đaacutep ứng trội hơn thời gian trễ chờ thiết lập kết nốiTCP amp khởi động chậm Caacutec kết nối bền vững bacircy giờ cho thấy cải thiện rotilde rệt đặc biệtvới caacutec mạng băng thocircng cao

Transport Layer 3-112

Chương 3 Tổng kết caacutec nguyecircn lyacute của caacutec

dịch vụ lớp transport multiplexing

demultiplexing truyền dữ liệu tin cậy điều khiển luồng điều khiển tắc nghẽn

khởi tạo vagrave hiện thực trong Internet UDP TCP

Tiếp theo nghiecircn cứu xong

caacutec vấn đề ldquongoagravei biecircnrdquo (caacutec lớp application transport)

chuẩn bị vagraveo phần ldquolotildeirdquo của mạng

  • Slide 1
  • Chương 3 Lớp Transport
  • Chương 3 Nội dung trigravenh bagravey
  • Caacutec dịch vụ vagrave giao thức Transport
  • Lớp Transport với lớp network
  • Caacutec giao thức lớp transport trecircn Internet
  • Slide 7
  • Multiplexingdemultiplexing
  • Demultiplexing lagravem việc như thế nagraveo
  • Demultiplexing khocircng kết nối
  • Demultiplexing khocircng kết nối (tiếp)
  • Demultiplexing hướng kết nối
  • Demultiplexing hướng kết nối (tiếp)
  • Demultiplexing hướng kết nối Threaded Web Server
  • Slide 15
  • UDP User Datagram Protocol [RFC 768]
  • UDP (tt)
  • UDP checksum
  • Viacute dụ Checksum
  • Slide 20
  • Caacutec nguyecircn lyacute truyền dữ liệu tin cậy
  • Slide 22
  • Slide 23
  • Truyền dữ liệu tin cậy
  • Slide 25
  • Rdt10 truyền dữ liệu tin cậy trecircn 1 kecircnh truyền tin cậy
  • Rdt20 kecircnh với caacutec lỗi
  • rdt20 đặc tả FSM
  • rdt20 hoạt động khi khocircng lỗi
  • rdt20 hoạt động khi coacute lỗi
  • rdt20 coacute lỗ hổng nghiecircm trọng
  • rdt21 người gửi quản lyacute caacutec ACKNAK bị hỏng
  • Slide 33
  • rdt21 thảo luận
  • rdt22 một giao thức khocircng cần NAK
  • rdt22 gửi nhận caacutec mảnh
  • rdt30 caacutec kecircnh với lỗi vagrave mất maacutet
  • rdt30 gửi
  • hagravenh động của rdt30
  • Slide 40
  • Hiệu suất của rdt30
  • rdt30 hoạt động dừng-vagrave-chờ
  • Caacutec giao thức Pipelined
  • Pipelining độ khả dụng tăng
  • Go-Back-N
  • GBN becircn gửi mở rộng FSM
  • GBN becircn nhận mở rộng FSM
  • GBN hoạt động
  • Lặp coacute lựa chọn
  • Lặp coacute lựa chọn caacutec cửa sổ gửi nhận
  • Slide 51
  • Hoạt động của lặp coacute lựa chọn
  • Lặp coacute lựa chọn tigravenh trạng khoacute giải quyết
  • Slide 54
  • TCP Tổng quan RFCs 793 1122 1323 2018 2581
  • TCP cấu truacutec đoạn
  • Caacutec số thứ tự TCP vagrave ACK
  • TCP Round Trip Time vagraveTimeout
  • TCP Round Trip Time vagrave Timeout
  • Viacute dụ đaacutenh giaacute RTT
  • Slide 61
  • TCP truyền dữ liệu tin cậy
  • TCP caacutec sự kiện
  • TCP becircn gửi (đơn giản)
  • TCP caacutec tigravenh huống truyền lại
  • TCP caacutec tigravenh huống truyền lại (tt)
  • TCP sinh ra ACK [RFC 1122 RFC 2581]
  • Truyền lại nhanh
  • Giải thuật truyền lại nhanh
  • Slide 70
  • TCP điều khiển luồng
  • TCP điều khiển luồng caacutech lagravem
  • Slide 73
  • TCP quản lyacute kết nối
  • TCP quản lyacute kết nối (tt)
  • Slide 76
  • Slide 77
  • Slide 78
  • Caacutec nguyecircn lyacute điều khiển tắc nghẽn
  • Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 1
  • Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 2
  • Slide 82
  • Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 3
  • Slide 84
  • Caacutec caacutech tiếp cận đối với điều khiển tắc nghẽn
  • Viacute dụ điều khiển tắc nghẽn ATM ABR
  • Slide 87
  • Slide 88
  • TCP điều khiển tắc nghẽn additive tăng lecircn multiplicative giảm xuống
  • TCP điều khiển tắc nghẽn chi tiết
  • TCP khởi động chậm
  • TCP khởi động chậm (tt)
  • Tinh chế
  • Tinh chế nhận biết mất maacutet
  • Tổng kết TCP điều khiển tắc nghẽn
  • TCP điều khiển tắc nghẽn becircn gửi
  • TCP throughput
  • TCP tương lai
  • TCP tiacutenh cocircng bằng
  • Tại sao phải TCP cocircng bằng
  • TCP tiacutenh cocircng bằng (tt)
  • Mocirc higravenh trễ
  • Cửa sổ tắc nghẽn cố định (1)
  • Cửa sổ tắc nghẽn cố định (2)
  • TCP Mocirc higravenh trễ Khởi động chậm (1)
  • TCP Mocirc higravenh trễ Khởi động chậm (2)
  • TCP Mocirc higravenh trễ(3)
  • TCP Mocirc higravenh trễ (4)
  • HTTP Mocirc higravenh
  • Slide 110
  • Slide 111
  • Chương 3 Tổng kết

Transport Layer 3-102

Mocirc higravenh trễ

Hỏi Mất bao lacircu để nhận 1 đối tượng từ Web server sau khi gửi yecircu cầu

Bỏ qua tắc nghẽn trễ bị ảnh hưởng bởi

thiết lập kết nối TCP trễ truyền dữ liệu khởi động chậm

Notation caacutec giả định Giả sử một kết nối giữa

client vagrave server coacute tốc độ R

S MSS (bits) O kiacutech thước đối tượng

(bits) khocircng truyền lại (khocircng

mất maacutet khocircng hỏng)

Kiacutech thước cửa sổ Giả định 1 cửa sổ tắc

nghẽn cố định coacute W đoạn Sau đoacute cửa sổ thay đổi

mocirc higravenh khởi động chậm

Transport Layer 3-103

Cửa sổ tắc nghẽn cố định (1)

Trường hợp đầu tiecircnWSR gt RTT + SR cho

đoạn đầu tiecircn trong cửa sổ trả về trước khi cửa sổ dữ liệu gửi ACK

trễ = 2RTT + OR

Transport Layer 3-104

Cửa sổ tắc nghẽn cố định (2)

Trường hợp thứ hai WSR lt RTT + SR sent

chờ cho ACK sau khi gửi dữ liệu

trễ = 2RTT + OR+ (K-1)[SR + RTT - WSR]

Transport Layer 3-105

TCP Mocirc higravenh trễ Khởi động chậm (1)

Bacircy giờ giả sử kiacutech thước cửa sổ tăng lecircn tugravey theo quaacute trigravenh khởi động chậm

Độ trễ của một đối tượng sẽ lagrave

R

S

R

SRTTP

R

ORTTLatency P )12(2

trong đoacute P lagrave số lần TCP rảnh ở tại server

1min KQP

- trong đoacute Q lagrave số lần server rảnh nếu đối tượng đatilde khởi tạo kiacutech thước

- vagrave K lagrave số lượng cửa sổ bao trugravem đối tượng

Transport Layer 3-106

TCP Mocirc higravenh trễ Khởi động chậm (2)

RTT

initia te TCPconnection

requestobject

first w indow= S R

second w indow= 2S R

third w indow= 4S R

fourth w indow= 8S R

com pletetransm issionobject

delivered

tim e atc lient

tim e atserver

Viacute dụbull OS = 15 đoạnbull K = 4 cửa sổbull Q = 2bull P = minK-1Q = 2

Server rảnh P=2 lần

Caacutec thagravenh phần trễbull 2 RTT dagravenh cho thiết lập kết nối vagrave yecircu cầubull OR để truyền đối tượngbullthời gian server rảnh bởi vigrave khởi động chậm

Server rảnh P = minK-1Q lần

Transport Layer 3-107

TCP Mocirc higravenh trễ(3)

R

S

R

SRTTPRTT

R

O

R

SRTT

R

SRTT

R

O

idleTimeRTTR

O

P

kP

k

P

pp

)12(][2

]2[2

2delay

1

1

1

th window after the timeidle 2 1 kR

SRTT

R

S k

ementacknowledg receivesserver until

segment send tostartsserver when from time RTTR

S

window kth the transmit totime2 1

R

Sk

RTT

initia te TCPconnection

requestobject

first w indow= S R

second w indow= 2S R

third w indow= 4S R

fourth w indow= 8S R

com pletetransm issionobject

delivered

tim e atc lient

tim e atserver

Transport Layer 3-108

TCP Mocirc higravenh trễ (4)

)1(log

)1(logmin

12min

222min

222min

2

2

110

110

S

OS

Okk

S

Ok

SOk

OSSSkK

k

k

k

caacutech tiacutenh toaacuten Q tương tự (xem HW)

K = số lượng cửa sổ bao trugravem đối tượngLagravem thế nagraveo tiacutenh được K

Transport Layer 3-109

HTTP Mocirc higravenh Giả sử trang Web chứa

1 trang HTML (kiacutech thước O bits) M higravenh ảnh (mỗi caacutei kiacutech thướcO bits)

HTTP khocircng bền vững M+1 TCP kết nối Thời gian đaacutep ứng = (M+1)OR + (M+1)2RTT + tổng số thời

gian rảnh HTTP bền vững

2 RTT để yecircu cầu vagrave nhận file HTML 1 RTT để yecircu cầu vagrave nhận M higravenh ảnh Thời gian đaacutep ứng = (M+1)OR + 3RTT + tổng số thời gian

rảnh HTTP khocircng bền vững với X kết nối song song

Giả sử MX lagrave số nguyecircn 1 TCP kết nối cho file MX thiết lập caacutec kết nối song song cho caacutec higravenh ảnh Thời gian đaacutep ứng = (M+1)OR + (MX + 1)2RTT + tổng số

thời gian rảnh

Transport Layer 3-110

02468

101214161820

28Kbps

100Kbps

1Mbps

10Mbps

non-persistent

persistent

parallel non-persistent

HTTP thời gian đaacutep ứng (giacircy)RTT = 100 msec O = 5 Kbytes M=10 vagrave X=5

Với băng thocircng thấp thời gian kết nối amp đaacutep ứng trội hơn thời gian truyền

Caacutec kết nối bền vững chỉ cho sự cải thiện khocircng đaacuteng kể trecircn caacutec kết nối song song

Transport Layer 3-111

0

10

20

30

40

50

60

70

28Kbps

100Kbps

1Mbps

10Mbps

non-persistent

persistent

parallel non-persistent

HTTP thời gian đaacutep ứng (giacircy)

RTT =1 sec O = 5 Kbytes M=10 and X=5

Với RTT lớn hơn thời gian đaacutep ứng trội hơn thời gian trễ chờ thiết lập kết nốiTCP amp khởi động chậm Caacutec kết nối bền vững bacircy giờ cho thấy cải thiện rotilde rệt đặc biệtvới caacutec mạng băng thocircng cao

Transport Layer 3-112

Chương 3 Tổng kết caacutec nguyecircn lyacute của caacutec

dịch vụ lớp transport multiplexing

demultiplexing truyền dữ liệu tin cậy điều khiển luồng điều khiển tắc nghẽn

khởi tạo vagrave hiện thực trong Internet UDP TCP

Tiếp theo nghiecircn cứu xong

caacutec vấn đề ldquongoagravei biecircnrdquo (caacutec lớp application transport)

chuẩn bị vagraveo phần ldquolotildeirdquo của mạng

  • Slide 1
  • Chương 3 Lớp Transport
  • Chương 3 Nội dung trigravenh bagravey
  • Caacutec dịch vụ vagrave giao thức Transport
  • Lớp Transport với lớp network
  • Caacutec giao thức lớp transport trecircn Internet
  • Slide 7
  • Multiplexingdemultiplexing
  • Demultiplexing lagravem việc như thế nagraveo
  • Demultiplexing khocircng kết nối
  • Demultiplexing khocircng kết nối (tiếp)
  • Demultiplexing hướng kết nối
  • Demultiplexing hướng kết nối (tiếp)
  • Demultiplexing hướng kết nối Threaded Web Server
  • Slide 15
  • UDP User Datagram Protocol [RFC 768]
  • UDP (tt)
  • UDP checksum
  • Viacute dụ Checksum
  • Slide 20
  • Caacutec nguyecircn lyacute truyền dữ liệu tin cậy
  • Slide 22
  • Slide 23
  • Truyền dữ liệu tin cậy
  • Slide 25
  • Rdt10 truyền dữ liệu tin cậy trecircn 1 kecircnh truyền tin cậy
  • Rdt20 kecircnh với caacutec lỗi
  • rdt20 đặc tả FSM
  • rdt20 hoạt động khi khocircng lỗi
  • rdt20 hoạt động khi coacute lỗi
  • rdt20 coacute lỗ hổng nghiecircm trọng
  • rdt21 người gửi quản lyacute caacutec ACKNAK bị hỏng
  • Slide 33
  • rdt21 thảo luận
  • rdt22 một giao thức khocircng cần NAK
  • rdt22 gửi nhận caacutec mảnh
  • rdt30 caacutec kecircnh với lỗi vagrave mất maacutet
  • rdt30 gửi
  • hagravenh động của rdt30
  • Slide 40
  • Hiệu suất của rdt30
  • rdt30 hoạt động dừng-vagrave-chờ
  • Caacutec giao thức Pipelined
  • Pipelining độ khả dụng tăng
  • Go-Back-N
  • GBN becircn gửi mở rộng FSM
  • GBN becircn nhận mở rộng FSM
  • GBN hoạt động
  • Lặp coacute lựa chọn
  • Lặp coacute lựa chọn caacutec cửa sổ gửi nhận
  • Slide 51
  • Hoạt động của lặp coacute lựa chọn
  • Lặp coacute lựa chọn tigravenh trạng khoacute giải quyết
  • Slide 54
  • TCP Tổng quan RFCs 793 1122 1323 2018 2581
  • TCP cấu truacutec đoạn
  • Caacutec số thứ tự TCP vagrave ACK
  • TCP Round Trip Time vagraveTimeout
  • TCP Round Trip Time vagrave Timeout
  • Viacute dụ đaacutenh giaacute RTT
  • Slide 61
  • TCP truyền dữ liệu tin cậy
  • TCP caacutec sự kiện
  • TCP becircn gửi (đơn giản)
  • TCP caacutec tigravenh huống truyền lại
  • TCP caacutec tigravenh huống truyền lại (tt)
  • TCP sinh ra ACK [RFC 1122 RFC 2581]
  • Truyền lại nhanh
  • Giải thuật truyền lại nhanh
  • Slide 70
  • TCP điều khiển luồng
  • TCP điều khiển luồng caacutech lagravem
  • Slide 73
  • TCP quản lyacute kết nối
  • TCP quản lyacute kết nối (tt)
  • Slide 76
  • Slide 77
  • Slide 78
  • Caacutec nguyecircn lyacute điều khiển tắc nghẽn
  • Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 1
  • Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 2
  • Slide 82
  • Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 3
  • Slide 84
  • Caacutec caacutech tiếp cận đối với điều khiển tắc nghẽn
  • Viacute dụ điều khiển tắc nghẽn ATM ABR
  • Slide 87
  • Slide 88
  • TCP điều khiển tắc nghẽn additive tăng lecircn multiplicative giảm xuống
  • TCP điều khiển tắc nghẽn chi tiết
  • TCP khởi động chậm
  • TCP khởi động chậm (tt)
  • Tinh chế
  • Tinh chế nhận biết mất maacutet
  • Tổng kết TCP điều khiển tắc nghẽn
  • TCP điều khiển tắc nghẽn becircn gửi
  • TCP throughput
  • TCP tương lai
  • TCP tiacutenh cocircng bằng
  • Tại sao phải TCP cocircng bằng
  • TCP tiacutenh cocircng bằng (tt)
  • Mocirc higravenh trễ
  • Cửa sổ tắc nghẽn cố định (1)
  • Cửa sổ tắc nghẽn cố định (2)
  • TCP Mocirc higravenh trễ Khởi động chậm (1)
  • TCP Mocirc higravenh trễ Khởi động chậm (2)
  • TCP Mocirc higravenh trễ(3)
  • TCP Mocirc higravenh trễ (4)
  • HTTP Mocirc higravenh
  • Slide 110
  • Slide 111
  • Chương 3 Tổng kết

Transport Layer 3-103

Cửa sổ tắc nghẽn cố định (1)

Trường hợp đầu tiecircnWSR gt RTT + SR cho

đoạn đầu tiecircn trong cửa sổ trả về trước khi cửa sổ dữ liệu gửi ACK

trễ = 2RTT + OR

Transport Layer 3-104

Cửa sổ tắc nghẽn cố định (2)

Trường hợp thứ hai WSR lt RTT + SR sent

chờ cho ACK sau khi gửi dữ liệu

trễ = 2RTT + OR+ (K-1)[SR + RTT - WSR]

Transport Layer 3-105

TCP Mocirc higravenh trễ Khởi động chậm (1)

Bacircy giờ giả sử kiacutech thước cửa sổ tăng lecircn tugravey theo quaacute trigravenh khởi động chậm

Độ trễ của một đối tượng sẽ lagrave

R

S

R

SRTTP

R

ORTTLatency P )12(2

trong đoacute P lagrave số lần TCP rảnh ở tại server

1min KQP

- trong đoacute Q lagrave số lần server rảnh nếu đối tượng đatilde khởi tạo kiacutech thước

- vagrave K lagrave số lượng cửa sổ bao trugravem đối tượng

Transport Layer 3-106

TCP Mocirc higravenh trễ Khởi động chậm (2)

RTT

initia te TCPconnection

requestobject

first w indow= S R

second w indow= 2S R

third w indow= 4S R

fourth w indow= 8S R

com pletetransm issionobject

delivered

tim e atc lient

tim e atserver

Viacute dụbull OS = 15 đoạnbull K = 4 cửa sổbull Q = 2bull P = minK-1Q = 2

Server rảnh P=2 lần

Caacutec thagravenh phần trễbull 2 RTT dagravenh cho thiết lập kết nối vagrave yecircu cầubull OR để truyền đối tượngbullthời gian server rảnh bởi vigrave khởi động chậm

Server rảnh P = minK-1Q lần

Transport Layer 3-107

TCP Mocirc higravenh trễ(3)

R

S

R

SRTTPRTT

R

O

R

SRTT

R

SRTT

R

O

idleTimeRTTR

O

P

kP

k

P

pp

)12(][2

]2[2

2delay

1

1

1

th window after the timeidle 2 1 kR

SRTT

R

S k

ementacknowledg receivesserver until

segment send tostartsserver when from time RTTR

S

window kth the transmit totime2 1

R

Sk

RTT

initia te TCPconnection

requestobject

first w indow= S R

second w indow= 2S R

third w indow= 4S R

fourth w indow= 8S R

com pletetransm issionobject

delivered

tim e atc lient

tim e atserver

Transport Layer 3-108

TCP Mocirc higravenh trễ (4)

)1(log

)1(logmin

12min

222min

222min

2

2

110

110

S

OS

Okk

S

Ok

SOk

OSSSkK

k

k

k

caacutech tiacutenh toaacuten Q tương tự (xem HW)

K = số lượng cửa sổ bao trugravem đối tượngLagravem thế nagraveo tiacutenh được K

Transport Layer 3-109

HTTP Mocirc higravenh Giả sử trang Web chứa

1 trang HTML (kiacutech thước O bits) M higravenh ảnh (mỗi caacutei kiacutech thướcO bits)

HTTP khocircng bền vững M+1 TCP kết nối Thời gian đaacutep ứng = (M+1)OR + (M+1)2RTT + tổng số thời

gian rảnh HTTP bền vững

2 RTT để yecircu cầu vagrave nhận file HTML 1 RTT để yecircu cầu vagrave nhận M higravenh ảnh Thời gian đaacutep ứng = (M+1)OR + 3RTT + tổng số thời gian

rảnh HTTP khocircng bền vững với X kết nối song song

Giả sử MX lagrave số nguyecircn 1 TCP kết nối cho file MX thiết lập caacutec kết nối song song cho caacutec higravenh ảnh Thời gian đaacutep ứng = (M+1)OR + (MX + 1)2RTT + tổng số

thời gian rảnh

Transport Layer 3-110

02468

101214161820

28Kbps

100Kbps

1Mbps

10Mbps

non-persistent

persistent

parallel non-persistent

HTTP thời gian đaacutep ứng (giacircy)RTT = 100 msec O = 5 Kbytes M=10 vagrave X=5

Với băng thocircng thấp thời gian kết nối amp đaacutep ứng trội hơn thời gian truyền

Caacutec kết nối bền vững chỉ cho sự cải thiện khocircng đaacuteng kể trecircn caacutec kết nối song song

Transport Layer 3-111

0

10

20

30

40

50

60

70

28Kbps

100Kbps

1Mbps

10Mbps

non-persistent

persistent

parallel non-persistent

HTTP thời gian đaacutep ứng (giacircy)

RTT =1 sec O = 5 Kbytes M=10 and X=5

Với RTT lớn hơn thời gian đaacutep ứng trội hơn thời gian trễ chờ thiết lập kết nốiTCP amp khởi động chậm Caacutec kết nối bền vững bacircy giờ cho thấy cải thiện rotilde rệt đặc biệtvới caacutec mạng băng thocircng cao

Transport Layer 3-112

Chương 3 Tổng kết caacutec nguyecircn lyacute của caacutec

dịch vụ lớp transport multiplexing

demultiplexing truyền dữ liệu tin cậy điều khiển luồng điều khiển tắc nghẽn

khởi tạo vagrave hiện thực trong Internet UDP TCP

Tiếp theo nghiecircn cứu xong

caacutec vấn đề ldquongoagravei biecircnrdquo (caacutec lớp application transport)

chuẩn bị vagraveo phần ldquolotildeirdquo của mạng

  • Slide 1
  • Chương 3 Lớp Transport
  • Chương 3 Nội dung trigravenh bagravey
  • Caacutec dịch vụ vagrave giao thức Transport
  • Lớp Transport với lớp network
  • Caacutec giao thức lớp transport trecircn Internet
  • Slide 7
  • Multiplexingdemultiplexing
  • Demultiplexing lagravem việc như thế nagraveo
  • Demultiplexing khocircng kết nối
  • Demultiplexing khocircng kết nối (tiếp)
  • Demultiplexing hướng kết nối
  • Demultiplexing hướng kết nối (tiếp)
  • Demultiplexing hướng kết nối Threaded Web Server
  • Slide 15
  • UDP User Datagram Protocol [RFC 768]
  • UDP (tt)
  • UDP checksum
  • Viacute dụ Checksum
  • Slide 20
  • Caacutec nguyecircn lyacute truyền dữ liệu tin cậy
  • Slide 22
  • Slide 23
  • Truyền dữ liệu tin cậy
  • Slide 25
  • Rdt10 truyền dữ liệu tin cậy trecircn 1 kecircnh truyền tin cậy
  • Rdt20 kecircnh với caacutec lỗi
  • rdt20 đặc tả FSM
  • rdt20 hoạt động khi khocircng lỗi
  • rdt20 hoạt động khi coacute lỗi
  • rdt20 coacute lỗ hổng nghiecircm trọng
  • rdt21 người gửi quản lyacute caacutec ACKNAK bị hỏng
  • Slide 33
  • rdt21 thảo luận
  • rdt22 một giao thức khocircng cần NAK
  • rdt22 gửi nhận caacutec mảnh
  • rdt30 caacutec kecircnh với lỗi vagrave mất maacutet
  • rdt30 gửi
  • hagravenh động của rdt30
  • Slide 40
  • Hiệu suất của rdt30
  • rdt30 hoạt động dừng-vagrave-chờ
  • Caacutec giao thức Pipelined
  • Pipelining độ khả dụng tăng
  • Go-Back-N
  • GBN becircn gửi mở rộng FSM
  • GBN becircn nhận mở rộng FSM
  • GBN hoạt động
  • Lặp coacute lựa chọn
  • Lặp coacute lựa chọn caacutec cửa sổ gửi nhận
  • Slide 51
  • Hoạt động của lặp coacute lựa chọn
  • Lặp coacute lựa chọn tigravenh trạng khoacute giải quyết
  • Slide 54
  • TCP Tổng quan RFCs 793 1122 1323 2018 2581
  • TCP cấu truacutec đoạn
  • Caacutec số thứ tự TCP vagrave ACK
  • TCP Round Trip Time vagraveTimeout
  • TCP Round Trip Time vagrave Timeout
  • Viacute dụ đaacutenh giaacute RTT
  • Slide 61
  • TCP truyền dữ liệu tin cậy
  • TCP caacutec sự kiện
  • TCP becircn gửi (đơn giản)
  • TCP caacutec tigravenh huống truyền lại
  • TCP caacutec tigravenh huống truyền lại (tt)
  • TCP sinh ra ACK [RFC 1122 RFC 2581]
  • Truyền lại nhanh
  • Giải thuật truyền lại nhanh
  • Slide 70
  • TCP điều khiển luồng
  • TCP điều khiển luồng caacutech lagravem
  • Slide 73
  • TCP quản lyacute kết nối
  • TCP quản lyacute kết nối (tt)
  • Slide 76
  • Slide 77
  • Slide 78
  • Caacutec nguyecircn lyacute điều khiển tắc nghẽn
  • Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 1
  • Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 2
  • Slide 82
  • Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 3
  • Slide 84
  • Caacutec caacutech tiếp cận đối với điều khiển tắc nghẽn
  • Viacute dụ điều khiển tắc nghẽn ATM ABR
  • Slide 87
  • Slide 88
  • TCP điều khiển tắc nghẽn additive tăng lecircn multiplicative giảm xuống
  • TCP điều khiển tắc nghẽn chi tiết
  • TCP khởi động chậm
  • TCP khởi động chậm (tt)
  • Tinh chế
  • Tinh chế nhận biết mất maacutet
  • Tổng kết TCP điều khiển tắc nghẽn
  • TCP điều khiển tắc nghẽn becircn gửi
  • TCP throughput
  • TCP tương lai
  • TCP tiacutenh cocircng bằng
  • Tại sao phải TCP cocircng bằng
  • TCP tiacutenh cocircng bằng (tt)
  • Mocirc higravenh trễ
  • Cửa sổ tắc nghẽn cố định (1)
  • Cửa sổ tắc nghẽn cố định (2)
  • TCP Mocirc higravenh trễ Khởi động chậm (1)
  • TCP Mocirc higravenh trễ Khởi động chậm (2)
  • TCP Mocirc higravenh trễ(3)
  • TCP Mocirc higravenh trễ (4)
  • HTTP Mocirc higravenh
  • Slide 110
  • Slide 111
  • Chương 3 Tổng kết

Transport Layer 3-104

Cửa sổ tắc nghẽn cố định (2)

Trường hợp thứ hai WSR lt RTT + SR sent

chờ cho ACK sau khi gửi dữ liệu

trễ = 2RTT + OR+ (K-1)[SR + RTT - WSR]

Transport Layer 3-105

TCP Mocirc higravenh trễ Khởi động chậm (1)

Bacircy giờ giả sử kiacutech thước cửa sổ tăng lecircn tugravey theo quaacute trigravenh khởi động chậm

Độ trễ của một đối tượng sẽ lagrave

R

S

R

SRTTP

R

ORTTLatency P )12(2

trong đoacute P lagrave số lần TCP rảnh ở tại server

1min KQP

- trong đoacute Q lagrave số lần server rảnh nếu đối tượng đatilde khởi tạo kiacutech thước

- vagrave K lagrave số lượng cửa sổ bao trugravem đối tượng

Transport Layer 3-106

TCP Mocirc higravenh trễ Khởi động chậm (2)

RTT

initia te TCPconnection

requestobject

first w indow= S R

second w indow= 2S R

third w indow= 4S R

fourth w indow= 8S R

com pletetransm issionobject

delivered

tim e atc lient

tim e atserver

Viacute dụbull OS = 15 đoạnbull K = 4 cửa sổbull Q = 2bull P = minK-1Q = 2

Server rảnh P=2 lần

Caacutec thagravenh phần trễbull 2 RTT dagravenh cho thiết lập kết nối vagrave yecircu cầubull OR để truyền đối tượngbullthời gian server rảnh bởi vigrave khởi động chậm

Server rảnh P = minK-1Q lần

Transport Layer 3-107

TCP Mocirc higravenh trễ(3)

R

S

R

SRTTPRTT

R

O

R

SRTT

R

SRTT

R

O

idleTimeRTTR

O

P

kP

k

P

pp

)12(][2

]2[2

2delay

1

1

1

th window after the timeidle 2 1 kR

SRTT

R

S k

ementacknowledg receivesserver until

segment send tostartsserver when from time RTTR

S

window kth the transmit totime2 1

R

Sk

RTT

initia te TCPconnection

requestobject

first w indow= S R

second w indow= 2S R

third w indow= 4S R

fourth w indow= 8S R

com pletetransm issionobject

delivered

tim e atc lient

tim e atserver

Transport Layer 3-108

TCP Mocirc higravenh trễ (4)

)1(log

)1(logmin

12min

222min

222min

2

2

110

110

S

OS

Okk

S

Ok

SOk

OSSSkK

k

k

k

caacutech tiacutenh toaacuten Q tương tự (xem HW)

K = số lượng cửa sổ bao trugravem đối tượngLagravem thế nagraveo tiacutenh được K

Transport Layer 3-109

HTTP Mocirc higravenh Giả sử trang Web chứa

1 trang HTML (kiacutech thước O bits) M higravenh ảnh (mỗi caacutei kiacutech thướcO bits)

HTTP khocircng bền vững M+1 TCP kết nối Thời gian đaacutep ứng = (M+1)OR + (M+1)2RTT + tổng số thời

gian rảnh HTTP bền vững

2 RTT để yecircu cầu vagrave nhận file HTML 1 RTT để yecircu cầu vagrave nhận M higravenh ảnh Thời gian đaacutep ứng = (M+1)OR + 3RTT + tổng số thời gian

rảnh HTTP khocircng bền vững với X kết nối song song

Giả sử MX lagrave số nguyecircn 1 TCP kết nối cho file MX thiết lập caacutec kết nối song song cho caacutec higravenh ảnh Thời gian đaacutep ứng = (M+1)OR + (MX + 1)2RTT + tổng số

thời gian rảnh

Transport Layer 3-110

02468

101214161820

28Kbps

100Kbps

1Mbps

10Mbps

non-persistent

persistent

parallel non-persistent

HTTP thời gian đaacutep ứng (giacircy)RTT = 100 msec O = 5 Kbytes M=10 vagrave X=5

Với băng thocircng thấp thời gian kết nối amp đaacutep ứng trội hơn thời gian truyền

Caacutec kết nối bền vững chỉ cho sự cải thiện khocircng đaacuteng kể trecircn caacutec kết nối song song

Transport Layer 3-111

0

10

20

30

40

50

60

70

28Kbps

100Kbps

1Mbps

10Mbps

non-persistent

persistent

parallel non-persistent

HTTP thời gian đaacutep ứng (giacircy)

RTT =1 sec O = 5 Kbytes M=10 and X=5

Với RTT lớn hơn thời gian đaacutep ứng trội hơn thời gian trễ chờ thiết lập kết nốiTCP amp khởi động chậm Caacutec kết nối bền vững bacircy giờ cho thấy cải thiện rotilde rệt đặc biệtvới caacutec mạng băng thocircng cao

Transport Layer 3-112

Chương 3 Tổng kết caacutec nguyecircn lyacute của caacutec

dịch vụ lớp transport multiplexing

demultiplexing truyền dữ liệu tin cậy điều khiển luồng điều khiển tắc nghẽn

khởi tạo vagrave hiện thực trong Internet UDP TCP

Tiếp theo nghiecircn cứu xong

caacutec vấn đề ldquongoagravei biecircnrdquo (caacutec lớp application transport)

chuẩn bị vagraveo phần ldquolotildeirdquo của mạng

  • Slide 1
  • Chương 3 Lớp Transport
  • Chương 3 Nội dung trigravenh bagravey
  • Caacutec dịch vụ vagrave giao thức Transport
  • Lớp Transport với lớp network
  • Caacutec giao thức lớp transport trecircn Internet
  • Slide 7
  • Multiplexingdemultiplexing
  • Demultiplexing lagravem việc như thế nagraveo
  • Demultiplexing khocircng kết nối
  • Demultiplexing khocircng kết nối (tiếp)
  • Demultiplexing hướng kết nối
  • Demultiplexing hướng kết nối (tiếp)
  • Demultiplexing hướng kết nối Threaded Web Server
  • Slide 15
  • UDP User Datagram Protocol [RFC 768]
  • UDP (tt)
  • UDP checksum
  • Viacute dụ Checksum
  • Slide 20
  • Caacutec nguyecircn lyacute truyền dữ liệu tin cậy
  • Slide 22
  • Slide 23
  • Truyền dữ liệu tin cậy
  • Slide 25
  • Rdt10 truyền dữ liệu tin cậy trecircn 1 kecircnh truyền tin cậy
  • Rdt20 kecircnh với caacutec lỗi
  • rdt20 đặc tả FSM
  • rdt20 hoạt động khi khocircng lỗi
  • rdt20 hoạt động khi coacute lỗi
  • rdt20 coacute lỗ hổng nghiecircm trọng
  • rdt21 người gửi quản lyacute caacutec ACKNAK bị hỏng
  • Slide 33
  • rdt21 thảo luận
  • rdt22 một giao thức khocircng cần NAK
  • rdt22 gửi nhận caacutec mảnh
  • rdt30 caacutec kecircnh với lỗi vagrave mất maacutet
  • rdt30 gửi
  • hagravenh động của rdt30
  • Slide 40
  • Hiệu suất của rdt30
  • rdt30 hoạt động dừng-vagrave-chờ
  • Caacutec giao thức Pipelined
  • Pipelining độ khả dụng tăng
  • Go-Back-N
  • GBN becircn gửi mở rộng FSM
  • GBN becircn nhận mở rộng FSM
  • GBN hoạt động
  • Lặp coacute lựa chọn
  • Lặp coacute lựa chọn caacutec cửa sổ gửi nhận
  • Slide 51
  • Hoạt động của lặp coacute lựa chọn
  • Lặp coacute lựa chọn tigravenh trạng khoacute giải quyết
  • Slide 54
  • TCP Tổng quan RFCs 793 1122 1323 2018 2581
  • TCP cấu truacutec đoạn
  • Caacutec số thứ tự TCP vagrave ACK
  • TCP Round Trip Time vagraveTimeout
  • TCP Round Trip Time vagrave Timeout
  • Viacute dụ đaacutenh giaacute RTT
  • Slide 61
  • TCP truyền dữ liệu tin cậy
  • TCP caacutec sự kiện
  • TCP becircn gửi (đơn giản)
  • TCP caacutec tigravenh huống truyền lại
  • TCP caacutec tigravenh huống truyền lại (tt)
  • TCP sinh ra ACK [RFC 1122 RFC 2581]
  • Truyền lại nhanh
  • Giải thuật truyền lại nhanh
  • Slide 70
  • TCP điều khiển luồng
  • TCP điều khiển luồng caacutech lagravem
  • Slide 73
  • TCP quản lyacute kết nối
  • TCP quản lyacute kết nối (tt)
  • Slide 76
  • Slide 77
  • Slide 78
  • Caacutec nguyecircn lyacute điều khiển tắc nghẽn
  • Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 1
  • Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 2
  • Slide 82
  • Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 3
  • Slide 84
  • Caacutec caacutech tiếp cận đối với điều khiển tắc nghẽn
  • Viacute dụ điều khiển tắc nghẽn ATM ABR
  • Slide 87
  • Slide 88
  • TCP điều khiển tắc nghẽn additive tăng lecircn multiplicative giảm xuống
  • TCP điều khiển tắc nghẽn chi tiết
  • TCP khởi động chậm
  • TCP khởi động chậm (tt)
  • Tinh chế
  • Tinh chế nhận biết mất maacutet
  • Tổng kết TCP điều khiển tắc nghẽn
  • TCP điều khiển tắc nghẽn becircn gửi
  • TCP throughput
  • TCP tương lai
  • TCP tiacutenh cocircng bằng
  • Tại sao phải TCP cocircng bằng
  • TCP tiacutenh cocircng bằng (tt)
  • Mocirc higravenh trễ
  • Cửa sổ tắc nghẽn cố định (1)
  • Cửa sổ tắc nghẽn cố định (2)
  • TCP Mocirc higravenh trễ Khởi động chậm (1)
  • TCP Mocirc higravenh trễ Khởi động chậm (2)
  • TCP Mocirc higravenh trễ(3)
  • TCP Mocirc higravenh trễ (4)
  • HTTP Mocirc higravenh
  • Slide 110
  • Slide 111
  • Chương 3 Tổng kết

Transport Layer 3-105

TCP Mocirc higravenh trễ Khởi động chậm (1)

Bacircy giờ giả sử kiacutech thước cửa sổ tăng lecircn tugravey theo quaacute trigravenh khởi động chậm

Độ trễ của một đối tượng sẽ lagrave

R

S

R

SRTTP

R

ORTTLatency P )12(2

trong đoacute P lagrave số lần TCP rảnh ở tại server

1min KQP

- trong đoacute Q lagrave số lần server rảnh nếu đối tượng đatilde khởi tạo kiacutech thước

- vagrave K lagrave số lượng cửa sổ bao trugravem đối tượng

Transport Layer 3-106

TCP Mocirc higravenh trễ Khởi động chậm (2)

RTT

initia te TCPconnection

requestobject

first w indow= S R

second w indow= 2S R

third w indow= 4S R

fourth w indow= 8S R

com pletetransm issionobject

delivered

tim e atc lient

tim e atserver

Viacute dụbull OS = 15 đoạnbull K = 4 cửa sổbull Q = 2bull P = minK-1Q = 2

Server rảnh P=2 lần

Caacutec thagravenh phần trễbull 2 RTT dagravenh cho thiết lập kết nối vagrave yecircu cầubull OR để truyền đối tượngbullthời gian server rảnh bởi vigrave khởi động chậm

Server rảnh P = minK-1Q lần

Transport Layer 3-107

TCP Mocirc higravenh trễ(3)

R

S

R

SRTTPRTT

R

O

R

SRTT

R

SRTT

R

O

idleTimeRTTR

O

P

kP

k

P

pp

)12(][2

]2[2

2delay

1

1

1

th window after the timeidle 2 1 kR

SRTT

R

S k

ementacknowledg receivesserver until

segment send tostartsserver when from time RTTR

S

window kth the transmit totime2 1

R

Sk

RTT

initia te TCPconnection

requestobject

first w indow= S R

second w indow= 2S R

third w indow= 4S R

fourth w indow= 8S R

com pletetransm issionobject

delivered

tim e atc lient

tim e atserver

Transport Layer 3-108

TCP Mocirc higravenh trễ (4)

)1(log

)1(logmin

12min

222min

222min

2

2

110

110

S

OS

Okk

S

Ok

SOk

OSSSkK

k

k

k

caacutech tiacutenh toaacuten Q tương tự (xem HW)

K = số lượng cửa sổ bao trugravem đối tượngLagravem thế nagraveo tiacutenh được K

Transport Layer 3-109

HTTP Mocirc higravenh Giả sử trang Web chứa

1 trang HTML (kiacutech thước O bits) M higravenh ảnh (mỗi caacutei kiacutech thướcO bits)

HTTP khocircng bền vững M+1 TCP kết nối Thời gian đaacutep ứng = (M+1)OR + (M+1)2RTT + tổng số thời

gian rảnh HTTP bền vững

2 RTT để yecircu cầu vagrave nhận file HTML 1 RTT để yecircu cầu vagrave nhận M higravenh ảnh Thời gian đaacutep ứng = (M+1)OR + 3RTT + tổng số thời gian

rảnh HTTP khocircng bền vững với X kết nối song song

Giả sử MX lagrave số nguyecircn 1 TCP kết nối cho file MX thiết lập caacutec kết nối song song cho caacutec higravenh ảnh Thời gian đaacutep ứng = (M+1)OR + (MX + 1)2RTT + tổng số

thời gian rảnh

Transport Layer 3-110

02468

101214161820

28Kbps

100Kbps

1Mbps

10Mbps

non-persistent

persistent

parallel non-persistent

HTTP thời gian đaacutep ứng (giacircy)RTT = 100 msec O = 5 Kbytes M=10 vagrave X=5

Với băng thocircng thấp thời gian kết nối amp đaacutep ứng trội hơn thời gian truyền

Caacutec kết nối bền vững chỉ cho sự cải thiện khocircng đaacuteng kể trecircn caacutec kết nối song song

Transport Layer 3-111

0

10

20

30

40

50

60

70

28Kbps

100Kbps

1Mbps

10Mbps

non-persistent

persistent

parallel non-persistent

HTTP thời gian đaacutep ứng (giacircy)

RTT =1 sec O = 5 Kbytes M=10 and X=5

Với RTT lớn hơn thời gian đaacutep ứng trội hơn thời gian trễ chờ thiết lập kết nốiTCP amp khởi động chậm Caacutec kết nối bền vững bacircy giờ cho thấy cải thiện rotilde rệt đặc biệtvới caacutec mạng băng thocircng cao

Transport Layer 3-112

Chương 3 Tổng kết caacutec nguyecircn lyacute của caacutec

dịch vụ lớp transport multiplexing

demultiplexing truyền dữ liệu tin cậy điều khiển luồng điều khiển tắc nghẽn

khởi tạo vagrave hiện thực trong Internet UDP TCP

Tiếp theo nghiecircn cứu xong

caacutec vấn đề ldquongoagravei biecircnrdquo (caacutec lớp application transport)

chuẩn bị vagraveo phần ldquolotildeirdquo của mạng

  • Slide 1
  • Chương 3 Lớp Transport
  • Chương 3 Nội dung trigravenh bagravey
  • Caacutec dịch vụ vagrave giao thức Transport
  • Lớp Transport với lớp network
  • Caacutec giao thức lớp transport trecircn Internet
  • Slide 7
  • Multiplexingdemultiplexing
  • Demultiplexing lagravem việc như thế nagraveo
  • Demultiplexing khocircng kết nối
  • Demultiplexing khocircng kết nối (tiếp)
  • Demultiplexing hướng kết nối
  • Demultiplexing hướng kết nối (tiếp)
  • Demultiplexing hướng kết nối Threaded Web Server
  • Slide 15
  • UDP User Datagram Protocol [RFC 768]
  • UDP (tt)
  • UDP checksum
  • Viacute dụ Checksum
  • Slide 20
  • Caacutec nguyecircn lyacute truyền dữ liệu tin cậy
  • Slide 22
  • Slide 23
  • Truyền dữ liệu tin cậy
  • Slide 25
  • Rdt10 truyền dữ liệu tin cậy trecircn 1 kecircnh truyền tin cậy
  • Rdt20 kecircnh với caacutec lỗi
  • rdt20 đặc tả FSM
  • rdt20 hoạt động khi khocircng lỗi
  • rdt20 hoạt động khi coacute lỗi
  • rdt20 coacute lỗ hổng nghiecircm trọng
  • rdt21 người gửi quản lyacute caacutec ACKNAK bị hỏng
  • Slide 33
  • rdt21 thảo luận
  • rdt22 một giao thức khocircng cần NAK
  • rdt22 gửi nhận caacutec mảnh
  • rdt30 caacutec kecircnh với lỗi vagrave mất maacutet
  • rdt30 gửi
  • hagravenh động của rdt30
  • Slide 40
  • Hiệu suất của rdt30
  • rdt30 hoạt động dừng-vagrave-chờ
  • Caacutec giao thức Pipelined
  • Pipelining độ khả dụng tăng
  • Go-Back-N
  • GBN becircn gửi mở rộng FSM
  • GBN becircn nhận mở rộng FSM
  • GBN hoạt động
  • Lặp coacute lựa chọn
  • Lặp coacute lựa chọn caacutec cửa sổ gửi nhận
  • Slide 51
  • Hoạt động của lặp coacute lựa chọn
  • Lặp coacute lựa chọn tigravenh trạng khoacute giải quyết
  • Slide 54
  • TCP Tổng quan RFCs 793 1122 1323 2018 2581
  • TCP cấu truacutec đoạn
  • Caacutec số thứ tự TCP vagrave ACK
  • TCP Round Trip Time vagraveTimeout
  • TCP Round Trip Time vagrave Timeout
  • Viacute dụ đaacutenh giaacute RTT
  • Slide 61
  • TCP truyền dữ liệu tin cậy
  • TCP caacutec sự kiện
  • TCP becircn gửi (đơn giản)
  • TCP caacutec tigravenh huống truyền lại
  • TCP caacutec tigravenh huống truyền lại (tt)
  • TCP sinh ra ACK [RFC 1122 RFC 2581]
  • Truyền lại nhanh
  • Giải thuật truyền lại nhanh
  • Slide 70
  • TCP điều khiển luồng
  • TCP điều khiển luồng caacutech lagravem
  • Slide 73
  • TCP quản lyacute kết nối
  • TCP quản lyacute kết nối (tt)
  • Slide 76
  • Slide 77
  • Slide 78
  • Caacutec nguyecircn lyacute điều khiển tắc nghẽn
  • Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 1
  • Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 2
  • Slide 82
  • Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 3
  • Slide 84
  • Caacutec caacutech tiếp cận đối với điều khiển tắc nghẽn
  • Viacute dụ điều khiển tắc nghẽn ATM ABR
  • Slide 87
  • Slide 88
  • TCP điều khiển tắc nghẽn additive tăng lecircn multiplicative giảm xuống
  • TCP điều khiển tắc nghẽn chi tiết
  • TCP khởi động chậm
  • TCP khởi động chậm (tt)
  • Tinh chế
  • Tinh chế nhận biết mất maacutet
  • Tổng kết TCP điều khiển tắc nghẽn
  • TCP điều khiển tắc nghẽn becircn gửi
  • TCP throughput
  • TCP tương lai
  • TCP tiacutenh cocircng bằng
  • Tại sao phải TCP cocircng bằng
  • TCP tiacutenh cocircng bằng (tt)
  • Mocirc higravenh trễ
  • Cửa sổ tắc nghẽn cố định (1)
  • Cửa sổ tắc nghẽn cố định (2)
  • TCP Mocirc higravenh trễ Khởi động chậm (1)
  • TCP Mocirc higravenh trễ Khởi động chậm (2)
  • TCP Mocirc higravenh trễ(3)
  • TCP Mocirc higravenh trễ (4)
  • HTTP Mocirc higravenh
  • Slide 110
  • Slide 111
  • Chương 3 Tổng kết

Transport Layer 3-106

TCP Mocirc higravenh trễ Khởi động chậm (2)

RTT

initia te TCPconnection

requestobject

first w indow= S R

second w indow= 2S R

third w indow= 4S R

fourth w indow= 8S R

com pletetransm issionobject

delivered

tim e atc lient

tim e atserver

Viacute dụbull OS = 15 đoạnbull K = 4 cửa sổbull Q = 2bull P = minK-1Q = 2

Server rảnh P=2 lần

Caacutec thagravenh phần trễbull 2 RTT dagravenh cho thiết lập kết nối vagrave yecircu cầubull OR để truyền đối tượngbullthời gian server rảnh bởi vigrave khởi động chậm

Server rảnh P = minK-1Q lần

Transport Layer 3-107

TCP Mocirc higravenh trễ(3)

R

S

R

SRTTPRTT

R

O

R

SRTT

R

SRTT

R

O

idleTimeRTTR

O

P

kP

k

P

pp

)12(][2

]2[2

2delay

1

1

1

th window after the timeidle 2 1 kR

SRTT

R

S k

ementacknowledg receivesserver until

segment send tostartsserver when from time RTTR

S

window kth the transmit totime2 1

R

Sk

RTT

initia te TCPconnection

requestobject

first w indow= S R

second w indow= 2S R

third w indow= 4S R

fourth w indow= 8S R

com pletetransm issionobject

delivered

tim e atc lient

tim e atserver

Transport Layer 3-108

TCP Mocirc higravenh trễ (4)

)1(log

)1(logmin

12min

222min

222min

2

2

110

110

S

OS

Okk

S

Ok

SOk

OSSSkK

k

k

k

caacutech tiacutenh toaacuten Q tương tự (xem HW)

K = số lượng cửa sổ bao trugravem đối tượngLagravem thế nagraveo tiacutenh được K

Transport Layer 3-109

HTTP Mocirc higravenh Giả sử trang Web chứa

1 trang HTML (kiacutech thước O bits) M higravenh ảnh (mỗi caacutei kiacutech thướcO bits)

HTTP khocircng bền vững M+1 TCP kết nối Thời gian đaacutep ứng = (M+1)OR + (M+1)2RTT + tổng số thời

gian rảnh HTTP bền vững

2 RTT để yecircu cầu vagrave nhận file HTML 1 RTT để yecircu cầu vagrave nhận M higravenh ảnh Thời gian đaacutep ứng = (M+1)OR + 3RTT + tổng số thời gian

rảnh HTTP khocircng bền vững với X kết nối song song

Giả sử MX lagrave số nguyecircn 1 TCP kết nối cho file MX thiết lập caacutec kết nối song song cho caacutec higravenh ảnh Thời gian đaacutep ứng = (M+1)OR + (MX + 1)2RTT + tổng số

thời gian rảnh

Transport Layer 3-110

02468

101214161820

28Kbps

100Kbps

1Mbps

10Mbps

non-persistent

persistent

parallel non-persistent

HTTP thời gian đaacutep ứng (giacircy)RTT = 100 msec O = 5 Kbytes M=10 vagrave X=5

Với băng thocircng thấp thời gian kết nối amp đaacutep ứng trội hơn thời gian truyền

Caacutec kết nối bền vững chỉ cho sự cải thiện khocircng đaacuteng kể trecircn caacutec kết nối song song

Transport Layer 3-111

0

10

20

30

40

50

60

70

28Kbps

100Kbps

1Mbps

10Mbps

non-persistent

persistent

parallel non-persistent

HTTP thời gian đaacutep ứng (giacircy)

RTT =1 sec O = 5 Kbytes M=10 and X=5

Với RTT lớn hơn thời gian đaacutep ứng trội hơn thời gian trễ chờ thiết lập kết nốiTCP amp khởi động chậm Caacutec kết nối bền vững bacircy giờ cho thấy cải thiện rotilde rệt đặc biệtvới caacutec mạng băng thocircng cao

Transport Layer 3-112

Chương 3 Tổng kết caacutec nguyecircn lyacute của caacutec

dịch vụ lớp transport multiplexing

demultiplexing truyền dữ liệu tin cậy điều khiển luồng điều khiển tắc nghẽn

khởi tạo vagrave hiện thực trong Internet UDP TCP

Tiếp theo nghiecircn cứu xong

caacutec vấn đề ldquongoagravei biecircnrdquo (caacutec lớp application transport)

chuẩn bị vagraveo phần ldquolotildeirdquo của mạng

  • Slide 1
  • Chương 3 Lớp Transport
  • Chương 3 Nội dung trigravenh bagravey
  • Caacutec dịch vụ vagrave giao thức Transport
  • Lớp Transport với lớp network
  • Caacutec giao thức lớp transport trecircn Internet
  • Slide 7
  • Multiplexingdemultiplexing
  • Demultiplexing lagravem việc như thế nagraveo
  • Demultiplexing khocircng kết nối
  • Demultiplexing khocircng kết nối (tiếp)
  • Demultiplexing hướng kết nối
  • Demultiplexing hướng kết nối (tiếp)
  • Demultiplexing hướng kết nối Threaded Web Server
  • Slide 15
  • UDP User Datagram Protocol [RFC 768]
  • UDP (tt)
  • UDP checksum
  • Viacute dụ Checksum
  • Slide 20
  • Caacutec nguyecircn lyacute truyền dữ liệu tin cậy
  • Slide 22
  • Slide 23
  • Truyền dữ liệu tin cậy
  • Slide 25
  • Rdt10 truyền dữ liệu tin cậy trecircn 1 kecircnh truyền tin cậy
  • Rdt20 kecircnh với caacutec lỗi
  • rdt20 đặc tả FSM
  • rdt20 hoạt động khi khocircng lỗi
  • rdt20 hoạt động khi coacute lỗi
  • rdt20 coacute lỗ hổng nghiecircm trọng
  • rdt21 người gửi quản lyacute caacutec ACKNAK bị hỏng
  • Slide 33
  • rdt21 thảo luận
  • rdt22 một giao thức khocircng cần NAK
  • rdt22 gửi nhận caacutec mảnh
  • rdt30 caacutec kecircnh với lỗi vagrave mất maacutet
  • rdt30 gửi
  • hagravenh động của rdt30
  • Slide 40
  • Hiệu suất của rdt30
  • rdt30 hoạt động dừng-vagrave-chờ
  • Caacutec giao thức Pipelined
  • Pipelining độ khả dụng tăng
  • Go-Back-N
  • GBN becircn gửi mở rộng FSM
  • GBN becircn nhận mở rộng FSM
  • GBN hoạt động
  • Lặp coacute lựa chọn
  • Lặp coacute lựa chọn caacutec cửa sổ gửi nhận
  • Slide 51
  • Hoạt động của lặp coacute lựa chọn
  • Lặp coacute lựa chọn tigravenh trạng khoacute giải quyết
  • Slide 54
  • TCP Tổng quan RFCs 793 1122 1323 2018 2581
  • TCP cấu truacutec đoạn
  • Caacutec số thứ tự TCP vagrave ACK
  • TCP Round Trip Time vagraveTimeout
  • TCP Round Trip Time vagrave Timeout
  • Viacute dụ đaacutenh giaacute RTT
  • Slide 61
  • TCP truyền dữ liệu tin cậy
  • TCP caacutec sự kiện
  • TCP becircn gửi (đơn giản)
  • TCP caacutec tigravenh huống truyền lại
  • TCP caacutec tigravenh huống truyền lại (tt)
  • TCP sinh ra ACK [RFC 1122 RFC 2581]
  • Truyền lại nhanh
  • Giải thuật truyền lại nhanh
  • Slide 70
  • TCP điều khiển luồng
  • TCP điều khiển luồng caacutech lagravem
  • Slide 73
  • TCP quản lyacute kết nối
  • TCP quản lyacute kết nối (tt)
  • Slide 76
  • Slide 77
  • Slide 78
  • Caacutec nguyecircn lyacute điều khiển tắc nghẽn
  • Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 1
  • Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 2
  • Slide 82
  • Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 3
  • Slide 84
  • Caacutec caacutech tiếp cận đối với điều khiển tắc nghẽn
  • Viacute dụ điều khiển tắc nghẽn ATM ABR
  • Slide 87
  • Slide 88
  • TCP điều khiển tắc nghẽn additive tăng lecircn multiplicative giảm xuống
  • TCP điều khiển tắc nghẽn chi tiết
  • TCP khởi động chậm
  • TCP khởi động chậm (tt)
  • Tinh chế
  • Tinh chế nhận biết mất maacutet
  • Tổng kết TCP điều khiển tắc nghẽn
  • TCP điều khiển tắc nghẽn becircn gửi
  • TCP throughput
  • TCP tương lai
  • TCP tiacutenh cocircng bằng
  • Tại sao phải TCP cocircng bằng
  • TCP tiacutenh cocircng bằng (tt)
  • Mocirc higravenh trễ
  • Cửa sổ tắc nghẽn cố định (1)
  • Cửa sổ tắc nghẽn cố định (2)
  • TCP Mocirc higravenh trễ Khởi động chậm (1)
  • TCP Mocirc higravenh trễ Khởi động chậm (2)
  • TCP Mocirc higravenh trễ(3)
  • TCP Mocirc higravenh trễ (4)
  • HTTP Mocirc higravenh
  • Slide 110
  • Slide 111
  • Chương 3 Tổng kết

Transport Layer 3-107

TCP Mocirc higravenh trễ(3)

R

S

R

SRTTPRTT

R

O

R

SRTT

R

SRTT

R

O

idleTimeRTTR

O

P

kP

k

P

pp

)12(][2

]2[2

2delay

1

1

1

th window after the timeidle 2 1 kR

SRTT

R

S k

ementacknowledg receivesserver until

segment send tostartsserver when from time RTTR

S

window kth the transmit totime2 1

R

Sk

RTT

initia te TCPconnection

requestobject

first w indow= S R

second w indow= 2S R

third w indow= 4S R

fourth w indow= 8S R

com pletetransm issionobject

delivered

tim e atc lient

tim e atserver

Transport Layer 3-108

TCP Mocirc higravenh trễ (4)

)1(log

)1(logmin

12min

222min

222min

2

2

110

110

S

OS

Okk

S

Ok

SOk

OSSSkK

k

k

k

caacutech tiacutenh toaacuten Q tương tự (xem HW)

K = số lượng cửa sổ bao trugravem đối tượngLagravem thế nagraveo tiacutenh được K

Transport Layer 3-109

HTTP Mocirc higravenh Giả sử trang Web chứa

1 trang HTML (kiacutech thước O bits) M higravenh ảnh (mỗi caacutei kiacutech thướcO bits)

HTTP khocircng bền vững M+1 TCP kết nối Thời gian đaacutep ứng = (M+1)OR + (M+1)2RTT + tổng số thời

gian rảnh HTTP bền vững

2 RTT để yecircu cầu vagrave nhận file HTML 1 RTT để yecircu cầu vagrave nhận M higravenh ảnh Thời gian đaacutep ứng = (M+1)OR + 3RTT + tổng số thời gian

rảnh HTTP khocircng bền vững với X kết nối song song

Giả sử MX lagrave số nguyecircn 1 TCP kết nối cho file MX thiết lập caacutec kết nối song song cho caacutec higravenh ảnh Thời gian đaacutep ứng = (M+1)OR + (MX + 1)2RTT + tổng số

thời gian rảnh

Transport Layer 3-110

02468

101214161820

28Kbps

100Kbps

1Mbps

10Mbps

non-persistent

persistent

parallel non-persistent

HTTP thời gian đaacutep ứng (giacircy)RTT = 100 msec O = 5 Kbytes M=10 vagrave X=5

Với băng thocircng thấp thời gian kết nối amp đaacutep ứng trội hơn thời gian truyền

Caacutec kết nối bền vững chỉ cho sự cải thiện khocircng đaacuteng kể trecircn caacutec kết nối song song

Transport Layer 3-111

0

10

20

30

40

50

60

70

28Kbps

100Kbps

1Mbps

10Mbps

non-persistent

persistent

parallel non-persistent

HTTP thời gian đaacutep ứng (giacircy)

RTT =1 sec O = 5 Kbytes M=10 and X=5

Với RTT lớn hơn thời gian đaacutep ứng trội hơn thời gian trễ chờ thiết lập kết nốiTCP amp khởi động chậm Caacutec kết nối bền vững bacircy giờ cho thấy cải thiện rotilde rệt đặc biệtvới caacutec mạng băng thocircng cao

Transport Layer 3-112

Chương 3 Tổng kết caacutec nguyecircn lyacute của caacutec

dịch vụ lớp transport multiplexing

demultiplexing truyền dữ liệu tin cậy điều khiển luồng điều khiển tắc nghẽn

khởi tạo vagrave hiện thực trong Internet UDP TCP

Tiếp theo nghiecircn cứu xong

caacutec vấn đề ldquongoagravei biecircnrdquo (caacutec lớp application transport)

chuẩn bị vagraveo phần ldquolotildeirdquo của mạng

  • Slide 1
  • Chương 3 Lớp Transport
  • Chương 3 Nội dung trigravenh bagravey
  • Caacutec dịch vụ vagrave giao thức Transport
  • Lớp Transport với lớp network
  • Caacutec giao thức lớp transport trecircn Internet
  • Slide 7
  • Multiplexingdemultiplexing
  • Demultiplexing lagravem việc như thế nagraveo
  • Demultiplexing khocircng kết nối
  • Demultiplexing khocircng kết nối (tiếp)
  • Demultiplexing hướng kết nối
  • Demultiplexing hướng kết nối (tiếp)
  • Demultiplexing hướng kết nối Threaded Web Server
  • Slide 15
  • UDP User Datagram Protocol [RFC 768]
  • UDP (tt)
  • UDP checksum
  • Viacute dụ Checksum
  • Slide 20
  • Caacutec nguyecircn lyacute truyền dữ liệu tin cậy
  • Slide 22
  • Slide 23
  • Truyền dữ liệu tin cậy
  • Slide 25
  • Rdt10 truyền dữ liệu tin cậy trecircn 1 kecircnh truyền tin cậy
  • Rdt20 kecircnh với caacutec lỗi
  • rdt20 đặc tả FSM
  • rdt20 hoạt động khi khocircng lỗi
  • rdt20 hoạt động khi coacute lỗi
  • rdt20 coacute lỗ hổng nghiecircm trọng
  • rdt21 người gửi quản lyacute caacutec ACKNAK bị hỏng
  • Slide 33
  • rdt21 thảo luận
  • rdt22 một giao thức khocircng cần NAK
  • rdt22 gửi nhận caacutec mảnh
  • rdt30 caacutec kecircnh với lỗi vagrave mất maacutet
  • rdt30 gửi
  • hagravenh động của rdt30
  • Slide 40
  • Hiệu suất của rdt30
  • rdt30 hoạt động dừng-vagrave-chờ
  • Caacutec giao thức Pipelined
  • Pipelining độ khả dụng tăng
  • Go-Back-N
  • GBN becircn gửi mở rộng FSM
  • GBN becircn nhận mở rộng FSM
  • GBN hoạt động
  • Lặp coacute lựa chọn
  • Lặp coacute lựa chọn caacutec cửa sổ gửi nhận
  • Slide 51
  • Hoạt động của lặp coacute lựa chọn
  • Lặp coacute lựa chọn tigravenh trạng khoacute giải quyết
  • Slide 54
  • TCP Tổng quan RFCs 793 1122 1323 2018 2581
  • TCP cấu truacutec đoạn
  • Caacutec số thứ tự TCP vagrave ACK
  • TCP Round Trip Time vagraveTimeout
  • TCP Round Trip Time vagrave Timeout
  • Viacute dụ đaacutenh giaacute RTT
  • Slide 61
  • TCP truyền dữ liệu tin cậy
  • TCP caacutec sự kiện
  • TCP becircn gửi (đơn giản)
  • TCP caacutec tigravenh huống truyền lại
  • TCP caacutec tigravenh huống truyền lại (tt)
  • TCP sinh ra ACK [RFC 1122 RFC 2581]
  • Truyền lại nhanh
  • Giải thuật truyền lại nhanh
  • Slide 70
  • TCP điều khiển luồng
  • TCP điều khiển luồng caacutech lagravem
  • Slide 73
  • TCP quản lyacute kết nối
  • TCP quản lyacute kết nối (tt)
  • Slide 76
  • Slide 77
  • Slide 78
  • Caacutec nguyecircn lyacute điều khiển tắc nghẽn
  • Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 1
  • Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 2
  • Slide 82
  • Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 3
  • Slide 84
  • Caacutec caacutech tiếp cận đối với điều khiển tắc nghẽn
  • Viacute dụ điều khiển tắc nghẽn ATM ABR
  • Slide 87
  • Slide 88
  • TCP điều khiển tắc nghẽn additive tăng lecircn multiplicative giảm xuống
  • TCP điều khiển tắc nghẽn chi tiết
  • TCP khởi động chậm
  • TCP khởi động chậm (tt)
  • Tinh chế
  • Tinh chế nhận biết mất maacutet
  • Tổng kết TCP điều khiển tắc nghẽn
  • TCP điều khiển tắc nghẽn becircn gửi
  • TCP throughput
  • TCP tương lai
  • TCP tiacutenh cocircng bằng
  • Tại sao phải TCP cocircng bằng
  • TCP tiacutenh cocircng bằng (tt)
  • Mocirc higravenh trễ
  • Cửa sổ tắc nghẽn cố định (1)
  • Cửa sổ tắc nghẽn cố định (2)
  • TCP Mocirc higravenh trễ Khởi động chậm (1)
  • TCP Mocirc higravenh trễ Khởi động chậm (2)
  • TCP Mocirc higravenh trễ(3)
  • TCP Mocirc higravenh trễ (4)
  • HTTP Mocirc higravenh
  • Slide 110
  • Slide 111
  • Chương 3 Tổng kết

Transport Layer 3-108

TCP Mocirc higravenh trễ (4)

)1(log

)1(logmin

12min

222min

222min

2

2

110

110

S

OS

Okk

S

Ok

SOk

OSSSkK

k

k

k

caacutech tiacutenh toaacuten Q tương tự (xem HW)

K = số lượng cửa sổ bao trugravem đối tượngLagravem thế nagraveo tiacutenh được K

Transport Layer 3-109

HTTP Mocirc higravenh Giả sử trang Web chứa

1 trang HTML (kiacutech thước O bits) M higravenh ảnh (mỗi caacutei kiacutech thướcO bits)

HTTP khocircng bền vững M+1 TCP kết nối Thời gian đaacutep ứng = (M+1)OR + (M+1)2RTT + tổng số thời

gian rảnh HTTP bền vững

2 RTT để yecircu cầu vagrave nhận file HTML 1 RTT để yecircu cầu vagrave nhận M higravenh ảnh Thời gian đaacutep ứng = (M+1)OR + 3RTT + tổng số thời gian

rảnh HTTP khocircng bền vững với X kết nối song song

Giả sử MX lagrave số nguyecircn 1 TCP kết nối cho file MX thiết lập caacutec kết nối song song cho caacutec higravenh ảnh Thời gian đaacutep ứng = (M+1)OR + (MX + 1)2RTT + tổng số

thời gian rảnh

Transport Layer 3-110

02468

101214161820

28Kbps

100Kbps

1Mbps

10Mbps

non-persistent

persistent

parallel non-persistent

HTTP thời gian đaacutep ứng (giacircy)RTT = 100 msec O = 5 Kbytes M=10 vagrave X=5

Với băng thocircng thấp thời gian kết nối amp đaacutep ứng trội hơn thời gian truyền

Caacutec kết nối bền vững chỉ cho sự cải thiện khocircng đaacuteng kể trecircn caacutec kết nối song song

Transport Layer 3-111

0

10

20

30

40

50

60

70

28Kbps

100Kbps

1Mbps

10Mbps

non-persistent

persistent

parallel non-persistent

HTTP thời gian đaacutep ứng (giacircy)

RTT =1 sec O = 5 Kbytes M=10 and X=5

Với RTT lớn hơn thời gian đaacutep ứng trội hơn thời gian trễ chờ thiết lập kết nốiTCP amp khởi động chậm Caacutec kết nối bền vững bacircy giờ cho thấy cải thiện rotilde rệt đặc biệtvới caacutec mạng băng thocircng cao

Transport Layer 3-112

Chương 3 Tổng kết caacutec nguyecircn lyacute của caacutec

dịch vụ lớp transport multiplexing

demultiplexing truyền dữ liệu tin cậy điều khiển luồng điều khiển tắc nghẽn

khởi tạo vagrave hiện thực trong Internet UDP TCP

Tiếp theo nghiecircn cứu xong

caacutec vấn đề ldquongoagravei biecircnrdquo (caacutec lớp application transport)

chuẩn bị vagraveo phần ldquolotildeirdquo của mạng

  • Slide 1
  • Chương 3 Lớp Transport
  • Chương 3 Nội dung trigravenh bagravey
  • Caacutec dịch vụ vagrave giao thức Transport
  • Lớp Transport với lớp network
  • Caacutec giao thức lớp transport trecircn Internet
  • Slide 7
  • Multiplexingdemultiplexing
  • Demultiplexing lagravem việc như thế nagraveo
  • Demultiplexing khocircng kết nối
  • Demultiplexing khocircng kết nối (tiếp)
  • Demultiplexing hướng kết nối
  • Demultiplexing hướng kết nối (tiếp)
  • Demultiplexing hướng kết nối Threaded Web Server
  • Slide 15
  • UDP User Datagram Protocol [RFC 768]
  • UDP (tt)
  • UDP checksum
  • Viacute dụ Checksum
  • Slide 20
  • Caacutec nguyecircn lyacute truyền dữ liệu tin cậy
  • Slide 22
  • Slide 23
  • Truyền dữ liệu tin cậy
  • Slide 25
  • Rdt10 truyền dữ liệu tin cậy trecircn 1 kecircnh truyền tin cậy
  • Rdt20 kecircnh với caacutec lỗi
  • rdt20 đặc tả FSM
  • rdt20 hoạt động khi khocircng lỗi
  • rdt20 hoạt động khi coacute lỗi
  • rdt20 coacute lỗ hổng nghiecircm trọng
  • rdt21 người gửi quản lyacute caacutec ACKNAK bị hỏng
  • Slide 33
  • rdt21 thảo luận
  • rdt22 một giao thức khocircng cần NAK
  • rdt22 gửi nhận caacutec mảnh
  • rdt30 caacutec kecircnh với lỗi vagrave mất maacutet
  • rdt30 gửi
  • hagravenh động của rdt30
  • Slide 40
  • Hiệu suất của rdt30
  • rdt30 hoạt động dừng-vagrave-chờ
  • Caacutec giao thức Pipelined
  • Pipelining độ khả dụng tăng
  • Go-Back-N
  • GBN becircn gửi mở rộng FSM
  • GBN becircn nhận mở rộng FSM
  • GBN hoạt động
  • Lặp coacute lựa chọn
  • Lặp coacute lựa chọn caacutec cửa sổ gửi nhận
  • Slide 51
  • Hoạt động của lặp coacute lựa chọn
  • Lặp coacute lựa chọn tigravenh trạng khoacute giải quyết
  • Slide 54
  • TCP Tổng quan RFCs 793 1122 1323 2018 2581
  • TCP cấu truacutec đoạn
  • Caacutec số thứ tự TCP vagrave ACK
  • TCP Round Trip Time vagraveTimeout
  • TCP Round Trip Time vagrave Timeout
  • Viacute dụ đaacutenh giaacute RTT
  • Slide 61
  • TCP truyền dữ liệu tin cậy
  • TCP caacutec sự kiện
  • TCP becircn gửi (đơn giản)
  • TCP caacutec tigravenh huống truyền lại
  • TCP caacutec tigravenh huống truyền lại (tt)
  • TCP sinh ra ACK [RFC 1122 RFC 2581]
  • Truyền lại nhanh
  • Giải thuật truyền lại nhanh
  • Slide 70
  • TCP điều khiển luồng
  • TCP điều khiển luồng caacutech lagravem
  • Slide 73
  • TCP quản lyacute kết nối
  • TCP quản lyacute kết nối (tt)
  • Slide 76
  • Slide 77
  • Slide 78
  • Caacutec nguyecircn lyacute điều khiển tắc nghẽn
  • Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 1
  • Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 2
  • Slide 82
  • Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 3
  • Slide 84
  • Caacutec caacutech tiếp cận đối với điều khiển tắc nghẽn
  • Viacute dụ điều khiển tắc nghẽn ATM ABR
  • Slide 87
  • Slide 88
  • TCP điều khiển tắc nghẽn additive tăng lecircn multiplicative giảm xuống
  • TCP điều khiển tắc nghẽn chi tiết
  • TCP khởi động chậm
  • TCP khởi động chậm (tt)
  • Tinh chế
  • Tinh chế nhận biết mất maacutet
  • Tổng kết TCP điều khiển tắc nghẽn
  • TCP điều khiển tắc nghẽn becircn gửi
  • TCP throughput
  • TCP tương lai
  • TCP tiacutenh cocircng bằng
  • Tại sao phải TCP cocircng bằng
  • TCP tiacutenh cocircng bằng (tt)
  • Mocirc higravenh trễ
  • Cửa sổ tắc nghẽn cố định (1)
  • Cửa sổ tắc nghẽn cố định (2)
  • TCP Mocirc higravenh trễ Khởi động chậm (1)
  • TCP Mocirc higravenh trễ Khởi động chậm (2)
  • TCP Mocirc higravenh trễ(3)
  • TCP Mocirc higravenh trễ (4)
  • HTTP Mocirc higravenh
  • Slide 110
  • Slide 111
  • Chương 3 Tổng kết

Transport Layer 3-109

HTTP Mocirc higravenh Giả sử trang Web chứa

1 trang HTML (kiacutech thước O bits) M higravenh ảnh (mỗi caacutei kiacutech thướcO bits)

HTTP khocircng bền vững M+1 TCP kết nối Thời gian đaacutep ứng = (M+1)OR + (M+1)2RTT + tổng số thời

gian rảnh HTTP bền vững

2 RTT để yecircu cầu vagrave nhận file HTML 1 RTT để yecircu cầu vagrave nhận M higravenh ảnh Thời gian đaacutep ứng = (M+1)OR + 3RTT + tổng số thời gian

rảnh HTTP khocircng bền vững với X kết nối song song

Giả sử MX lagrave số nguyecircn 1 TCP kết nối cho file MX thiết lập caacutec kết nối song song cho caacutec higravenh ảnh Thời gian đaacutep ứng = (M+1)OR + (MX + 1)2RTT + tổng số

thời gian rảnh

Transport Layer 3-110

02468

101214161820

28Kbps

100Kbps

1Mbps

10Mbps

non-persistent

persistent

parallel non-persistent

HTTP thời gian đaacutep ứng (giacircy)RTT = 100 msec O = 5 Kbytes M=10 vagrave X=5

Với băng thocircng thấp thời gian kết nối amp đaacutep ứng trội hơn thời gian truyền

Caacutec kết nối bền vững chỉ cho sự cải thiện khocircng đaacuteng kể trecircn caacutec kết nối song song

Transport Layer 3-111

0

10

20

30

40

50

60

70

28Kbps

100Kbps

1Mbps

10Mbps

non-persistent

persistent

parallel non-persistent

HTTP thời gian đaacutep ứng (giacircy)

RTT =1 sec O = 5 Kbytes M=10 and X=5

Với RTT lớn hơn thời gian đaacutep ứng trội hơn thời gian trễ chờ thiết lập kết nốiTCP amp khởi động chậm Caacutec kết nối bền vững bacircy giờ cho thấy cải thiện rotilde rệt đặc biệtvới caacutec mạng băng thocircng cao

Transport Layer 3-112

Chương 3 Tổng kết caacutec nguyecircn lyacute của caacutec

dịch vụ lớp transport multiplexing

demultiplexing truyền dữ liệu tin cậy điều khiển luồng điều khiển tắc nghẽn

khởi tạo vagrave hiện thực trong Internet UDP TCP

Tiếp theo nghiecircn cứu xong

caacutec vấn đề ldquongoagravei biecircnrdquo (caacutec lớp application transport)

chuẩn bị vagraveo phần ldquolotildeirdquo của mạng

  • Slide 1
  • Chương 3 Lớp Transport
  • Chương 3 Nội dung trigravenh bagravey
  • Caacutec dịch vụ vagrave giao thức Transport
  • Lớp Transport với lớp network
  • Caacutec giao thức lớp transport trecircn Internet
  • Slide 7
  • Multiplexingdemultiplexing
  • Demultiplexing lagravem việc như thế nagraveo
  • Demultiplexing khocircng kết nối
  • Demultiplexing khocircng kết nối (tiếp)
  • Demultiplexing hướng kết nối
  • Demultiplexing hướng kết nối (tiếp)
  • Demultiplexing hướng kết nối Threaded Web Server
  • Slide 15
  • UDP User Datagram Protocol [RFC 768]
  • UDP (tt)
  • UDP checksum
  • Viacute dụ Checksum
  • Slide 20
  • Caacutec nguyecircn lyacute truyền dữ liệu tin cậy
  • Slide 22
  • Slide 23
  • Truyền dữ liệu tin cậy
  • Slide 25
  • Rdt10 truyền dữ liệu tin cậy trecircn 1 kecircnh truyền tin cậy
  • Rdt20 kecircnh với caacutec lỗi
  • rdt20 đặc tả FSM
  • rdt20 hoạt động khi khocircng lỗi
  • rdt20 hoạt động khi coacute lỗi
  • rdt20 coacute lỗ hổng nghiecircm trọng
  • rdt21 người gửi quản lyacute caacutec ACKNAK bị hỏng
  • Slide 33
  • rdt21 thảo luận
  • rdt22 một giao thức khocircng cần NAK
  • rdt22 gửi nhận caacutec mảnh
  • rdt30 caacutec kecircnh với lỗi vagrave mất maacutet
  • rdt30 gửi
  • hagravenh động của rdt30
  • Slide 40
  • Hiệu suất của rdt30
  • rdt30 hoạt động dừng-vagrave-chờ
  • Caacutec giao thức Pipelined
  • Pipelining độ khả dụng tăng
  • Go-Back-N
  • GBN becircn gửi mở rộng FSM
  • GBN becircn nhận mở rộng FSM
  • GBN hoạt động
  • Lặp coacute lựa chọn
  • Lặp coacute lựa chọn caacutec cửa sổ gửi nhận
  • Slide 51
  • Hoạt động của lặp coacute lựa chọn
  • Lặp coacute lựa chọn tigravenh trạng khoacute giải quyết
  • Slide 54
  • TCP Tổng quan RFCs 793 1122 1323 2018 2581
  • TCP cấu truacutec đoạn
  • Caacutec số thứ tự TCP vagrave ACK
  • TCP Round Trip Time vagraveTimeout
  • TCP Round Trip Time vagrave Timeout
  • Viacute dụ đaacutenh giaacute RTT
  • Slide 61
  • TCP truyền dữ liệu tin cậy
  • TCP caacutec sự kiện
  • TCP becircn gửi (đơn giản)
  • TCP caacutec tigravenh huống truyền lại
  • TCP caacutec tigravenh huống truyền lại (tt)
  • TCP sinh ra ACK [RFC 1122 RFC 2581]
  • Truyền lại nhanh
  • Giải thuật truyền lại nhanh
  • Slide 70
  • TCP điều khiển luồng
  • TCP điều khiển luồng caacutech lagravem
  • Slide 73
  • TCP quản lyacute kết nối
  • TCP quản lyacute kết nối (tt)
  • Slide 76
  • Slide 77
  • Slide 78
  • Caacutec nguyecircn lyacute điều khiển tắc nghẽn
  • Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 1
  • Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 2
  • Slide 82
  • Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 3
  • Slide 84
  • Caacutec caacutech tiếp cận đối với điều khiển tắc nghẽn
  • Viacute dụ điều khiển tắc nghẽn ATM ABR
  • Slide 87
  • Slide 88
  • TCP điều khiển tắc nghẽn additive tăng lecircn multiplicative giảm xuống
  • TCP điều khiển tắc nghẽn chi tiết
  • TCP khởi động chậm
  • TCP khởi động chậm (tt)
  • Tinh chế
  • Tinh chế nhận biết mất maacutet
  • Tổng kết TCP điều khiển tắc nghẽn
  • TCP điều khiển tắc nghẽn becircn gửi
  • TCP throughput
  • TCP tương lai
  • TCP tiacutenh cocircng bằng
  • Tại sao phải TCP cocircng bằng
  • TCP tiacutenh cocircng bằng (tt)
  • Mocirc higravenh trễ
  • Cửa sổ tắc nghẽn cố định (1)
  • Cửa sổ tắc nghẽn cố định (2)
  • TCP Mocirc higravenh trễ Khởi động chậm (1)
  • TCP Mocirc higravenh trễ Khởi động chậm (2)
  • TCP Mocirc higravenh trễ(3)
  • TCP Mocirc higravenh trễ (4)
  • HTTP Mocirc higravenh
  • Slide 110
  • Slide 111
  • Chương 3 Tổng kết

Transport Layer 3-110

02468

101214161820

28Kbps

100Kbps

1Mbps

10Mbps

non-persistent

persistent

parallel non-persistent

HTTP thời gian đaacutep ứng (giacircy)RTT = 100 msec O = 5 Kbytes M=10 vagrave X=5

Với băng thocircng thấp thời gian kết nối amp đaacutep ứng trội hơn thời gian truyền

Caacutec kết nối bền vững chỉ cho sự cải thiện khocircng đaacuteng kể trecircn caacutec kết nối song song

Transport Layer 3-111

0

10

20

30

40

50

60

70

28Kbps

100Kbps

1Mbps

10Mbps

non-persistent

persistent

parallel non-persistent

HTTP thời gian đaacutep ứng (giacircy)

RTT =1 sec O = 5 Kbytes M=10 and X=5

Với RTT lớn hơn thời gian đaacutep ứng trội hơn thời gian trễ chờ thiết lập kết nốiTCP amp khởi động chậm Caacutec kết nối bền vững bacircy giờ cho thấy cải thiện rotilde rệt đặc biệtvới caacutec mạng băng thocircng cao

Transport Layer 3-112

Chương 3 Tổng kết caacutec nguyecircn lyacute của caacutec

dịch vụ lớp transport multiplexing

demultiplexing truyền dữ liệu tin cậy điều khiển luồng điều khiển tắc nghẽn

khởi tạo vagrave hiện thực trong Internet UDP TCP

Tiếp theo nghiecircn cứu xong

caacutec vấn đề ldquongoagravei biecircnrdquo (caacutec lớp application transport)

chuẩn bị vagraveo phần ldquolotildeirdquo của mạng

  • Slide 1
  • Chương 3 Lớp Transport
  • Chương 3 Nội dung trigravenh bagravey
  • Caacutec dịch vụ vagrave giao thức Transport
  • Lớp Transport với lớp network
  • Caacutec giao thức lớp transport trecircn Internet
  • Slide 7
  • Multiplexingdemultiplexing
  • Demultiplexing lagravem việc như thế nagraveo
  • Demultiplexing khocircng kết nối
  • Demultiplexing khocircng kết nối (tiếp)
  • Demultiplexing hướng kết nối
  • Demultiplexing hướng kết nối (tiếp)
  • Demultiplexing hướng kết nối Threaded Web Server
  • Slide 15
  • UDP User Datagram Protocol [RFC 768]
  • UDP (tt)
  • UDP checksum
  • Viacute dụ Checksum
  • Slide 20
  • Caacutec nguyecircn lyacute truyền dữ liệu tin cậy
  • Slide 22
  • Slide 23
  • Truyền dữ liệu tin cậy
  • Slide 25
  • Rdt10 truyền dữ liệu tin cậy trecircn 1 kecircnh truyền tin cậy
  • Rdt20 kecircnh với caacutec lỗi
  • rdt20 đặc tả FSM
  • rdt20 hoạt động khi khocircng lỗi
  • rdt20 hoạt động khi coacute lỗi
  • rdt20 coacute lỗ hổng nghiecircm trọng
  • rdt21 người gửi quản lyacute caacutec ACKNAK bị hỏng
  • Slide 33
  • rdt21 thảo luận
  • rdt22 một giao thức khocircng cần NAK
  • rdt22 gửi nhận caacutec mảnh
  • rdt30 caacutec kecircnh với lỗi vagrave mất maacutet
  • rdt30 gửi
  • hagravenh động của rdt30
  • Slide 40
  • Hiệu suất của rdt30
  • rdt30 hoạt động dừng-vagrave-chờ
  • Caacutec giao thức Pipelined
  • Pipelining độ khả dụng tăng
  • Go-Back-N
  • GBN becircn gửi mở rộng FSM
  • GBN becircn nhận mở rộng FSM
  • GBN hoạt động
  • Lặp coacute lựa chọn
  • Lặp coacute lựa chọn caacutec cửa sổ gửi nhận
  • Slide 51
  • Hoạt động của lặp coacute lựa chọn
  • Lặp coacute lựa chọn tigravenh trạng khoacute giải quyết
  • Slide 54
  • TCP Tổng quan RFCs 793 1122 1323 2018 2581
  • TCP cấu truacutec đoạn
  • Caacutec số thứ tự TCP vagrave ACK
  • TCP Round Trip Time vagraveTimeout
  • TCP Round Trip Time vagrave Timeout
  • Viacute dụ đaacutenh giaacute RTT
  • Slide 61
  • TCP truyền dữ liệu tin cậy
  • TCP caacutec sự kiện
  • TCP becircn gửi (đơn giản)
  • TCP caacutec tigravenh huống truyền lại
  • TCP caacutec tigravenh huống truyền lại (tt)
  • TCP sinh ra ACK [RFC 1122 RFC 2581]
  • Truyền lại nhanh
  • Giải thuật truyền lại nhanh
  • Slide 70
  • TCP điều khiển luồng
  • TCP điều khiển luồng caacutech lagravem
  • Slide 73
  • TCP quản lyacute kết nối
  • TCP quản lyacute kết nối (tt)
  • Slide 76
  • Slide 77
  • Slide 78
  • Caacutec nguyecircn lyacute điều khiển tắc nghẽn
  • Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 1
  • Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 2
  • Slide 82
  • Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 3
  • Slide 84
  • Caacutec caacutech tiếp cận đối với điều khiển tắc nghẽn
  • Viacute dụ điều khiển tắc nghẽn ATM ABR
  • Slide 87
  • Slide 88
  • TCP điều khiển tắc nghẽn additive tăng lecircn multiplicative giảm xuống
  • TCP điều khiển tắc nghẽn chi tiết
  • TCP khởi động chậm
  • TCP khởi động chậm (tt)
  • Tinh chế
  • Tinh chế nhận biết mất maacutet
  • Tổng kết TCP điều khiển tắc nghẽn
  • TCP điều khiển tắc nghẽn becircn gửi
  • TCP throughput
  • TCP tương lai
  • TCP tiacutenh cocircng bằng
  • Tại sao phải TCP cocircng bằng
  • TCP tiacutenh cocircng bằng (tt)
  • Mocirc higravenh trễ
  • Cửa sổ tắc nghẽn cố định (1)
  • Cửa sổ tắc nghẽn cố định (2)
  • TCP Mocirc higravenh trễ Khởi động chậm (1)
  • TCP Mocirc higravenh trễ Khởi động chậm (2)
  • TCP Mocirc higravenh trễ(3)
  • TCP Mocirc higravenh trễ (4)
  • HTTP Mocirc higravenh
  • Slide 110
  • Slide 111
  • Chương 3 Tổng kết

Transport Layer 3-111

0

10

20

30

40

50

60

70

28Kbps

100Kbps

1Mbps

10Mbps

non-persistent

persistent

parallel non-persistent

HTTP thời gian đaacutep ứng (giacircy)

RTT =1 sec O = 5 Kbytes M=10 and X=5

Với RTT lớn hơn thời gian đaacutep ứng trội hơn thời gian trễ chờ thiết lập kết nốiTCP amp khởi động chậm Caacutec kết nối bền vững bacircy giờ cho thấy cải thiện rotilde rệt đặc biệtvới caacutec mạng băng thocircng cao

Transport Layer 3-112

Chương 3 Tổng kết caacutec nguyecircn lyacute của caacutec

dịch vụ lớp transport multiplexing

demultiplexing truyền dữ liệu tin cậy điều khiển luồng điều khiển tắc nghẽn

khởi tạo vagrave hiện thực trong Internet UDP TCP

Tiếp theo nghiecircn cứu xong

caacutec vấn đề ldquongoagravei biecircnrdquo (caacutec lớp application transport)

chuẩn bị vagraveo phần ldquolotildeirdquo của mạng

  • Slide 1
  • Chương 3 Lớp Transport
  • Chương 3 Nội dung trigravenh bagravey
  • Caacutec dịch vụ vagrave giao thức Transport
  • Lớp Transport với lớp network
  • Caacutec giao thức lớp transport trecircn Internet
  • Slide 7
  • Multiplexingdemultiplexing
  • Demultiplexing lagravem việc như thế nagraveo
  • Demultiplexing khocircng kết nối
  • Demultiplexing khocircng kết nối (tiếp)
  • Demultiplexing hướng kết nối
  • Demultiplexing hướng kết nối (tiếp)
  • Demultiplexing hướng kết nối Threaded Web Server
  • Slide 15
  • UDP User Datagram Protocol [RFC 768]
  • UDP (tt)
  • UDP checksum
  • Viacute dụ Checksum
  • Slide 20
  • Caacutec nguyecircn lyacute truyền dữ liệu tin cậy
  • Slide 22
  • Slide 23
  • Truyền dữ liệu tin cậy
  • Slide 25
  • Rdt10 truyền dữ liệu tin cậy trecircn 1 kecircnh truyền tin cậy
  • Rdt20 kecircnh với caacutec lỗi
  • rdt20 đặc tả FSM
  • rdt20 hoạt động khi khocircng lỗi
  • rdt20 hoạt động khi coacute lỗi
  • rdt20 coacute lỗ hổng nghiecircm trọng
  • rdt21 người gửi quản lyacute caacutec ACKNAK bị hỏng
  • Slide 33
  • rdt21 thảo luận
  • rdt22 một giao thức khocircng cần NAK
  • rdt22 gửi nhận caacutec mảnh
  • rdt30 caacutec kecircnh với lỗi vagrave mất maacutet
  • rdt30 gửi
  • hagravenh động của rdt30
  • Slide 40
  • Hiệu suất của rdt30
  • rdt30 hoạt động dừng-vagrave-chờ
  • Caacutec giao thức Pipelined
  • Pipelining độ khả dụng tăng
  • Go-Back-N
  • GBN becircn gửi mở rộng FSM
  • GBN becircn nhận mở rộng FSM
  • GBN hoạt động
  • Lặp coacute lựa chọn
  • Lặp coacute lựa chọn caacutec cửa sổ gửi nhận
  • Slide 51
  • Hoạt động của lặp coacute lựa chọn
  • Lặp coacute lựa chọn tigravenh trạng khoacute giải quyết
  • Slide 54
  • TCP Tổng quan RFCs 793 1122 1323 2018 2581
  • TCP cấu truacutec đoạn
  • Caacutec số thứ tự TCP vagrave ACK
  • TCP Round Trip Time vagraveTimeout
  • TCP Round Trip Time vagrave Timeout
  • Viacute dụ đaacutenh giaacute RTT
  • Slide 61
  • TCP truyền dữ liệu tin cậy
  • TCP caacutec sự kiện
  • TCP becircn gửi (đơn giản)
  • TCP caacutec tigravenh huống truyền lại
  • TCP caacutec tigravenh huống truyền lại (tt)
  • TCP sinh ra ACK [RFC 1122 RFC 2581]
  • Truyền lại nhanh
  • Giải thuật truyền lại nhanh
  • Slide 70
  • TCP điều khiển luồng
  • TCP điều khiển luồng caacutech lagravem
  • Slide 73
  • TCP quản lyacute kết nối
  • TCP quản lyacute kết nối (tt)
  • Slide 76
  • Slide 77
  • Slide 78
  • Caacutec nguyecircn lyacute điều khiển tắc nghẽn
  • Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 1
  • Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 2
  • Slide 82
  • Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 3
  • Slide 84
  • Caacutec caacutech tiếp cận đối với điều khiển tắc nghẽn
  • Viacute dụ điều khiển tắc nghẽn ATM ABR
  • Slide 87
  • Slide 88
  • TCP điều khiển tắc nghẽn additive tăng lecircn multiplicative giảm xuống
  • TCP điều khiển tắc nghẽn chi tiết
  • TCP khởi động chậm
  • TCP khởi động chậm (tt)
  • Tinh chế
  • Tinh chế nhận biết mất maacutet
  • Tổng kết TCP điều khiển tắc nghẽn
  • TCP điều khiển tắc nghẽn becircn gửi
  • TCP throughput
  • TCP tương lai
  • TCP tiacutenh cocircng bằng
  • Tại sao phải TCP cocircng bằng
  • TCP tiacutenh cocircng bằng (tt)
  • Mocirc higravenh trễ
  • Cửa sổ tắc nghẽn cố định (1)
  • Cửa sổ tắc nghẽn cố định (2)
  • TCP Mocirc higravenh trễ Khởi động chậm (1)
  • TCP Mocirc higravenh trễ Khởi động chậm (2)
  • TCP Mocirc higravenh trễ(3)
  • TCP Mocirc higravenh trễ (4)
  • HTTP Mocirc higravenh
  • Slide 110
  • Slide 111
  • Chương 3 Tổng kết

Transport Layer 3-112

Chương 3 Tổng kết caacutec nguyecircn lyacute của caacutec

dịch vụ lớp transport multiplexing

demultiplexing truyền dữ liệu tin cậy điều khiển luồng điều khiển tắc nghẽn

khởi tạo vagrave hiện thực trong Internet UDP TCP

Tiếp theo nghiecircn cứu xong

caacutec vấn đề ldquongoagravei biecircnrdquo (caacutec lớp application transport)

chuẩn bị vagraveo phần ldquolotildeirdquo của mạng

  • Slide 1
  • Chương 3 Lớp Transport
  • Chương 3 Nội dung trigravenh bagravey
  • Caacutec dịch vụ vagrave giao thức Transport
  • Lớp Transport với lớp network
  • Caacutec giao thức lớp transport trecircn Internet
  • Slide 7
  • Multiplexingdemultiplexing
  • Demultiplexing lagravem việc như thế nagraveo
  • Demultiplexing khocircng kết nối
  • Demultiplexing khocircng kết nối (tiếp)
  • Demultiplexing hướng kết nối
  • Demultiplexing hướng kết nối (tiếp)
  • Demultiplexing hướng kết nối Threaded Web Server
  • Slide 15
  • UDP User Datagram Protocol [RFC 768]
  • UDP (tt)
  • UDP checksum
  • Viacute dụ Checksum
  • Slide 20
  • Caacutec nguyecircn lyacute truyền dữ liệu tin cậy
  • Slide 22
  • Slide 23
  • Truyền dữ liệu tin cậy
  • Slide 25
  • Rdt10 truyền dữ liệu tin cậy trecircn 1 kecircnh truyền tin cậy
  • Rdt20 kecircnh với caacutec lỗi
  • rdt20 đặc tả FSM
  • rdt20 hoạt động khi khocircng lỗi
  • rdt20 hoạt động khi coacute lỗi
  • rdt20 coacute lỗ hổng nghiecircm trọng
  • rdt21 người gửi quản lyacute caacutec ACKNAK bị hỏng
  • Slide 33
  • rdt21 thảo luận
  • rdt22 một giao thức khocircng cần NAK
  • rdt22 gửi nhận caacutec mảnh
  • rdt30 caacutec kecircnh với lỗi vagrave mất maacutet
  • rdt30 gửi
  • hagravenh động của rdt30
  • Slide 40
  • Hiệu suất của rdt30
  • rdt30 hoạt động dừng-vagrave-chờ
  • Caacutec giao thức Pipelined
  • Pipelining độ khả dụng tăng
  • Go-Back-N
  • GBN becircn gửi mở rộng FSM
  • GBN becircn nhận mở rộng FSM
  • GBN hoạt động
  • Lặp coacute lựa chọn
  • Lặp coacute lựa chọn caacutec cửa sổ gửi nhận
  • Slide 51
  • Hoạt động của lặp coacute lựa chọn
  • Lặp coacute lựa chọn tigravenh trạng khoacute giải quyết
  • Slide 54
  • TCP Tổng quan RFCs 793 1122 1323 2018 2581
  • TCP cấu truacutec đoạn
  • Caacutec số thứ tự TCP vagrave ACK
  • TCP Round Trip Time vagraveTimeout
  • TCP Round Trip Time vagrave Timeout
  • Viacute dụ đaacutenh giaacute RTT
  • Slide 61
  • TCP truyền dữ liệu tin cậy
  • TCP caacutec sự kiện
  • TCP becircn gửi (đơn giản)
  • TCP caacutec tigravenh huống truyền lại
  • TCP caacutec tigravenh huống truyền lại (tt)
  • TCP sinh ra ACK [RFC 1122 RFC 2581]
  • Truyền lại nhanh
  • Giải thuật truyền lại nhanh
  • Slide 70
  • TCP điều khiển luồng
  • TCP điều khiển luồng caacutech lagravem
  • Slide 73
  • TCP quản lyacute kết nối
  • TCP quản lyacute kết nối (tt)
  • Slide 76
  • Slide 77
  • Slide 78
  • Caacutec nguyecircn lyacute điều khiển tắc nghẽn
  • Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 1
  • Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 2
  • Slide 82
  • Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 3
  • Slide 84
  • Caacutec caacutech tiếp cận đối với điều khiển tắc nghẽn
  • Viacute dụ điều khiển tắc nghẽn ATM ABR
  • Slide 87
  • Slide 88
  • TCP điều khiển tắc nghẽn additive tăng lecircn multiplicative giảm xuống
  • TCP điều khiển tắc nghẽn chi tiết
  • TCP khởi động chậm
  • TCP khởi động chậm (tt)
  • Tinh chế
  • Tinh chế nhận biết mất maacutet
  • Tổng kết TCP điều khiển tắc nghẽn
  • TCP điều khiển tắc nghẽn becircn gửi
  • TCP throughput
  • TCP tương lai
  • TCP tiacutenh cocircng bằng
  • Tại sao phải TCP cocircng bằng
  • TCP tiacutenh cocircng bằng (tt)
  • Mocirc higravenh trễ
  • Cửa sổ tắc nghẽn cố định (1)
  • Cửa sổ tắc nghẽn cố định (2)
  • TCP Mocirc higravenh trễ Khởi động chậm (1)
  • TCP Mocirc higravenh trễ Khởi động chậm (2)
  • TCP Mocirc higravenh trễ(3)
  • TCP Mocirc higravenh trễ (4)
  • HTTP Mocirc higravenh
  • Slide 110
  • Slide 111
  • Chương 3 Tổng kết